638955528264801491421026456964938839473266802456993298332201183980090989215149287039244085314112091593741777916069527265020375803549682883302400076287771896254802740566337552611781574166344167313840500197716233436316773668595736041844063296751262971471281975127828944466584043948382330158548630703798778375767552934456527212526215828166389593515534081091716880283035223215141381671916649668644949532727950367315984551039986479453265995677890836853113607200639732668226055972261606407686415838769589668549701418948779093178375179758734842130480652697445535804678655696997460621849176143464377264130329317385403079359070281611030736572068789092204144975336199859463175754273184131355497391502886498599003650679880622369876967872444035621624563925829382962562838585361019379596368717085986056976778632117430074956007022460727958912822538630236294609046244229817449445850203272780621301867234900706316886466334876447290603483355589803686014831571114939930688010806935911586624556923876676752168440926107374456134862014720860222143882263759065130851582363594328267816039012923292503819008142512552837015752602611503474514491095670580947821567084708874921497465060607657501509201051192109517987916808442587404134546396863307076811121245698140728046684654791794066516892328592945430015242791937372314291712915334769702917650639741529303566163713503451458356546151342035395239500652935788861261092133321334922761636032709942472208975832775518331429526491759846464626437635321961943361751173361021253433691456392125672130496925617935009898070808223072198348632326759448800636878846334538879068635768485265353851285236202059071077219637503047956773091913212124384283344177672445340779410302749324661259179498643411192293558743220552079479961697283108754129278308955176272253429497984385377299775853547296022189634638442600211043805021568669560535599406147710419976674978189205594201320186217132456566009167685838795055405879168605754744559090744103507467929825452174112332123291325038912751382393062781214992149555266146518730127281090370098134408079686291940135324142707573997070791576081482150904368872312912037506188068680264327872556348410033320589419807447312421983852433886893934111977264964350161947187815391214134972357729422235906410115440457999427890254739700156102689355694328697450047845224532892793387394772813444502711242325072976706267583033423740424825644275866467417475664376846050884619275217426086331733323898500881661479148140900738735386916350254711841477411966833650533481131354038412120996553161085619249670287596643321879602382320272274232868437054978162557845085575658141274490735643165769737169702532143210252360978034010739519909778451681738183814134925335946589010297604420731316023345011859723674786624670783471521860283604767813873180869856537723434576214837883238985848830525324758664190347136884626182923794931229780739865855773701414000788103544336710864052710377637939306831611310396315104581082191512754182823604990932446097792342439692947268097156583431564238064540717700669943270045505807889715338475998851186442959013399306567301112930601301739010005435944442048437398169428239137660489385843366297108456627799673107847718154566916001935655817722584314940143612358018194119600034807446687833149564198552650544949409082238962742417452137820702557823474086476622083175658253024871021337216701690370664692617272724899873763503096177630398831288974831254205516768768407258144027758653607746743250940839920459827530800514829606999350511082646605744961346769200076489930731595277909109394179513037979154009031489277765587757012969275748660863250616061143219701659194139120551826651419482946385268851812854733232886154523254834266668155670264167776106150440634367537553965693355661284486886997233660015777229109506636250980683686351202123720570310864281094558225124935281964300086446466210011609937122094050545460221024608466307054780543730561977670002214973847185124953606161126925418572595659327126861810914434796788803524545447632357226667534953852739608815299240400154774621585226903830195582875006121452965275486464045437899605389317601333313809738640985505366363527460240626038827242119096733297425418779362169694961804189479532477769377811581139789843075054977917239724560033910087475979319218543047888162442243663591754384126538791541022973806143547865711915473765547430120530035988926164261578108237725497298060424583536715634820498046314007214897606462361419670739778300589901609121399752558895475231958934204047728242450956737949554575917436741283763666204266808339974458474561388779819143951261590806756006137635885680137821330514397512084605721193941989549449586488713058500742017034989252929073452285955493774474901304874677269503804542939777334733731967323062839423785310704621167365305354835556162519712242680544132539373694369101811507420100570939817557472151686785634480452360656316863438656776314014052654202737739586422667647834246067651003335855619514052211598904358068887516333377751764697991844423283302101820875232105162869625023042459612167957338241794320516766740746190779267825020591154976612862568175836582378898802102593254340705475279791975231379297739839219672221678572975537297296990413999902603611948655877755813156698841423046536279975629748434137100492437630121108846884497880035142773774847667324587176000007938390591566833209244398277304831656575045285734546078121468972620801580858420531311287229691590722112195960361979836074728016286325197946565938809063751620293009363446679765483559237367963191112755462161877474570815842012277063083724922264035503103751041937180472164494274529250590534090882014094526947930174136877761658049434912070711876944638427011324683760236288297088760960636614745210367405351191636938035881555490021763005932374497918481689288332606964226688003476875958954041653068239976618265524252769093722305810780209191671213456363476123180277465754796730874199078135331559634608261165172438135079834385123214345326011928693252037779058097163468501900683263153338014183388589165033017730658775570720129316436562923866511813309434036620610098843208017657183499952550779265818219013604895058551656267580855159980638291010881261697345170436953023103433232130889117264289843748332254025847076527763974030908102557143139700107948969582210291957778919508351103697298805153599345677658286778180202663278794020633630451438560635457116456052794499324433201091557103937042980864700014542385982615915158350476553224498410704622748577008895781518542126394257552158779954127828815076785828448101326115535317443625121932471126691776030489053399098684966587325191416012933151351981699902585033213824438848118696316436884305810519826650493318487768391496128913745004251233203225147343414353363863125922170656145151579234112844093780635157378211365119856660865141160719760515996059618025796982901547448007562238191108675295096563354593715887210540480967650236201877397838912491635030725621703628307074317654644251402169084611848002579177557378138030090070293646912980357494213265285298778833697754349403210318731133464295576746367875064075267772724445846667642171590475022283407465579482437286623144701648503444715208671801473773846151009736821154333692708835413074953419161653811821782233355919525462100643360624359669025883696433064525082345681738952535227289805117543630551726752730544792239190605440437276571388781761841721943786939699398190784458504455657054910938653572331663347205009425705880321840468053363073306994928630034863944614440978196903735158674171676212428813565481100282094579812664125858831462450577355272659878847835831577759151886230134454302610963483299894901698515120426579398301162026315355616063852023493340225363822763117172688591473016571778480188976814691315957770602112537801720150256914434687972131772266431480998971214195014017069479577975414255311196001653046767480717847477840596109772257108017042825579197988575053391311369835970995619465892865351795954974839607562500754666781959013361037677433368874950727897066572451286325979971316567030966753417815584153846879944688516613582098864529496106827319059621275499331310048632005349143714231287144748678451528915696261918767358230380666690138510815389502916760036586771213350591547258078207510872493855035807865912593163859369658109964204611171971857404029484014978377510255759699242673123535401095830438867355985597168781361623024512340636380364810080448803447827663079681542175635445245284703987891733244119901703520255002095660247129417121709051962962871737174773311445218867041691265992616777228592959870554335858013860750563338497220814654876868229778868723194925947497131520069492012760993627250467666074991318686383805863160718197412476900232086731909035430691700075519447118201089733990722229846650145858999919918585527327249112811632447249589292234829848736913508885208691613412484195139300390818386529984307223786087071978503282765392810844327680274308994711220227338371090134653825611545261165412694576030295018859504880606330330225280589364923827123165977321030609520833478502449906742966223214576059744943742591644686395983279195921939848555890495562085797573855669248844092406980404413534354341194609601225169372948204941009080448554924432873724690039512271093299234768146040631902554338056320648914360215234796566222662390645245540218840209875141750603132680748307100244695074367765931535431588366413733127103137252177284476931112881077924200981927594240831668950766968983699968240801903289204160869922024553389212989954140016743413141000229139705458420164305560031213500674352669355657624316112296107248155182224660706170716492294020141078924849163463606381226781005385542249473991829943715405933425328452661077877863602139067204112996584657799524024783242855630731311070905008986134028092939968516816140784838711099750358726009365272834868599992434346682966460952590436261496495474100706376360233180247245429397092721452930485288832125395711169009842059733460478493182848019985174487996434125022001814223372727607546873086977918135376492260650566060263808204958250149774474180291761008345502350813526212871406768853863360478706296848961671322785855719119621882985748484451828492741066470507770415371647628735450205510714128040579623928411861610714098159025264489600101191750406983369121267306064902551411984071475129246457844237241595124268429608618209854529741600696133922075923111296500972793710439699965896606598524668922960557254152413038236389444429224872473787789200516739804181717409555342978473210151184609731449062633262671677507156067602495661090536112215126950541570066835022099263929090342717132725522568262698337774915407107009286758797396893899765996218730260496130701170230339918088376715581358729177570471291487594305326394550974627416077568450959556414286556046421480064639012609108719557795711704658575281114778440744825343709959828141245318536296254942729104793430234856285653692439488141648415618432533693564647675250537986267099261040437098274792356519388705432505481669624068894266416136068542791190238962092791078379466062565978924056563637631005614357659878596120980743063774742986729413304226078102448269713968971541585118896704704359279516208113008247477061706294691974108069323682548538561786207026510245474842813802677066483672926475521682998904836360337812996583403296294085093098733096003733346692227811501420120979834404328732492750005084037878331589454664222452158407272238236254097502126352656136974660014295558877394334665051590857073022573888663238110781793307557408031256036212193214101958694821648055735076859834646776261048317565762146795671506345702232756846010505513588010593354997616058982879522521334292410196758814941895282975422700498874031464571666066651901544006756574313163356415400255398589424467855856289129857460689980866978950120405750026142190412180301374734181019357438844014259893790874147286068301307384586193025961880691835582803543306094526722919960462305908368486042640662450709861414780350203053340794175217049169149609253479737011490854139340896969646031144394037115074673545583637164838768981146699656896413179760498387125465807710950447307820131526850769448901906553898522873173601481041595354046187129709775126101788743363614082408019743252524774332898543953941860775439593191063556033276786865077925182021323064861338567523538349146761818849706280412192214228848425574320418273752527786668035631414159601830922186284441735178973779873928659685413776765932851537731559518073169528653944786027533927466584203772358420691325163446192011231345429750431952261320314131093306036723737439723903425468763912565308299253851774337749887448923376772771867829129720556369377748758509531419142795999980710786354787664858725172659123519139758649021908028443268577267614149534521350901577079850843888170169680006939863245715478478772482373891755408805298167383951864959212597869163563479112437917803508057568679527363617300004591782376379582957708700605042906717033438494439839452836083491570643875447917071340498253895813383526509558038944038068255958859532249527091641323566356363765477029182252708912982762306570532619032827875259460105903072619398649312952091174242231394644673325949288560391082736727670203477344647267658778127578372064851834880881920992564832145591306759723035985222067233950847575352640691557397481172333085236777227856352701294767271294720090484025246119508672851678431731894049375246491308614307017604227111045334969606053453940243395145812448915527393068321509907187529697494517345086161502138032403596516895955332588968128975999102452163865799355739158168529469737264202037823340449052624274731804062359164619090279305327989545096950238171991467743418736176368390246337417815879904254853513301173663565879093826261935978691966975368908242971869676261082479468275996254582341430907056212622595569201149146646511966744340215522073507065719670114474466690693811993388967764684427231600639404674230673913438751899625607995842002125408746028353673877925169867836051996396001326199625759427790611103493727123363215716892655425328864120045331708943900748226352595340273107487398702049865628443482691964603685024328537198675169109226179244652674248828501408523691159030185036420606246378397343098995037082944641072529467560217319384469862421496320286364828328693653681290742904581966872521561624700168558324540496916859217339805369239879226991990767697611103430013445225285431651841988995815330527976055217997225816908361479238906677265956682260514243291826643846810402203056368470023112848753358796508051905127263540310268282174470997442615944430361001793657541551700024961790049440336661927555258061511184551920487859118954360090546615553714238585036553288245311601112634245873496128544422828585176552441320948150243692920579215720986293976108512719713222136026388278187303549031963935759350318637589774946538358350914146982068482286843410176808718986901364244547271350799505205225085018404024285333414789125812858640731625241180121810983099222986664115617991506113606060523326726047402580680299318756164434265577394400078875076194631584802539200615195682716752334545034904607686702847824723713534966164596299929634481384896321000550118987114793676665605934267230285110463795852255320087404265633235202050872922427351612645851719329750862121954844347367013846263624668147709884381135868454206022726032014820790191249211451654131279797661334045361015946354201514056108789471446468134471014222034920334734331157846466318522016887220011908602055204716621716563869279317659717804499265481465443296624251338731499366220255246319114466819431389301919419045343147657910473923935558134851959090542923819648952195913206804462372855977873302690689443401998342903422612557185273364481855725796507405599485074446939369812320480526812357740963498646487091871639138206076818025634500293298210915125715418938453639978358957822976157075836639114868063755543105464466389374662057362192175612201952680369970524262220493557078088662640449401531311424703317024559221466552282633795975251009958508128432759886157656499347973072050114603734072158933200410669287829201222377027007907070781912291529946696037091924682956426815992488852956033701286269119255200434029630988401956775485051771926792342729532566254991421125445133051696522785962596351104086798426280929064283304103580853171293245119595764710827153536196558167722996554074788289586891143669271258632138772362576760549027874066972378967097693444105033900924995844154873656089286917245406064006742438123345603675694704322460618325753064386806118073557128614739102457277781839483239276227418320846901584594844063759733225050379343559385141060841830190436357082894098350326222423896591469983923734783595911349240314340396461053721330413363748093595362998060201758723976858390059298678522045976479772897471901140197496783919978851164456601833381676384771866922884534081175615017456969781808389518732090741446853115095987725343408345879807758195689293010072651709087785148244949926079768937687368430643905031957143253437274727668078224741742107892147282510916815147454479465517357616681211921443887601305798317383468065398083449366481935078387765358823448832429871394649453494116010082550614237609279611504191806370646919156477932873822067455448819196784736661085451122750888957939602981921196336242430406450981202315835693625977353308044402637093369985438917283474324818785720345517420453252139507780903692818864405762678304615049960903714035800289650207398997190245039975557285417750852231642841249447620