PREME/G/MU386041

048572121374368994178596989573184079624570983774970227246778359008116740693761044377897578076215682704160207088852234436756549664054916509737839135897740183770323840076412424785802448670206041793841205999885330615229998309126341722233319654148598519932415170549185230314019011275314208391082726260241950513603772432880316457626602305693982235705756508748925249278802022751953558921763176758464717690367962855126248402114244045002503283001792397699234104520479713194856935036000251179665169279161503259054752996726005755653985381899899639770353341177844384676561296166501799625914254135339689408873774963194726169325589036380496467696022628551934801743262753369577633449785175857894151425102568844237587323257229972727451636469720772582573974942347171644891568192467519591210154792926784246439054665345536378793956604354595483655471724272835840410990372108478792829829025920909863070636541436923326385400873540706430643273731660650170873453374984425981605945506755615844473458404053939950633810756888467015033407341311657875588954855547127699400168834226843480488397068529159076738693935425849973976093961786366303992104081182559290890211091939150794083419727455280180215264952121525631782448900629228118669007444535788221914839240568735533243870612729647699324846433384606670273925020341809955023754020194255191527745174171726121946858112367812878101227105795518035897099422169724517028286545011825179566302098601672075222110262899565081092764380340858644503736409064842075301237843125257246144515325390244487021572977104032679214596826163709158902231899618941757079496268897337110808992583390022178614717245586846127463781251638800498103986398370698184660285056298880902231899099742121673201191986570081653924098469072711145688204706950794691985403368346049696721501654774681007060787884581878825209797401864150324108336513520573711261452192770436444341710323005447652229663099855508816196706616286492724917225261918215515615416026057049242402034048402285406662564701524046098696615324507768833583872276552609736472100216326297165416583808036602980797577478174143166399659093867552403128380320877314666032263926663313931081831611763173968541246052928766606488610953976099022801811491451258054753339724167756580788328470234663236668918262632193951661708117961296571638252779468955309539854747586303541204540880198112760714032907560137975411279687129840155825842410099492387788866694304038845108069950150346214615404891684848278198404920596095748240369865519110582101323586527461057713854770555321140948108123515865582958390168119864003740023479192229180549417264533136686602738274133608041339684215844127044180294989350042890827276842037620972771814637834563776032752767644537066691067389492103212193673627405100184749575462091229345701055245261430030816214353926009690520372924889872713393369464337879607822797012213057715076225082371112162967466595164744935737164309664010816213529667892762970366998514945099133623331755218769982573443059887925462766650765410520164250793154568562416671653138258283478443061315252866971579177555638075045884616100383960282657944139978285392081433685528397341817857953617918674683884685430926680333348529944588398994335152703805032564247629810729846715829157887957919564404142969084443820146479643660582949665278849680329026268397186614142930474667645595324909259268603930559322861207427227012007021325750377086178629651662121759283702651403600333090708007083162228003120895933596100187353992743087173258216491139301449622725269494381383253665194283513456443085386075254123071355309207910119940717208836355875052487076390073369829661316971164438964320065803497658769742430552594746128106987632975786628492252301918594227171604999725490255034933823058805226260695629700002216908217700966396074776399374106497861921396596637232775559046764522288001823639128566635391713626672613847422621605023086299199121083880325050877862864377434154100591999111741666074010122748077689276988755628206193425612554414309999961735027864375158075441548727714698025611777891904399335678513016074471477040233042601738651689683488494250672664119471464512811069397081421728930094419195191961057684146168048506049471740898191215081583560450956454231703602656307334432107131157436024222375191374921548839575452548524219810431076122552025153754462512608640767644189132483897917168843110009573027467970526079394764085681457125048239081539627581698071185645860990711918356231669685399354663621231994481139388306560465029146522706567059389760860597915822355880926566453464108066306584596592676685643349741221929661995210348852997573601435109553723784458617158585226755982304405355631388710041043295767377432155044744964651440199692843572803411907616543689899106668735011262339331721763984184247791724902485454028227104021379120274988424785549275903196888881599031395761824865633526855132511788119258215746510896910392471070467585344371393558594698087265553312354340198524751275506063008985892629684737833598730377581938769502878604211449068802154561288323102257190546336989962538500217281825955705129465613170507320965579663286105899003324710798118162990763212856189615754145484048793039398105879496718836038965810802155480682806255851984579440873475599379167527525039743346875655696841080239139011552111648519272369900954403879632929356032611324778981655591081020527762108193328743948927003783520895223699907126119149394364704826143321441077615364133967891472186931851690437014151015065987615739020856654122735503197219688079910564510964413473468514516557489251864384741108708825266410733679542378516828045276419207965109931512728881972695570212204694606696219281732039333515156729259011682948735663558656990500176890219052381554540635596008642266738755365018633896605994123071259563203307126827947085373653520140610870028507854610006723253667788487056651469183733689136104314501994587518729567223081621188295098346131894288710821751348495916451170886112116554059435704541627162877112943414454904837694047795132011855743195283486777083507862634802006068771953078261758368206344064481442982901018943707915772661465338773296613173108071422530735540403324423315970334091119584407869723790000435290866360323474913497782381453708187778097650095231856966409439696940449154532310448586396356922350110337912952107589557372125875272880049057957297677226426044675284152327976640438195409572321068996780231988965777169485681034035070848801180338129377218445894575931696019326401964925594971922878167988580220368666782462534766906676881939650751627446472216505110080592084795063998455206491012416689771781012720320368994444774714943485433445859781711108620689837961326488496780082242131323786860661748076617053332500233776083688022332653041725077129162443617375596060890194026773041994808321735401670521995674193275556327540759034178432086113804281606120498063427034904549779082868489689819396631109651994738982763487601329818912110994010421651277992742026121446200943505910876156570788926460698079538170382069020099353281764218884224290428977871694501181869957185882241819984739613478914241716758435600694262595927250423686349140069108778136838331305289581668281521007605273069693161280013182173062467253905043621842245189287501894176728570919491541038491667303397359982653174588766280950877987109194121073713282505820152626744610525264861987656973670007130742945769720384246550625567785773312323063725677121185708486209976888136982508221332912806436069531797731093313212354363258649380706111855757093117104485673666068789174503436025546092647905713555672463884252976501465748461060318766441973283492826932298101682658045047893029691447705218491101765351974063273358169747227490068047863407646726677573990482691269268473851776510957674690465744203535108009944567864311463707157958110268672679185269583623491507240313381463776152134353842169191547943314421314473948208914902236664158569289366048905941585146947149699020665778776675439598498374775783527824197010588544259125874184156604563974508277328583509213999516956342334067515880463129869268770047684979344644566506266319515832631541021241274216630326731958197525222479611871982506569219935784898247492443882155321707224703765110652360885971504786015135897753665055025336390447038501016212221402051101483071497815813371769480062490735492629828717338586597889989695055718886614083672579365452528491889826641757737720501526638496845175409762983258759804913895405907705394820586307897317995315645936573130105355035107882114849255246468856885051044106827882642584646566301462173560323580814731717560024280615489299078587868392226602903186024414909414816511265741561402879878430611806599857946242403006475663185045719477327758600670639016369674642525109403532464118994397152872778731577234333258570478447402219781229156780472702943319177673169497876879861633899525316934253984815949991361632011558861444608491917807119684176359846746517779473579349841376024822961194248033071382004240195130175389382046524120120966480904622796257320657227942182109617669358984752962826227967080520570290690510318282912888702205171586412019473252839570697561867072143450704650401262507399542414391698804015901547991979467950787503330581311649116086917765662218582990930856665885648408437887342386384696635474625069631151122281257441305274469575487370214587582492287912373685573028690246127441742307754586077548842312203893079904239467264214606105369764323878689467027082368312809104170402520698282210204682825214401519440592598997428310472900130207093417773157439147620300933335032073382408797541913674814621258927437929085994718875585641343942174775250113582669548941360550239996409770504174928428569136841747786794852625652386314578684304659450087150454427816640685727872802766934157024122569301618105338438108131892559978209578564203041628906927730975586174936703486866266543046778317029399267268851848125632977069848018093847846146602615666556871603744781179830200297099094266575012263270562001658677151209714545096549320524833158250584965091629710567563107303233198545353731994981508764808899089783061186086817268478675412116690476480063976149873004528671755674697353863941196861468568073416307317826789258621921899108618017320235196476479166108251893060342978685645326707608337406246956176998099416795386045124521395279567722680065685670884769361010863019200894728722280178842576554975738799098089069754042664210013197383587307646345878031749669905040049287158408179878280724836681885900901730554653097212170182596576237018087839870318867781511616953283615121184923139651009641406226237051302532227307829384685832335472881137223947743350424669996111462813562234980586771801153301491739948486151130169219085572621680477309910717646358233540073390305143094731484019382685587315123077169904312079143464268643729058297468668334182941654756973951419913375909699075151870863612703569605444788822235546471825368459002290861541898736655085368010387344610141181155954901979130917152729678682807092846657178172607334102656987025123110031503861811267603407248396560809075362224943300588662480446452629648066881926421806618062578661019566444796172168148121074730389804979587147915325920293837335293057654149993322302708034818712501693414826344829902992422085976724591320772179595734852830679907405494663849824222157147614489929091526739505357306387842485800683086590631841315480843008061600148283736084928036548497005470607762923918690031322421236604756049087790310176084935853604689026603497622868710843390629607021924580349724377896754524867079735321990820498786673490955016461322081649768099928701238560738887951069511893239675743900857816497907179043907854456219923647918335642760194683885429922341023859104824236127388699543209735300012050564274602026094418822469881749026866561498151916874773006255289333795524774333075472465247047307892162801960956288892917422718454068749676732820626231609454624001245494230122135945299445269011293486746560098902429778984979949125921567647283072989695643985346659116192382478031237148040703498993097899697706817951767587929152680273005177853551325074350099331557318487929127577508760013090580204299605214008541963281832954560581497567383569543261390729962819153882282027378119597185895580360558423039729847029115540762639146325694987072405097751225860327790684324089016202636323670396477527052464806355326977515257719259810143786250122465142885583048461718415449225143156027509939908876666204792582081990489926763172592788272043738784087606993341374698515297424213059225125570778511711539340345184266072740957459035215703097528702924375136410247037049337602535506389091239373189348846304491474664777165443538613586493097731186570974878701873557352574151765634110629411540432789972948871718891821529519860009061633722671673146203167880772899570303976363972429159737488401493379189502472491452276632752509031913023379207354834453576429042866057358966794788009117739782096113059461376163272771004358030406204241148234434970881947410553823322817143270989288638165139290725806513181274122898494323722131108824512845020536389856366497322822839819784683695058885607271658763176737575023245225097280028796815277939758715185621358018537629146320371901440002634395317973512457872921419197234604075004608822310153164070812124345883355488906708573924386023222433941577175725939746795364751309573902587939319065277405919138330729767055694739528317309245505172819506958384472935886237270239079862373142781370908485378265775524967813549905757072487825375589250276441961907321374641764222126132423083992579271362087857485736494644456127813408066029680694909540874630808187094910126760642146895919974663112045090802200557827834462463256192956542705374098653254491277235007033244028638581033885834213123151484987212024315791105866357469293216488706730950544615021403379448304533320420550762414749022182808406390020729678637628966701189364785736738814080955135813013978193032236364627040934757670217832797557826105481869692810306993778510829175151945638028387679407458777909919204224130267439420216660752405283642917735671778941292742803547996896097343709439546275168314389024622672788084852722346279775464996132026592957345329551272135977965497558244288779658477469828095413676572940266138189758553112681171787926341953117996155646108913545019143782264981596537738020359080297979364261336642429510873608990166859612921899797180470667232234477543025372810998348912808666000462247832754915091735602892486875032346169204351229293124477979354973299241479161495898119666781173627763665612098833048203930534044910583651521208123951357249756036078232616849884178183801153488307921846538337317901657059757644411687086972843061509136468470441149227146617386713038034489237023400344377356333229341554696162143927795013431409302353209374936135265438016926156844927724570635725096770322735187596742589392083892319769397315693330021009692805197038250053426232280695537688638735089191076144323780711608324380776514346126460891547898803320588153544507202069590998013214085030265177702038264198603168682578753000342304314976282547568410962510052162962248314789706257404571973635203168956839863347336318968201033620161788520608173307291332882654966232917464087141812367883883497332726774496601829873683750780003100488833357544552506616775438696210518395897714395869286332614809000018689618370014782099996868084670189702624860647437220012407675229003613268425440403667415089360345698880041605743355262105914198772432445996852331375980075131920552766013799613115753159664923205132012751926300405306866847325957908503859623461764075140072520784549364474816708394014560114208670812799922866374191440122514260625069157760728704096076581427617918980198704584187062614643908184697331825466037296824523709422074486034989329354113620495766287547929909535208219684726493186083599382198302138213907474108411969386520428966777688962015853889314360742719869365023671970960118223871060374098667140058046906823831536469665448180705607635311527855970446469115520062024363231217984277109208644655193257880101813952857862738751092367065998674130588527635035986439909725089555675644056562006229492674340898337688067538162720570042061381472422368798802621262028042542348471129712922295286870561859964331819281626557397016241134869667388650465234645719408882790035892472615525851825913211487689341439643122739387732603219557835604043506817735095497952631576966566741423386240697048854113307933906727961290057675318028133834523072641738641304332676289776380610645139507518621040917494729873004795831989116400163316275402804340590697798852045851271507567981338812377527511540156036529851794882494231100008269219268568592227811408187596439942402570427425958833254905387960991183432634751551650729338871996395456877893241080062821009724247517885249438846787310574082239553404825191694924702260154228894486004652299337969091671788314821414499511733674773319973080533398009930623185748811072190988848632550629440087011262366209211620781092348940133544534814625947939774335771361130884309285694192496547168803237566347061544210229909492131831863909153622962547945594640752403405276966887104592480329170779331150711344104193204530813711400469440536156609277411205122269586096895494441674868478210898446693940752655582416598993280604689277841493094467817477386334668197872340440623808143077369917670249946271404828865300351180655959778663121931610260107630996748316570503954135021039153569424026783989798789137251657485469830910236147166099585747614142890317159280853082655650820872534899201645894631505943418064372444998749261010669653982599259079388125243368743461640637941172467323623127495361037680595542643877017126552644622753498967833688027164987456189187943753261795991358689080204846155614927938123327855451409150604175611107648279620858411955563391278839457932733324203849134374699890012382079426962713779239188280506536216215984635950546258214792375363852279443115970505461060070410795278338592903014775530755623995993363944475273497123390292611800488479312553903810280234159035329092098544738293178312200205749722278552276132417355232887600276344558348746195324142029959223083736223179152603400510476664469943716879169116878142160131213968140164920219926726718961310459926995022210936204887839665240983548380232779385727675113700008589067422182874813195995794149668300312279765180384123384327792203374274733179508879931522566104182356606146333522638550128838405332460597061262822496087053277966919280939904692459012781114760712824282507675926896681588888828573888489742637204679475594573801997238811892052646253516022586256782359720673643701750052100972178716690641332016420000133285788669978303543849627888140609059925016499250841946862126386252466715936138383355202704829332986734131242441869643031441885416649168537626707927617747794101373742814134426873117098637931391723518581918667301613183452797470207600059482382412764277079138395276313823849638849170339905579745875919853960350197230457816905119015222150166952947923892906695095582665467413252550697961684535038513809670944820901569128008051662964435162589144190674304824779178143308652844220591335679874019737376195236695913373640808167653109475267026716852700694096063825516849082094289441453205699386456969796631359156864491841266661259723182418496376661872711803762262917367214014646874697131686254885664148522277292915731751592191582099682123404587857035519144584863607288077734199958636897828315304843090512302339347121680525226966134582021150043520182364827163612534041131369588514863253206665202714014933389908273057666715357975139000450590594125676499089033173484479865796986274807648954966949845360398229011261923069919886022009819173582168450776752857627211135608377712431562285702066173415475087087505784658517966723547138811266827680435025097964808272972901191797778081450516306115219475833828018012976170662328517296448110410592786940859995139551951903205377624340078878706634863941115388579453308942144452113143157846461666302588039937459176338514257751528470540221489543350138891140753404764234159935750744368055820972743103013510455565075352417670493428688477207961986634766980541666684965870765701324368809996848016963803189592165687646313296764571258967843334311623407655020668094690649110479767729969703186312608798444794906042149176695034738592211565977549841104130261129793045836354659997352072079479214149176764299336523352377519264415185014784436358531750396586833903899473804469969962771170595318935854006854008432619064170637153400877087591322342283579448923207912653044493353877451129074373794201181728756631219926677086483999988366009624697908649966673291150761504308776966373744066292835103820725839101588827582973686765078936424078922964178941315631086864460115620290963013976675427477538261482447614245343189520930227243726686738207435429929613403826388430460929575043416206335014165304958854755087900607673568439265386343978108728852170140791979733911054609267379150206299544053132024389492203175832772207423619149024726818164335616699761512418954738092629635541495655035154149809532805014055855621662876127109912044927146901879838107101929822723726844389004436149237127599562327124093501283953777084528153447844876238944768972794580830453855280651560757481036705514200979184182737642803920613788805633764416995950995637287950862056114363294673213303902996637783497751887820953713067786054178221444977344569853957874338766489349531804994737134533742764591208391601627015360615041278020440463708707058881343111870641340719658859343880083235203940287988860970298379731642125119474678397279594402719550987201383548809226915153072672168751797044615744214979176839178786284938682203816618430345498129987567133316850837247429594242306566208893747078182938653136951932830162554771345541646131448458420327129136015874208986075960409081442454926950082386284558488011986664353956829582255272389225285062713844005108212692243968991095605860895869746014112107532020105517016590251410334391226792245849564246199898051304292112016044255755219962908251102690389524331243056713227238677149924002267027428520809066272571658705724620801879437796536644028651467242413239829128717475350381058740326970339233026100177997211474544955555443909082428109893100716863058751409337456681980572571555376997232834115890316590414427220522987181571360717247994887441077597776931858887909749594016135750913521923601235232137978704964050378263866644874676085163899272246869719130413217730256239278546892998060243593858312892854578217319912019858420991814102088666558476736983888595090768666412428309567059788862419995137704083381894159815996181852819902117842295504813273457998600297198288344530968902803788868379393397090226913597258025745645904749237640449099845049212998826666686129725325156466588548456199045050115872779664999680461452910914738581966767521621303041311839459490411242193676119101201415047936707198209929922917342789038036195260425587542406359324211475866744607121875061572679900232092289754963138482596629041647281899337599846153124359074766269101285004172645082033829353657994325590996267250194616823918964916327708528050688607088117110353138331378517951413374443266428010808760114344390569142537345677112707078947939023419704578506368604090087704455759683248006740801490160592150825099095021739758649159472542185196921066660661484752059818060707547316337264029747174682714516396902221081586428852248684226306556151567680216500093403849796814825146150336598016418561329712754583742371008657464384609883675984678785030403131345459975086523072326312981226862291986480501592478349923534759011477640204304984728851044073250195569452098361934881348124580212101251536432630703287656375046068070417288246155620845542899551484999087836969486082318529557073385650162867845469453838167214652339686661768153075565018330139532246365608765432948819745644722842681305216254268989006927585926205601681787839435541350104998386918128519229400957823452462718783963394127736815339886321238947030853194574447180244918816847350691839200751358342096421561559564257127022705683049280203262730527805280368802848593004640822483977165911363454068058895984215267183408465763983971671250133458681624141865915868448419867410178497616284727198654618829154896697568164951694236657408498682963625932653268054003455965046198385432136690065325318842152826969269184165542906729627685878494068736320273570148728495413182609515255273997091410131880234551462229432192963387132556719315097618281312357796690067850162029341489809576980147860264184392002844224621789871235518964814339767246691850350838101675091977796847264255581418526742322897396928687125595639790744553720582632882965272884282239123518503678871162648085623113170353883120467451057710669582710806177968963254899489671314587128758222894836309027568294462882352233424760231217803009559090896398382617628379208976011432811243437127918868731296584528719797220492614439212548660596880957127083436654367583086345537175668191850363349321156274063574455783503847050647692756332118804926521607940358753204136021048562530278773621745760131466433032700786438079552565498524723476745447488054039318384055827419007366853746830226765362463051173683514618611625475348114858676385171503187470464530838502395700493313717805688681039197277125539300767578412815647433194141453596228950064034337378722440440433919691662525991391075483458213809018625024099420295280512260163725529522930185649788607087505852912950462773885890287046217137219191865714993352965035077487703524357389692332463338081822903880063307868667689341272238547614480211621944118174606134279735578325755217929672865461433966242364648951705194806069606616669565048578885225872098946840656309184842837165971767578782436511203597116100063713727034000416239065788759199908045307412451570646733519229630525293407775633452085419091626821884462307642348272429805473823319405547658255669822785301564621350360485359041871892631649435063264406916394758578203989607091030829053017569730348203233879052938105146257928034149184165667809044538105070972363681957037535119035337797439164260786917263934739742253322471496025253593979303825170650872767452916328854454647187609757485317376421899831652027543643847776517907451395832348531973296582064024642910732128454606511677146110214129991499055818743243012674331895570259301784193485015428349046209442542718836684079580453560825345884056025779855577120088982546571485226510358939900443928784869320259990051799763252070467304918975091058738407158479817550746006893417896848459607928414177626671701944577495502177375841786475027504540889252736256598511102419069156858284160428874852820806579340174945608935373173539829656158028381111041526518194637441501429831968396036184989794263741533163332174774124308032413945155762943219431349157210720710293806022620352222714007885823874947144568808626960025687612711728719049254305099269958212584587716747342798254655105774313640277487140364655405312993264295409291336136402691983165587085723338390035674294153678184739419070360391187680645673771491568240387229194182884668205818464632359164579378342236839444351816044924808302410084498767062091697282941473997427302739065629951344634702684144063764871197971561100092200861440812557181530968283581161724273439462705327455017170374105519218406526182799704978654265149469782535638843764933091791399924788205857121610455777416438662825341561221607979570898917647710356915777687321904036433661335879913158570589520925628165616849408370802058125650855845211370583327322690819879338117491981706830179842833495640759575755267328054142284264153787902592697057983591026395584302626344900835561914683566266403696811872257634109606992817887097525672672492931417474745487910071189959379577287114762887045830558938167021790816553904226643778566617837944422030854879918914431339702627861525282784478504134976170962953536863166448902263397539256238378844942584311109681421760452367108299811515745833498664609260690163704323557526797245331972476525508027552781047223589098276812496354830798005529115805387142227828219247108175602143823477714515458768509641025502410713110413226933291440004899700834503586885063599179900844935132743102692062502298534928955671199024041762719467410245478342036112028148638071788626849780047892069651784428741478620715370294109790524819639352045067322925028966277648482967310364356864613923442069098221022571123742098316144757169064467334634562480658418341683831573036076845737204630729035433087015181147458556006374372994292842584586016782621774054077242367132516001623940646957742284504819889726847512809531787736386730022530381906619176348400793986446418179137118747498659335817505836240028190701481651282132889514485423573111192601038950859900530698458425492996532671943417609823660872396520402235300627024800889933379830338127966558430168177122649417286978898074352792635812190452446124255125769008700882635152676570522376951140714783185160429466486984794903283689610220110135816509929562128857909717179208891148152206473420167894357785720504746402406061486018134079425242436892844007905412728651874114278479771546214363420303758473410874809143118562912508118143116254324044987900350187837304047011392044384027473579255214118206373618037909416474556646007288652967781567288213625689461134511287826168604436180011877442959026127525010111113836435480953391134309572968482546951001114433630933335041606376966654564590879347026795621163268969067446083321500690042058999975527196071365682122172264687252549069134710223636923761378571054803800603648126057642270958377756590514504247409658070879198392508953683847840818862494887848932166437626284555803682340483425680301008272192613176127443758790893117349184714297743255516002599249936047353104283136293262932692322550434209172918659660143974772307110556623960336044536412416305700402152599360855952889715371702862340751087646931268969699155227005119440692988632674740093452849288151104079826420012147293685811026681234584489066769852585332534766491064459533328709134225854409741462740244613097282080111552131174251283951308459084325874943016149248238630049320923265765590556242981104797697531140668504933433225747051785099485609775372973409574117623622807460251518964185040406288756345165979532917943519937467725923297355903204093361227211752445790349408773795007129876091288338047058839213546538019257593722446986829407590945997931605065130776676616258356860355189192852798935545500060555489009174779885815958622803645471256190619758963821478467169680645388163904719726596834662647234087812125534681295084557315845764769909504545678984380257900208769232233219095133059083982246638355689080294828936674813347786313777301785287438991030294400518697226101183386944452732086472623627346336491766008645579202655300952128664474475315921668366629330158202127012219635546969642057108127483352602229534590878597113973830595862415145117403079461573187409119975582332233736597449689308890980609933032741736739674945055611822852737590139517088177676606932961943709669165155223433911117980900687205685042250936838415580902857162373915964061098667247270192052241531123387121556125159634899998067355834862126796754048694863842120881078412685734950592248822410719067745786865166916974713276271918005087526055707002188643347395885911908086966624395726916934731143711181005567470231057475604822216742357175575822749179783619152002276523600843815655017819824712242593765010702109932844809349059895892510176460153059949668597783994110423150901915856140916576003810372529798706966070822397044123397689291907185983908076799155220306012694165990721778722995463921220676140445857485392261558679818063350609255060581172422906989174251744958395931061078618957629400223524393473480083701890372414432561564130409442020107929199308221922059052980581118919571320895092552611127587424396919561725826838526761085867843032526691551717415269498587610874743959093934904619319821268459248746357663689201553746642410372971156006918271579718934935837012976775063963964726836382821865748125072100335179581316678455389964526281390801967239111730299172534401207814452515569624540464561712058558579050330860341689363095282765361719067507540011719916550843574861842722926216021209024240320690190197278354674186618077404225923831039551972176657861605380876241421779654988321813436550908470071789020643350856874040473341347751249937322458969386667334627605277092875650144978495740900006645766074624498216587263911026806452185274108441793138889403078330504359972914199873078506349977126199958348762414079579135628994082041245398028789582347997299611542438492535348129143476906697385461102269498387132263261073291300986065749660090176296264153226960474589792115993827349734574649405097691594571745281991257780033923981373887254804600157837173167391340540097305387437221006932000854382479793336246012936867066758387564754349251709997159557219948227641495180901312771473511529249276092284754453682993221135623504091444363717733868515588130269951724396395793184924304307036765659701050215853576516568261761618655157862309664618755623339987147824124008598667671513154021973152426844007929319779682179449511792364232984472954709345363528405138717419457797043480046899069082050020942488402415575276691009363198837705359068247913347305703116579553613834992103399644847402633726689929023986362625056767704453612074533970086031178795387818562780195122917193619622239248197885403830637509643219957352031976600689036381673915022739646883340750835582878525521720023059627822540605796440242070139718888354017813776412251852878160184287277022815520865401426710332743835446980905871741847224802786768519073564573814263443076812958341870681790415313440681413252312739938863440195781652531886130148108275358510781734126176968210450787981515578224077368604090251968679705369840500927324218875661370437045811458960386699507301542080165070494246952941680828470939083616779871977930086417689870000126091346397231849225732359204567056159908248652482247364588204969279300371308309592530704301205312040070340432836035759797666237513799891158969821958830820833489680919806071232119457732850830608493717883344410128889313263660494796040243557659001390817225122184326625032915345757784353216712148723912485101266524044996619265056941066917884720384152155421073558455068669508572340870581735910943840267570748472589393966878113359343745585207866437067669490045555942550248015976050941496113924061698580664485481127688303808075447551353994622243301599629506535190802937290268884422622554018123409218210641920376559345858683939043059424842141773903642233145566984525668318102670886974787534520847885483381465144918668457914380187517706539052277544266670016823786169512835293248755969364556575543850485443557549982974608085839993419823747934723306882574137906235224968312809352716142782793892963693964777930349767412694551542771052736122841860711682713787697695755203337956510133722181125863034187008876556607685641744805591720604070569080267902893714641657917794915522011504331072297435895042583001495426947540671004277474701243119161124570990721347340475606150293861205564937285972306836989152937876737122243089226420850468448541859496604639184968007440150808107929881412826449748861329168061430530667652765761693854788396960668612185826135580320245404548485162775438212339150226753596698193557168315125659478706903777523722624684822284292218263022629865994559989001401283024170969309344299150887449221280065627773498668206108655853731345340693072163280299506213380185940727565711567129602411329404332370295170884286375439886875047780817062736940203459310791063621483148683481563203871175741852539585354993760033734286793157462159825259956276407797377192497218755465534584936452882585745666533135021645337816243497702395533547004670932450619766385297091423276263141910195246896593785288760972184305730871193019062086320480988295560508816469841406509622056920852499675890609115162606604687209486524328995674258311244477707315030261589293038873447236636432747134658721285565767806728832394640221184904365296628646073099149051518110507374402492099721328862585513854239097934120561111786088324164490601847102950830279555882199203589010575434113871254511680731925761545163101596769681201779818553174295064170481484375698759662201573999707560363046950802590134487089939167734197079884094869016255032459441051748484176683571442034180878902861922818911273072672588560148210139573582357777597336883999901274396992810567706258695394778000037815954473588708549879369537292138087676197243889136794786654415210752706658987168343307038674777610334948186831494262478858104500117775888548198243776270938145540051646477251477978579330333594296524297283225445961941276092260894243731877064623158927219056625960727259774446575863182855112769434829843441923738257515390221682600694045635536806701158986035613605225277816552551888523351274645764413952066339656489152143258286517282574892725932922386564988991674727593086113164645479942905998306627793343001815559473864749729718129003146633467263120762335508229635158014790601769189972709592377815401124746292043577672940174104478778372214119301114273203324907366941729950719608242120569708741485223851944879189361083966800540993723118292822666408766597583221728220857116160039029332465979790463959542409287185014990452067524367262776877846090087028054014454607088772477226049329613208790647472342384346443726689190802178718974775049973471950395986062055724507561786635337023685409600194980643483002236997784547816130575926961341567102301494380732898563121189040134890729385730277805722212992507941569207742372083572956804289252637730406550731764605538639810643288849572965333591983774980553583371818458704608441709831749193659990201625253703383467510386388937233521049871892978335002113434478108691523822121485515570730377318836326510183915165224410906543185068969922543834033402870860872345466195388636724771810753092382646505888832976613930307786605926314913432285241702267090579706763695856518837868759261897561094873417184349342632940110189226692067735380389368852408466222144179015656885527561557675285348805244227992446160650349247587545387596219350565411435902457437195372219376166324854979818432738632039803920759769942823894888026771647111269055256517169143068144146900078118910044105800584404915799717542770756585989110638719938468624564171262987468352849435155179477311525055677281654246101013549082597492613179207532874776127381665512843655563774968981342261415741454436683242297828721964274591365888935651576250580100742001113670435876177432785138538467514241936112193536754545215757113229015976826624597129289372868570470381325988347199844327578788700853843456380872078851853847737020973467835777592584198550077977020362902305652175893809021959352482042917077970622874222015377501411589233340792964931691359693812035556876044932134767033113634211239148184586041619302460144878383994934244117081387942051777400943085773896153575261638965067028530587026575683667015582029515906827664578512878930097686498878364552241243951631070897622016877434670768751255529682981682020230611591028778396475759760274786833755774235849111703531772669193085570201441425243214037591853593767158803901635415908341332114812880536598053447835999250234585086779370128933355406436851847158163338389336091411037367539628279916363655026960163169537517870084325379933707849032969129843947141751727387881212276472930204546643065118710844841776535614775724220061294781252038481392851254737682046931931215189832233346669133658920404276035216993754541680393022826164918431605257590782586178730743621101167260566545636551223132786443749339202985830994304945942617990580792350342138084541473920093917612030109737280871735881170990910246162673475676688375660179812399372139848449264598741851019886849479329100677205917895084060512873581778366057911314977466205523347258194407871930101921992787995560742162099477200927368737275256929561934758208797322925360938791753323564510486432646241408560244074053964908313888851147492011819812188764808316473125148171641195141412035690921757496074430598551355815809188709368272924891373540905903568992741019070054767598080557113453312063471605840502190892400612840498866105153292153384545792303668319501975031116490370629334312466024371876581762713400929997411510800029036703155953167045876606380730120507353560713209966440943472593895663249735872418415347686282358844188299410475708125086718967093480139366209216671384114231834828128349949374760635897008882883911124692140125095859342749886077047173756437433130947008853513590690494817408377010628518176117229243475321276064313651742664716532350940482194797400351042435298150932417653732399977727291568700502802640291245107244542146272057783538239085646275786295324131484997115329207855878878410759515927228728706316912641733737934288644886243701877531578343846335890695204543005007667764403016569718001779082547431263677467984720545871121259478044818101524832949951845325798372463181170886560558439644487879888040334097867336019804396709419555461915504235917186465310320596548327131031363482657099582284285104942945772886137259297253345778774878916665771382516087949077204573474956204396543408866764983015446215986606958523596571083617536132029047955533752216730047401446179644489681977486850873393180701999502888098103751830961578984003277385893520763756092913673293745231430260841084895695115342532512151395407095288718343153181436349480577039745280453079356219705363439131985212555169133961863354651249999286827013234174421727793253494101054136568982540982446561681909346521246155158467855344308209332288385793408268410553134505473114288427681070970138642520230401460531947692126284444714320613905229027132692382440535424012588698028176014888651329021339639424880984823027091440634608142945849660763345263241920454358977046672659553833135339968903307153635607635265435989299635421893777705352343375192113469984803004208553602182478473327990773610127593868918912461773337969012271026972519369619487151917421524676452911891657252984400849610408166423148543188443178838220993560281770895687058674462977499373859837395688663901508642966026088564588824039858821666810964092847867055903720755439159430163087346793008812463928968232184491873243049956604438509144669685173485688458096537067746618928221151064737087559494098614595982413839176045544251173820626642930747242201765307580447803531904878764597028569801291671653565519200683268005091873219290816300243400655864379591815737584891581155365411954735673558217730948619047650930431231984097222409764850236110171360526539256333076570223592639761553307559010657493829044511662426938470931711305332691222220762719810753017702470702047297739687991758590090888703790118871022684991582051478257023731657410475095701444880283527212339779209137372845419270264622703296714843264756806432909433838557537529238970930025183170027779007246037815378538393648606526905470814555657631102666761133753719216018894018597381174919516011109892710255687539926379157645912038497228929270400370928726563849865009604307944494728899961332781507057993233102794454687392731907359104330723287448547120958070952344525547099471438762249785732769002706190986111938437201873934361554286083628676243514750199962031776151282444548549505596604996570202923131928282965281806442445102893734925542132952953430437463793792777304200345505937246277668990420198950131435323870914586259178420265483469833662386766304056238336246156315220178758764941339242687450236973035803064632834916919599785002328898404509143913035126073813962090710671687957122736554358924142794199794604148320301222954654543369910375223096416047741907579355045846211380165518259477815467850764661689456231423838557957268936703127688121565322339260872219384696642367615890004397481297118120212404218645167163037451536223994657657767885370807402765844658841233896681934126599097615437182454441043443308892552907867535198836583728418053693063373019799638507994369274469393708381779808517635740639546245454454575989129685905872937768241639439215706530332574702624531742104245203803846238841251421628023794843935206511694454255094186591988813797976327440280127643263596752150286555576270366808312713766044679587174116925718002258870303572159367142987836196290647978974369712714626471899311146798723761179262812732731452102860559978240889274045988994125628253889094096697626895456266808897090265994784395380587498200897711439687226929614178785703529705424882027285258222001083450703220784166137044152242095913862402752587828816133783668008272665667271927580657692264071403862787779842019739497896257483203248678518317046403470055139297050230443033118999193261700503297929423400388860426915566438706537113151298643953514043356717617863441959111633677586121927182939802895468458155512360596418508494837708632075229043942776789744489573795853167465367590139794163052958300107620436577423310154651902751934602438593760622405165679752698682007468317002925815461318237688458720547550541971412491494983414100756421295130226164990753441733258289110230990620177637909878390125866850060020683678124260555045555660916412401555334655652924735587207865746856187433120754591800959268726323550069716627912461288081643642895243895273755142951951439534905976932158769029500418557106724619641863515332091728056272612210923097184581843015383825212164383475080307408379057529527136109354227899329622275743608787993978522958005608225098149918589228116974570503204111317009638519673607059710575371310961168793142875052455170324132722903757970830105343808002347971648605124015008049450811517601822255680051244982471924917970495534224809732727939230756789781345544036545660260286028146262288304785159067604376263388085280547593761745201021102402415172920200735771222262222346974782913516018780151209482392974429593455747063103814410142376363380009558383356436703040210608299894075929321525981817853224819862669027784576151455868856117230735942600585420025077714665569300125018801648868014940155403119481547141327345051065804282612948406984130349979759481112384745193921994983671909853045171679349811327592212187400905130584943017500538201745333329091774089253974630481836166529269917310629153238178414229216925588481562169287437960401782990354911442415512477245113625683519563105830451278177036761209385622025917482145713952587771200637071757215317381237944672076607358001659972469856050733498935618977790100052086251965511313648741947732511538365037812700325630760710472341195635857481138264752923261466474994846796748804687702411865073463358519343395834126915056657998690542005961203434043367634716006808389183149138598320030055532975231935420005022273756393462552571303853311674492351733095142848268979669163087158646098156241703103240686721287197863167049798008881123391736071167076946961570023898807947758240831979791242547826845000908701542926269192071296020574400681619729152121544007536051602129751572653018820564098713658328605781993763786030100436330530551719374146881761628088348008174788333939475308792537591604187962965517973992335559829127908498491394578526125834534407433787400057597989553548572441402790539976831372089130692313859322541141100573551167662712541724355117898711024944822960525526364619739891933876742847193381350807193237027102797797358294285677242232545627222508155527498188366019926438641003248961596673776163504332396410226358025155094691865610887143923207660297681611979897839620169484426964286202227464132940229159446096803330927692817902102334968970605609307367256703583339066819182743581876137366983110763376791289201482676103413444797136510039902353510536372312173761632710783280422955911785812337437672581137310854939948638115264064971980391597381353349717122602716211777658146033430579729357518401726515149573304593016150972502352269032915202655568087144859579992984456915008196924932165104187055640267486084904451817134289179251454821380393957908904678372522165066699167039291855517424418912221932311301309734631888221098643800430109343111137336148629011157682919628554521757212274862212787250339185865087145696293648807354347977036861183265157613857405080187430715840232793746379564703147757210229909128789281568190525963733153368196365971519557475485215223008213158035474999513319594693915996275005937690675451329942679049236107259521760519237850897745092905534432479179715972689675167811927177670091833978232808651203342198199860939516915480547932491197582654908788162728734839093655142295310889863993303612855724408278991036051875628866312744939663796432838631444664649614468375090172700234892481277529841629773347241993015771756917477682979653755723072718738707675185026057668715403486948486136688879248133233682367600787676600052271681077135341281963510034722592808836815262374161517432871173467099678733313018738678025097213411607952270449299899836580664041099902842787476931153706579185635146108521268350266132385834356197561569586786214641604253121637594564755575423645712277281183295323729395887744605878288064396397663723202405080469137935191187827001502173802142826779142085964452163445578460204129059282285989984037574218221937963424956673648136723490384907383190458868256504473108861847270979607307967785069536763194143949885427814187730775990475545446482203875868362883635640963929852751613720056904259235395494390299868477813100483365598270169266820265087490470429601310191208505529648071015744181960403126394323618732656823329631419044048234113040812133768098895261459993823202763168359877320406734721704542602015239849042633678290505020905274899863961279557275080837079961669389219811110909369487592521881231740164195205147646508818173481192987603525225965116406895183371495225930459733036879529171548524659751407174085599622680666325726038115872849869417282592183895962524629804490193098234164985016035258507111615469450941660154837396702914337891794380681807887400721612226073034671866948185209275443537111072765051910397026532368961844972635754996731897468758305451624464273248889458274343511454467616068906230361504033092413077386345052587206310476934917076416512324466350024907988193695864050337411118501480692392781953454790076146998105667335450544325110245417615304166567257363219027145916140186159106472327983230311673980656058340451611218139657605396558177266462214183054525007303390139270287855108976977171758611918177924038108743829757483749175612757937243584945863394049258353167370299765536221768128000724208111041116564047270968425440879362370675893654956921323583361040709332658196584615894309011432014014542477766226257745438663225549460757527383401445688193958792756598507804562640365971458317318913420280404749726497878956444359550196695657738131041600863417045971902472533756513224987440310943373390662882087771097856747342306107410208239868061606791729247408248855434249334061550091753163022482419295372383312530889715179814724841497151834755005270127037902729131129432193825852960983654387257885063818204675018075717365563888607537647184465316884693030212832082831361121048296108276648923686089596432551763935563740790793391068548778803616396656818344201864272398400615880878659707062028173046758553858748383076612463023773419765912705065883009237722311689596339978205738855916468586368303771043586254191051287341480244230730285049116883100619343153570735962802945282088471557307704081070747473629093122522060716862769109361123169627837972007681341588784132914810686052348121799142112925901435554785662758071806769083921950692513017829257029531545937249628051919472886511483944627603280716319827105109343963373550684349177807268053781953979783720236021374087264939869744142713794018835750637157809400806835776952466301430285695992404472716579313354461998453317765621555911536203137390572997638408210844909840305618253374976122298349123376402268989117341324665965040796261732345680167504569164526729364517314006191871351181782285170166139241031895884844244181357570920118978259435469142911714640603160637978065624961516699436860645430074475174299240750654887438265002691479843493837564297573329394204598709255909001951191293708744112026047011680155611651437137196070283160444821367623679542955703618044343302187986255921723789205574654497178380857085167740227276029589567926800737972088175791848736544227973443732318836585387461053975897595522436932154477470098890138248866948934295720785040181763933956766117619837810092492374624350801405050706449991661299737931308447589263858508956114418083988459975927492386083929115658616669977315933217976549765083351697867445678707380345960747959746837711829528718865490862352473910908284916915691284840031070516871192369734254810540830673099108448627151720724432991353011046382688028726356471546984528884496094011963770449821587245155566536936486447524394178460380977429539057394315510760211346100236658252527526979935953802755133364884068970846171345407137694249745853230021047306229269233419258358920520032554735790138653417756545865812291803223182606039642194460474001199150256373078324186002601237933088381039799701921132993103185754120146750965241929714686092795114315195201466736085232289164178002923115029965147486844572542158937198869370383959747708666073122672053884912965779786451976567443806674973431191667489523441972913932551984233706960262427638539952788321232343237760429022314484465686339428935361547832981258743062979072866428155917102242547591107108518423617238718271606888018858468517261659892032278130065029990646771248083542658469353110368599732049640756776916521857996931830296519773064192454620861782486523527931389841442626564481049816986163926668776314513683287746097285737317266471105383811601666051482137411692859784918607324378526812129750479200229548962163442782503169286219221485204797878268429060910627333184765056741080553491024010845830792154233774159471478465813162549141791748813575926529750469129779185991800652697916899569646144200428607215162515024108029829049842682079932731608231427619191769506259807084982003534413466937719407245673566572087392399080492246208885384378310782375058393952555272508634990906268477203127947408288112727875275392456121693064171131939117189512049249835180197692144733691965034572664264722933976665577392802881422873425108029712080702567510612118385210665761991392978543888589666483844431587149635886014466748713466966090961020932822277346721919759783078548970373994831600740884569188436209457007944261957024963615059231186191504569651815477588433723875485115483366515604591010830044386656369128373627773737849779104631642833451143319816069127415289022793150607326034452656529347436381859398368571040382860206976146199833859197926670673102645330173616976428087530124217313592663353029415329105372646333174538358156262789557038822857815300134472848164012960686765942888950027530061881759787840052752742053605067434441785255743349951993749640211317383853422253684663521733635916655773647748992373538613698425641301506126731032853640157055575192196272905582302468470973269451142404986850991465097653745648560602075041596026543681145624087104810139663581772829812844140274588312450332641084581689240096792640756407402648885440118395555581899691046126023419623591834519423627228191894186502928753932584653465681748917721225436412359624746033335014184665569739089578975697651885014463621707448636078116251368962620577471129983421612200411990256033757116383848068075917461436248741647514723220776871741255675754011104056552799108701504356208214286654851946426958349006867220576196191295001543858823770137790083946198422162848343093858212422686958028493389914746266472159667709610071721929075683430400738196564600774647621361715677808955847969908324623188946747437436942882373286694773054138939431904399903529021696298575411813442977955609073217036325781166079931696935135757871178131994747521208178992096577862540343135112209822009559113927447502494541760967213203907379487739354302212178968521123823399673041790986760159452526950600453334494554296694318815285995489116440019783800378845145070504093825100190876000648508137945927632920580964206084734381367724030801083066316882559564101081721466126194024323287025648445370997209936218128087420592218104199066226762128497476916952589732863607639886101695172696019338209899606602452742805621199131953139056321773259264933885177524719137404326386061268314138712571787088289766260370703707034193314385519064313667483980191761433320133317375512271356405590067871752786207031338477539835036034261026461090192047712034243456559588741265785149650185090577649352645540151907997771574029271287154156474222847835051208484213919006557374911505168730028301725574072999236448097870626723078026540094101127799981216741499147080550611742151535141595011207134032200293051673006535004039971895000070082711876478772070390164987759144580635509971136887777623902397606134024409020556919391998401521420329855308002034247296025785364003052788605319941653851632160739685344600947926574213523688945181051654376635132138085785836183801204736170449041872905421570928131758885220884310060787452712546672518462166534999201918903305391462240312386756018290829721671874210405542481992121860648723175591553442327929675113209508681689936011473113957776180282900889099858017909898116225298326697130497313112233769086956857217522085316536600933297041761658762231434498621903425360694163619670642142370229221306804179109620718300483533943624368432316393005324166850438373714484901679932019555614796166679321611654100636110964265377467294665152018159831644268386910736969633534710929567142636201179658505273253998473942883907818339087988168990760534938089090035830763084663741473063173302579956856166384857055887591783438734778740963186057681182456951634372341411566167952845688741032491460824641968228795954262476511645752361662026329277628035444046007739631136631316737345706889128780438254413620922376005452957510418815871212904954058488483392834911735366269649664187145920051555640262258759041109446128034408283886783999839275179708888898104128899889973713857134880493550005220704446599343060312428264522163313805173899096218477239609425951213438402197564089014267842827978334361514376332792078403228289871071467071296008220521298748681480745829683344382918092981149804919729638103618031863212721873987044839906845376814211141453649579880576350272893650776638047147194375239835328426319029357446609750269099975675964235317785264888515646761777287861417474662372674049121746193846656516467439813830035014192357732138130636589774053904885851492500335674832976782252496290415914293732536719188214253858774894993164010729112514939897754045410761492965177749577214972291326544966462052416028319222107353798735072169462901784700249955738345586781452155118260283972191390511320519121724834741068627410343035026876874844306983092730746580877134186506291014758061848076168493830549454803246258451100096137747820916407971676244081699094490984075351881645967817253407676288436960261326718846144876754324682526565226460708297977832242375829827028422411196646501181495570188445977885277020143958552820202024969104800158452557850891824249363892827273176569440721560979612726993073101027494638792419444735282078822710490070241810437783386645652269520243116025707229642728669110607383406810405383044123913702149455825033622812032038910524136790309093448490330987782318686169741880952968724877688786153154078068536113794970396125006817984434430391908622132454538132972837957437074759522695832197187058990116646440498504067815833506658892069705072200199765000619558594043599348649712641014714465991109650255108157813312283235984443948035515704761557057116224144517796549233286190699986780527347176745216697605159364812419683572666133332730173575668722415334275533843619474084746565661732148134453155332219171535632807284797098091752139775513851475256255947015107900164234300505748406745835675794559304412167241850127923643311336369110593531484578781429837266180683076929412281430600569775402945473866075156418563674275887538123605165237724295517142672587259975800540141358722567889101720825981629501258143556378091315083176399982931048135658304081641421553986252782393312035410324594767082944083960862170774548355197771320478021877978760372439494606925700919874237762963125515316516437564686966599684319980660719648524460883132973776310428879143396336146182561757223957808390263395779026198223965374592131580730737195809724161702548106895175587319451814693675011038807957376259179904033734024767146865226281633270027550548191199508146197956608015950783353017911881740480902143191307378497867303581840874055799255348275463186415636752791431619917004859960450686511471864579720499150030875444758945469873312159613454438263976702785262145219749953840396804907772574829312853174717173593878627887474511595334426288361540026238508334781906408688941503021874521684445478534267768920178637072392480808856802234508758367390420768620933981501024579499264916646291974532755615861245511533521561342631956993051501682947384105818656084304449364717069208433733566495806247603067374409249362461118438881562071994534634524906072549912017872703272406703654667084311715614575510668395918790259488520266101842751956653151331263995638583525999187177905980633739125465470457515231132685670139629639924399562816333038064731029698782671051773033429518150221102547605489935629367292009683089268463577820745608617275945341874554959978157187299851985073748870687287230472412204837412652213514472884989758437958012626290821906829391753489256706027540256121487228922947243414458699998202223973781521382115658627182029803562482438272978231217740185706512545551870429021373355645041789629110126518709358767023298315383478356656351163231583741167801560447004036558533128419713600644735223342875747174145698898005669010862366803957383300570130668101609425118145862872710302589697500731299582544952632562174894514444223258379024528423820634073744931370277829287385744734566943082145953253323008439654632680865345777080789199053877932956768418527391596240132329691560789614841326235230824455929373323412998681422346690996207418422325229379950538687718033112902812236466190524331845026314345463863940346050988744584887229845953907198930606433250029328471769060016828775729457121440081424807648759269138965471594069609190232067416610993127938325469117842608054784745331048490083733052222327194818697237392461416855964337470939712017485825423800975673303187758081325632902013774845533721340051027620436214272694423667067520689381929771873842394776965781166631225962419363391050647665596949172024334928762916678831161603162614722304084197444031972766086449222299664658973266300707819318389165932625773411297690406343646734440531887310084356478321600707739150123344105092345738551907654009274592459735015582926693344898871650340587341280603603616292575460610816670371432740216300193097571573963722808521899853422645242371097501406739174436251684312649066958467395923843837990746005784518983998298810129956140270546819811716418865006299814414615116274358827398605902676594965313488521043886419324035469489299429583792542635743870365471159699734666643161843685792468063752275890625215157490254272180841153517236819797404542167095890101444289713015027647905387094892279370076594653868145464145324500264282799583376136825528322629631642612898983357648885396461361285567358801979878757599213325827695219065168203173596509142868592595819921090533685987373140090446879458750007866369906681837755527117851566657532070386521147163712867256872110330803771857009770966175512609182174814697366771430314658933565880248133042630664501721897839788460069093177575910915135184505296665638451737582425491120873839676848006543695794003186924425670566961362372196091771727685813099173591098653215339894795452724256709294135344545914045419512468147887691878956406441885845679522641789727535024547325021018236451876517717230414611210235554597808683385254678396358028739697852792133166716393289058499951266431267181201875790143282903224049658229572455728376675040059753229031258283036880736280719254768317443039187737640329115613690636145322252817864960632978489321292292202801217926616470645179015547592637960743921636974916942881416139439486526803806931440018057957361753075943138207050244177170281510470003698239965193409386821732818333300947352363231371166313266169185533324710926076805107545198289756034561776951330308691329855758268881302710265783387133486719327303134288932858472193635514359888963930283172204530867037673842729908207785164487884410001829218027102775396180378766050932143952267940751019543860245015993594926331346569306852831178410362904147512896821374404027130446599296321948265161530653785065927309053025168345208244528877168994203181539859417183559551534386856364232091911915610069186184578163103679564792750614544191874731173022040648768623547970128774739054048628504548497059021384995254365186641752657216908217413872670321985217865968720198074222665514912562149987677418864753452532339457949415077907870260157058003586299148482231010727330400075964939701036092054674492411834155433036205571545640742075491272453626713452909825859363709591688917944662618973908119427063679331173965989619477025966123886201335041765715128231212765373566738399983198435714454374134678902405523690016472998428021376920999799997932244377424472555042545419576511336765391405472822122901984451087351737281875037212847846321138715807692568895799633869512839233612603247050982808346549714833605826415994295102802464394227302152368204880370760426167808604029156223609409604152144696216586543940463774548942250866674744904522532017492209982438102753438962706578977849610235324815548277387528014502672754028819042421704471389021819631322164266874554003002763003231745659851534230768903609923058886857666599839500687446954756925219996912305357729297149543272060911635492562080158025296424331970545831971352175862384946114023579147295595638968913076118637834895489263714068602313543648815630615762402849405100538526320451812091475459070664974538832771897082682661755377890941629024679175381797141112814845593083649769287861818656642103784054364883115287421646695454166461375563921290604931668092156784983598089074769161010098911077691281168956733453563606634083270668465037345763476466432751301226364001565064188685328483357591152507986065872545063347844798258336400841672801639956178148851699558001120446335283391388511997390020931711588071190700804193451619435772858492058356344664883423636590934662982461919367170140234411091042053964075818591623451061932069427254972980485785694274806383756097535761312172915896842831070025803793736530082064681648630021477977731355542331566301563249136753993399454870840539352941726800496109248872453503580560477775898423010200124308888693489590456861645025690760532853764061269797881044816573488739618935261830562865626932453399484176329580721796589555200231264979151377711800733917006811354030743516281195517699331268739075531095075642849543287473994339611598293690496213712660258869348925782754530501108303952095866182859019735315969645292871074239626253429599782490681411637052520578142086865615173868504387214701372224655114232468189472024386250361659518749792561479436793676187699031709252124261507180837785701495848956901691670417820482914903373773947241426997757193191490345180346747942536610947389568657157784386514060930958166380992874260951602015415205361898408402976392528986430299671354079078547957020699705754466019801835703679400425772433653946702144915656842830238616443254495357113653112298075743303862200628914798729774056610066027943243115393006085330933180948725614217943494906609742879980566735848170406607687979539280203109124016625886473899408504532291408219999927776539316254469007171282027686813740464611957983313688615632120902044093925338186276710613293264563878264791579619911805071371072883434837919937061475535145894957061059158831791724928205791148585805195836182498313529306629842449035572951608966571219864800527218480140412752406012341387873468700990335961170023473562943549150295579444104274789753638889406528373378053343207129342480474981908586499532772240415988967006199439122905693159450318863453205335061535695426695321399096772051724950043370468714022479246796934504427233610341076746021369745419705077648262432393545935259359381690924272237734285257601537990788318001698377828025301080242002930995295540833800960559086975154641857671612378928335141624058389299124075777330334334411924136160300759982421749240547235512437790998182053165381615195011772397011388293391556020018076432223484367546201003151903629360405866711904110919981305797940738040622842401029642237421170756951884934288095879361122931057177456294979902398088112915774458654822768630597527558216878865450610353557487313522365952515135109535984621280032690037967247724851049590361725829829412522424299533629962649526653065704067683657885516694018566701929760564236629863324317632228671298998982290214609670956483360547635992914024138870984023271849133868738430602418340068252014978556533664962619025424850208661380199567588754679044269063927525659505672786536607591501425734503071921776886019025596736257098761148994461146095271322160521656553692965327524933698407736531199403959337022217196758468806106526976002993258101082336360456585964620550768276086542983422022347138182835739600055540848509596553443665195940029949664015276352910321323862313714373322098986014940576193801388302943950115801386575201739084195947951006734018206825311519034377826602957476485607985840434078366454648726138547108292025937157374497393854129073329589545549017946552003332221842561042507758986523491890570974812887191416888978957619530421947693093251352173064343786563761867775364337282571154213540289535879476097946005404224630770758190942404963267813348468191822954493647101881918014279336862344413937398659708975659195498192986460812018648307828813594694250805813913577662373167281057113143591391660122755269196213550729197784957324022566880344007460512062361505037645273332929100933808171949532008607251597449185940667118449775341175522100700135630003417695974308896900812749822545200045651619548622890387791767351939030807757756791407629401160656278582497412351175940044876423321685077959468841110351567865574971946143951307860601626787152184732712932784440967853492301453407820063479923503920856563334826906499204069245155054397410074932372516838161594307166863813753747268907661511227125578415558995505110770273430043822682910907047413323635857396501246091466966738344736014248466926312689751684817024792286343953409475128462198202629863689935871559262099761477105787403056265214645383981480745228529653988907174835328818757159239516604136456726698162905411254309006175186656797215624345717271362234965108538291392703403735843644607668162713377982851327717175349575345742704249247494597658621933592356636747178757833474050916148103718616559376034575662637625550642230523657749762056426986868708707972747351738982547567715736761006706973400231065789170648930477038336003342476252066066883540677103194651632605939760564679009990364892296492887500137185725108749671183771521885246167918397836754568596651274105694659897640988497197687722750785311256478842352486960583428994258305193103706554587760728342721459452147673428601815989034153725104444468259484278239413535896396653433003034019431956283303617134122441486777798067817703079439920963056362138969707311307281536449038310633060513001809056785638067199035140690090360332270530087729150019413752520381658762854451935525242005232445501633000222623189679795607249063735699165529931884994946030617640853846402260934910998173062198750118923750166275189485729823223704144252962364872520982027577262439699506322627650498642671937713418953610346578735342217345210386898197607181552091017228451847740240312828983528473701241055014348853803159200725368752914310719667982960461664029391021317302414112406346111641405566718251975885068713516196175136958376507750588398193252092853873112933298312378811958256501084827675955476798061745214731193888510516370854955446686720749667373679107390549061318565759804878421576214001254267028480880289008500500591649003648668684245591018879224436329363899857502441970607713981861949645846248638221400572832925337835213109045424141106488589797596002638151491890459221172446637811203979692968131540823450100953083192713369006333269204634145781767811106161830737541264426709136860719647004693150288502941435894395002149253528405199368291593198433226084945210785062428702919071166791276432406180606319195561738042662528557888253484571092568803371876040955357291282778304101446891324849726708542497644359757484840021887768316058262511208259499810780926225143448916013087814619598285771816453481532296365897743644798100179390314453352153406333665827504553070354545264661870693516470258894332497550718355798185861734477977933638848522679281900739615451409694860862758666783421987374296182183535953234314855068371989279616858685832697345948410390659861566181643512640790895730908486306799690992817105919571895028285234818504347999130561359557120050763059149366990021139288425205298455792277328799546295387624053775070919508864275752733313755493450714168929959422012375166755007491266085048603172861183953951033524575947603385114028119409221041054867819957097622072955231303080474691047499823107887487521747381499494880213605814659979303765837519701860461466381266293029054495577523914106330653770086681163803287571886960140012723454729738913581702157149624168191017643308533634936193123867108795584553144654350148875143760987180035192339796100177798320622823685369116279832567751453989258260671031516988764577127956791591730564473578134545039996241829821277175121927056682883634307200949315970297369452638224350951114651922559870323619008867874582710615710020605465716218939187410409279112843111976231503240746886184350136343251939262471588100624374982475068605842986805942650958264126258742693668970388133120908622580222530585647327043046976512959741133894237661213887696290952909484850815520506432355212360234041212443240486720084270598242494402406981770008722400102399280788524908029628773517772880317049433254192541282431748793199031829018652446584281121534372634278706871681292963128286336145714784824559753394800620088570665407703967621276787338823469243351135552796460142754967706917144305096574471598974069624082927962755311655715923947801411566097736315894558247493201480890395711590968746060362784978828964236704263998364757341809957630156315065185243510838335594030842056157881318008436898996358921890540457134020103867210302920637072496894458684283931874556205965053268044915637223574718084045270505617307184051926802219001058846003887736900087324336551957952832516486350700516054432936820099555158484982805024396012019879753454391139444535068811785429979029061372557667438684037279291109190257059811413842350524916731656986893604510992733362171424368114705589800120832109231853076947301982627906198847212325635831068767088276621546262889558715059026343301252950229008512637118932227740107893496705823846179800378229279717790502277700510515349616200141125595496531954623232821424769391341357757192519055985506298314458992040686754929431091495743621261157768864176822491234669758205642793356003860615479511914553516664911991502138210263573440257084712905714744277690461396211189364236086576935194827607173348813485989480402369746347900464075807426788084286482809777717627201469375335092091418922774002219757645145489706547316810905664292394271581181599417080999294326914043036967780544217557348180476946813689640434754570976124423808878471354935921262806741113211354321103385013282064695649852520567802234675228619281035768480560007654062547453184600579022520522350248236511610094167248200309322688961945987768926816977183624815014766640420134522136700256448115848971762152108501698346565005527995335656083242854664248628571037667569479229363249891003910979641177598145503812951101713890323578395496088623149080531080758424460678290483526001607836784686532116540195564732223482515365007815289830967582466375251547483292328655036953201066686414151477739554383811345599862348497925382822401420366537897852002488276901038376203378121507213895550500272061946819841841471385298038885729988082189395145628032622676471585927338034922235957203602944104008247682642912570224085344078087450893871360528578264026408694135833982592772076869532854907204716432489369588618892196409994870988581439971064711466020697707985783236009979034005716918905057756159091849121758244695318601658069543439587225356635795628324537421443017723254859211401009391079714167477532393182192209145896582752104914610488445135749475383538013113359067577655912667985709867975564004073468452598224589698792549610801814403641839695266541177700900890103580025646589977589451196075024394141575677561249853243397424485945753399765036136613665620402693029643626780472465134740381816161909601745887292085205992169717633115300616221374248741043735709860484930532374750893512554134072371746420799827086698358274788411679948119685851838399267135597049199622732400560253921247131220477300379343435293706271623086800964493965587180811583552863561627536774145004264325725186416579836749642259023266873110589775138538584878570672792063352197008570906876691356350848790052746084625516235634844384892250872927259117359291441781255188279535113192145190947727265136618145944342588327954711972665120152218830580448373041421273925995039422745471433812847867752391424147126953268692991513575157258212647972253484623632201019626526201483590207914367743110571386779024364560722420085581159272052222686706555551398386585824002890889983361401494835977421027316252276808575439847267867315105250897431806924087460071147624979606817816187312234469494652564515651918113918211030447507714385695369810386848301827480771872396046349781614657535197633491537919163828515918122657333235101493490462283045538968021746047747090097003265964151830139148259949363859005671979916782532939185198170718985018011601785279591253977562047953855997641888636721349472553162628593959461297055325995427013150545536637963718615570431669138966601476323471256668381917462914900827525703085859164688477288220319610246151845566542285996916064736140139117800762404589105667923018993797640323566828860869798930119252967688238274785261228027974465397514858230595337394231754510243850440379080701619923310440231983227887185990714811683240588016919405997750603118504583763599270784622611104818072061080683302500221398143318324561558714441582561752823755737473265596488980925323586878235398708359421484944100085904570320606860646435700020065414931619764650428834852243415573941430787985654071786671751572480288154813472104494301281680138185209918982821461822785177347230030850648632445343762123553062304365698403160730986261685844166494294379543000457066364239864110010981370091398234842350018242640282151537581226999425160544071815941436826577971002262736870979055461188797384196205924003524704559323303636283687279725214109716206725866850775758542528637696774581152828735430319169056118925921920112885316320186509418330650482690680640316395028477619444745495408307092008374800177182801635035569169219361150300838081442019387739565203832839503946360991126708088828475273232368802974153166545567007431398422643515107197174882682833826552352475137342561741381382716897728456423452154373974056407138822319116859910718328005309850269205933028254916843091737372730032994086315078360843157586932799734739532526303796935941403372554269408273234469834107391724416939896529205028885344379524990261669157011106406693377996891089443619868749747184864639761160645997660704213736686032218271879965972987789163591963938433700027285023904085559212338664298770226440844151324128211288900268445691063162388548723457983882952809445556620847133139052929168580382594090203938797276301904532420976185899681355457008106032139535684253445472651039273600622324423734904200030329614852549252803743272734256173529723227792142740573830966095147216033530838057349487693527546400707176824569675810516571555759338748738756584917608949714916728067099362531871295313863496672495459512757352345927567155783493541922921091947585161139396521392235405295614178116451560161015186064454425686167231507272983775869352933108331784595161750820816247093026748696453087084723713964157827042430061814606445582510253388668644491183155892889250706963507680190297021353120033352974859210169521450761876366989295425269430421749618125729392134844132162068045143025636559220513016696273795062588680125057142142006867075053675626836751779886625201064915217914720601682082038212858806683949226684161955843194418105055533260547211094272170952471740243759346349062755983645997091150491790104228910658180991464845733935520966470076839447462882358850002456575636510277463669765991605540674526140101036687679245014569283027358205036688214224438071819744265347165151934882811266814272213226162795555160721688361328058886877031733349338951416978074452586983059095292403011029042838052169386639116816353449890306417879345682261651319999991384422252560133205368396259598661925539865476013851955717110907181564996631120783646068591641477822392294693144883004335871814298424823181578269359003837835943493814952913373984536210249173723603179395103179987163337049655991922654227001323186836829838845907301914172476357603708387486264084045778865462996113643495541589689606757198516846699537827657029578750043111362229187951112309274747123443224692181814432301245999065770417954412645195294482784407890173012117660369473571528717584472248712228129158137273462967513839806196321198716686657951428385829559494328595747643787096280353146280620825110972060804986525329353685954158099000171277976805683202126954530073744069621793361586761753781783363151864803528780818128833720316576405219977048967137306568664869308881866376667072610946710745360685740690598594362194413829777807400870954265933771402634489817020768510452430455898060361333210888229664296499947612925582660518385536145896096551645491104351946330422346539397318542918418551945450750246959259306156180390663446378258020718956541551139083444861975424784906651084500376773731762834288273854566045135947127438690592874113653576694712628869873722803080015363473396650022926332177917688840694047615019988335842140285176813220841525325332635543255871225681460997384789744381227383894197803357329348411803589114988759345154114890259683057402784041749676011281256596704801669234358489684201769142268571371758578265221831983143151724593165985820918410382922476431877663898636305909774259505710746331081239809104111858049934067428298329679445924594954141648381667134056666576454326276590761727046677952400595065476048254441658338615831261679018624538130351184246088093367266831455785804174133491660075233475407135458254998716220648928652584173764716328489221628967037436382349601912854707061245794301818739906609231862889990617995415100980116085958066748301329334728786067166875350880363657841055290992779640604604867643691361268298555167100173360133770944724589670512642605811348387352458886160511479721533569156947812355556929301958880600755383333945835105805649490483896078259181630337466522799388068466540413300713781471702274650836522215490659305798516840404588200680089919339180911321082718931675941381134606266381008034025320277528131824034458030306414415816736928477630956660872258433403235469058003869691882329496366750048800064584173232217676571199356696573544835001371656036914159127330859998845594839533439739814585706927312057028533576819952809142606845754652739784716025042238235565991894371099411318075838544010984246851981167255497088999541532563462324209277411650317372211027382251420029776565324855104637730265097403470977795647766165032190643010280813587455699449955058146973447260576067260015014640933407478703056693610651030540444792671373155991072155312566452914938535018538397355125444215258947034881094283367492432171042181862263580759094821314922368487645187396847690882563832535970159915150419312665088077092425539319312702915340792924674542115391853770789467025156931994609259634766060337268320683998796708405444960035802862181031358071693043277627035467887411077862482013146828531928248428300703664043262723629169406966163456116242170926783099388601997602174813910276815638262267979276156743091324627640339207863466543260528244190508437997839062633155711547323202920985748218909471633780010486389514637008081835987150347181621723140031983671278934237835525642253278909008674901322707213478341476997640490480687386034249106504558940724534536057916036608115739708299764193842110879780643602960704070200549737273777126147893976021929470179208215638383877458738087033151606933737394446889512525377643613579784242070472125804536518262585892605768667404792066262540197733904900434402840815140366853436326068022397965978929898657355418789024872990631239731803131739040962315221546861478525382097639812647563419829625050020531407517624503218039262635490935679302172143984274810597451968151279257009622294675040825344282175455215296721405706587938362664459148643964551360886119384891299192927415668851249500959732565783154011148826868817388314830088417760158156115862480261337594659944091044040224729929389408914904728833075363421007703238974885870489043838981695308534217285505681558492693071503094203096887497434644841866836038298547707812353261821412685845044408321344322331415130514278474797232413423272845552763416755907946154246826987732046370540766832740175902304544383423836287839283861801325996791158145751411781112166938631284079895993792433777865694093787185800968962790955232385223844548226013242277110246195432261718901176745651792762443140550173043300853541115788268802140060963145750942629596957322955337289554537640491075190390231835068205701801551040072184567169017552135447275465463393834198485666487499200735215434033610633517505189123201224023501072058058114991634378693381568212369359818158157081423134589394419321217639417067390184496409412311429174372174574642066648123293692887877453862979500110844808513229173490489571211353726369459472148910218338463314721843786599075400355112179693451566308235987012396553403125842929846337035441232746034344944952294832255005218358821369531588921341856809531205681905242125483469945862178913172488067571461630010693734052950738879443414193343000637468238756748467957748398652257941459333181250795332087248930830996106972739420414297002110491444219833579687966086356773508670608168633072496139723007986411092080798037289160847865550552963999607368008601034714039753340934071020556984170715164869704225114523477525312136571991685431681025134450076774952336064202291872859339645624601641263798629472499418208007089744356801526959161044696008675003923270773590399660446192870923135858548118005654249105368835227283711529295498900050715908274087606799578561697160785284651365470845669081521076291422948902499648614510244455604843488664451679447865441253287011509114580512920544292614052711553532619072451371717068406446030238459972237467275189349474601095515177005010224167017024901253627330343662010643322340855927730612721808362845278335569000434536071946132336954748100568437145525685935250657319911593596006116777281139712895968985815854355576460356390862683852970401690750542407335141864356279954960341864651032456508825021541337762898111876815309565591223647197370038905324941718595600610530563129654227380899694489894547812665589476214961317911194231104914459536598732552895379413858686606782497617492891517764233089196136504957230777308632771795926274487699734234376644521227401102216163613972044703479560827949540049274311534871395690079835742397818198846465400668864134380426784189241956055131634703386337351834648917098178213413306853487603781357952758210059484461076546636917391926533101055774339806003078220625366786141817566267053052607808580819366098782395442923719795532131768186144264103934124179543957738517262708670536034343814625857191605238929425024408090326820131877036237287014815606705853522591307464309715324828418667612484006496480643660614213606053529504109824424818951319646337998037844305354353702239329033857818375353050951396428354494100321375162597910655275939727616212269906243501330857606057687586788256793400062647043779094977836506840916738311785495590341974308998228837731314872371634892567655824819837138604214596340583550471301242737310148286290726334181789158640955538740039382023666091288026253828351288033812418227136363861109611698379603875175241903434906690099838771524355011050807855520341487874244817802298122679765169567827758556477436462444280116165711580019362351228616776266349392126620455129578130278110878096596606836437722944116989259331458851403036741663585050541556819450480929368963012344699323611872195834650391579802337736381749570317531841181290486179118993015820889297263390575135190430274451661683866256283668370118054004112039047012984575845684344953170879936668319360058894043868694205875503255911955175183930194295097764609818163425762494267807633474214802623302445419947412192848693357157672756215192876087546212863865922462858895077889334310226081146459330356571534048963249000846439358024118300707552213781263634378221786736679528014282920468241731861013818892665541774631971718104643452456457483148715884646616208171298881468040809251655608123503458197177670729004760968781620550048235877192062952938790630395994075084634008393063774654372618552487658837196466339299504537877863485778065460837446722994636692806690780924845890318198303816049020798535132117630209700858536110417666298350807665294868164940707866141939479756322421806324760685808558923518939480018863937065295587162862101981995008582813027783031836328722921459791380514880682699978146716129421885216587966376672128502719606803270480608637130165484176768408900437418146719621626793267571629311260030571457217648352503075974736169179558053960012825732402310493449876526014297668618251253295094602161070693419126049455745092101830473867061503036793060724445864864701921551117922001206890138923345971208804017222255585286971586605422393984907901492955943007418334565323468449154133460572571201712199567723260732236736236874174373190499180189237239322500208336083622661261803730724288694173474487378964927535847469275019232879516522659970039630559679879445842124112546214779755615538768253479255580034876842707591727209509843940647159308169233262206264417980687850524123000442523896106455825508048939163187720974316447105800907594630662682805788308021076171233927475224523543623226659193745105141145040136836538781645441630331659252542017893067308835564820174314881430293378624771928601614258171864354742784866980857372982749090042484866273147120211976184013123915956643919064491529353045929898160855926213363068724908091467197583618574227090965480818090253544862886479290137699430576398689014539478875215059769259681993232549755393440838240602805070745550697658050918480887790760872684206621057856454270663741682639413468997797802994137744639121368382325544507212032813826114019376022410891102348088099448655111536002523953218277125542316863532104211199476807144584207267438053060888227048187455572818171443407456301910582050455541716246440901219360325919855754275154367212472867499631264071135245372610874498438143125373154334272986465169925702505896336227515539471235006924192487571633349511394415072228908522168050809430396396309257908510084146858129050721181025521155843023579977904691739295900675156766138051261098874173271783117548303750005053672863868305365188269682324410657164587413738078688583212138547609595280725833133571327749429797653117634207818530575942482541266321405171712956298782290019376574421280266775371866139522444691028004069090112564065489057728423311777595626865049779927683548263318990076427773652401644107616544192860605685003688222718847497090867640345790597616839553611022628388156874172771282619213924494458961031354113938306452193335987737534041692402637630491881893443659516902354248997656851006891386340396563160455007773965679500535513960960673407947955136458574062083233366086763606357256854843250535552015618373501396731520875155420498230016538814838811409124418718640978736258825948406038648533569137924100735407726342357877019182925411713245454546664625755476771264335357737043513473916567874512048925387343601014321859962541125823659354765968712619295912389367459502367149093127791318882651376438570316127648995324515473632487644889808531658709547128709901743360958843676725483258251554713741736648670479176896188883392115132877289121136730156775653754533413142835086621309928531387182987977485343996334657821373000500733156863533327378780496074858950950461177801715166570095218006390907575110229473489720738509331268100737282783624562318258096681703468048952534214311390265004123181758119554234006770324383001024824366687865223185402782062415596692474996491696290499865241271335478377381479369931061310084121551570868357083793996437658226505299439022349104484597157284401491434958202272538041034359383766021973172270097206887111747214168412679050284560537829359092538374663337592836922808583101699043326722382323087058298041853300130556775556856317733545375901262664664139779504348639204368281504158671625749668517009877943709882033805340192228924040080806109809197808691595194412003070118628531358397838125433571507732796476705148394263558643164796187851869677346976938980055291695999594006447016539036853600014621141400998188031659028814267025209748317411630282231084011901761566659795522939155765517079930276789611868854366847509747393479368108688510717009447510245365467955158314956793979692106920887283557666290369065537478975340264062802160716464712299630622972632323550897957644542561556607955631008364228545984756279114552783758802376015256176120187741965513170639229429599339084112839384068703098030192274265203454143636095955638013162657607347360004872766749842855553790129915483981205080840201190155404579081849069141592431079163746326897794363347984235858349951644107304104017782885991237459428141592985644536416050227114199429504361868792436704805723003199326733904237724201030214522872515493874567186583585499084509907946604927359377534103860609871779429344274466342024044203049086856813374832506059388021303888659225263344502051110496717463197030025995439698806851722910666359829295538298278391704798602672748451819200830870131890630338683211873402024019450187401522870929574475145194082835014732122958405031556170119004948197289860909781536019721137014524008697169781232254242527377286330651424267509122091259289102546712497532207786536474606643353533854423824917858955164687031905105436527012061000664527790533339092587885526700453084707341691462941314927701879228174410974512294688542326626884774131307109176259635792589285503504201548975866268593446593315553947985745330307981354865781900585222778115339579741882126796979157661109034416130359940656530478872272812278051586465171155736547660164816358778411549917814246959360269134386745124122895580184370907254480273300565556087907559251965411174880946569547796641848345736994054117235500096471026883744456925884184869602788510271536396566774381524982770276873198153175770863224893351190765927860198503237387824542717105174578815296475577463635363626894916934829370802940655335116392308037161419081512303227792131771969940132433006204306424583155565504526572099020033078064179554986898620437153485347167302300564085576430201672650729932978125565396813534475702222999437961629476700118835538612624944730453860620872462614475526434886787727734397821593156864458164315275082822631075524103443785570137824379989613349096033839794839451471722177447737898201951255461757746976219158738221758347262285853136118764317346234700185074915922675249287905071657332344077621939489519867724525479132087722220194087983905266271044540561087552370106896707451640772931689236312834840255579953793676674684993540582735543718617212997574781267210737283320685948989578551838907848269394667190514283889423058842890640405491611279132140221687230236160302312499075080757576065565253142908649469720741642553420051217582407153397641079911095334494972636618346076311193196950484891773464352369417747641457140581767866000524310852097330162915451164090918376623408624640874625236702511734910840121977768899035010156805808546771100756845576541790500270382192287851213432467255737195820557236784184854404044237126128905215504736827608760421389637425376853168137065880777708545258842283109833486799311312976673255950167205417943629018430279705248507327952287590357695050578317666525055407210313820886483797141936555849583488044637957990139257936267128434320395880165170123819984930771562894362475693699646545447059399186684531243374156518422877926307895809078359500788996436298782806090639434495295323163816872245509812166347548993029806429670346122813670233772636819322206630790199831648444575187034042196127174955805308047770840653538349800252579311945676014053710140799691452300525349598933168038700587654482671996443684660656467316516804522557569047434707296383630672958888293972542857498083703163208768928152956377018751517515783544209673845498921197701533819926888685953787360981118081866175611895773462334957015919846806099550261317098760678002435334559027917510998144734278515124673847398736360146935696838110419782981904276596241109543311263665131378902143590309928326188490489250144403348461027466303753918467210162425439424533815559317442067549977721951517251842698234661137564553935665209128942441545983078714563935233283423293822573849437466434695434890120015641921873911329763674450554267053090770516518164737446244890548650408260368748528307108023691450913268376041585860633951807774987022181221757453883310459851289208520327246640871403069208410852888201867293414873879800799402521170684356577460766355031004260769762513994816658187172243365825777377577013639805689041841140449256170715420920146175885940261619673242369406219761790938011026486761194016846331015601120296717056197041843566801395424633983848912839905332966189798894238408127577797757390078064864354160501400902254310949242096776443199032125898343181156093903321930797878397732766250861034487622131835935115587428215251754260412149818217720373234342941955775707712305671265896953319627576513547419917278096537534422928306312934045923732518366904958010495035139113096887097031215128808524228494209264255298473258487996612563783025457877668217912747439615928197444607705146629045539599660107437905040238719406143193401931349738064692980815009249663210524381564987807933125519440821593226276026328453963224945748343674685957230914924088278439422247190246252315200479502227862804075633244339271878916482172451039992444370442906361589894331687045188292974125404938767214450447159127050907206973731396780976036421564744423332841433756210762352038335903910684384925606065228047079707288264055673394315511862844403716989152919433417789608647617062659514124499731789750517880062935743574374269077273142796116897143451247321070602930236618546530422188947789623700647169276735698666238156374807130121359884182008020558344709865430298885039900515060475471755612196629935066206105399704127360310560452900696153053206252514695061123509583482052043615108973533382025980297607189027460944700492515827925741263562460051101601973898500345253117506924998777421657832274492072468463285156312212710351427578962505892567747819321802833876089269721528897301026172694724883591928682581463488563951546396670733947774341565138735932265452727855720051569632872942031280359695668347322920489457524547754583256036996254341203144008442172341093277207764564482634467309345983123422002337739661624192579185998598368255310022514394266408765635188134568805132245301462440033471529262231162939342865697880548430314693376738056633597711296745534857972417952302264101690846608430226672864795541512038981615404588322316998149207716651827696536740152129216767666043039281367910328696092818487727482776730147376658609062257637484722794064803596773650800536418074818840512317767239509205591382480495998697675482602945696410204087538250286646193262628660344018200859631462056428625445400390100355645755599470690573648084968569763359525576104378490813888043683839567199670574739107163549535004133679305620874538408455510457025143200130888234013927949054046266347370918811058257285239876194136345853125532360248063101251099802286418171189151190963175565011114173848797516967451055669995944909586848372397804562617561236719396248915011495950520423745263233677676237691493789684252834895039190642995890867027506091249747852235957198764469550798395509200330520049839948466021084936477298343255131867510474042781143718361252472285008830782603740122403123569033237458641038236702971086886522205363651410211751044537866150625378033808506110397473051005458749491281586460728120174020096193898503268737710032365174494398585903940071285242698668109390634257192136805835782863264819424211366072277035439253779100345031172851603499785815309045953430019942232498819737358675693522703109326490103368911255586730945643603423184358832753651807608638526176658730362730063373169473096379243861698855160158845826493322854509455386499615930528465423999774860786011833458070038887088908585061799127480584378761603026891803583969741706263499148891307469599366558758622148893173753438974131263840860095623778006390569479549220763097379877756218596668763186445678878862415980072467046760995508228610856021344262079780333896802661220919658074194720648244729418309133340835632613143417011368184051086079980634126335338823039458848487093500940768362406434576962419684020200422585579723055357356674900955395433507512127188303825545552677642096947742561196270652696935192156432414378082122139842539189551536782512224415960496900369312115590818188025480024610187771703040149771239735014656345396875542417751364401926067767356056786763057741895458839223087825360378025511642840951774059857257814918149443394650030035375084073419965837368620490806822746874941881697044578100874135774981472531656021745850471704076076153404683411531610764871280530043354021423965077575054644225635988152485521693673377560735450074897923240602544230861851922474792480821020242606980641244931784768820746871148765264959941591815143538010716412765501091041295143379361666732400450105432024731508425272915105946758640707640751384367823745714994043035941293101025961616335239590602386545385096556958625534617830350213810056181505761379415239142814277932205162900178524614773303472327854583501356464302150962410909457086932718446272188437219554691598622859499322645596265835255411482368055184199038912306305790761095699870012195826298251151813274863725312716304686069684206157355262477208631811170754549227103708699344882446499755163655138987326900733277841139404765085682053367302391560884684872533507670863503808394187329082999176469306093170087700799278480334338976404894573362551631886891979483699629890375663469114597752974784374462343915505034100388756553285393612331717795919891733542879714278579193526070773796856739960617930084807360624138005135989854765700231513172795028031299122647508431516440273391791767517828550799867428675185615870116066424840243426221632129380479844356653241794752327231431012257055178037444434262478593571369572967196814819582647299664962742630918358608935056558890145203831159976147005309069410035054067251183496168517781348963198094281269513059164685658064156738829535236355824437555501729290734841711785016212843249476905910813094399770269879806933122983597750038798637134655255522104397349941241149715340068471801652041681043819770279329902021644843028600966393361360924879674915358472613455590481713194012975877495750656409110505581031685152681209301554454562692710770391693370158802745195219356239171315808282409444886477432846088721047003572392114252519238097549802979907892920064070404478865905004077873991290714291443258107213739873203807908326515145490952270965990235576060020655807045766202252750679137853048642335297796627093929184686636781619109184403911611331340598089767306378478683804469916178718794775228270593224303137889389005979866333714891278252557408306294749277117237461072771325348696461553978621161528949998936179467107743341708186999340371981067722411774571912925697401176689695569173734686896691310364502505832078309406469911069112665935485974545317685225344774193602104834069088079868847379426868395121168554645255918163385744190480399411060526679642057488512084993801685276263854438344463799379798428059991125301176273517729257395615748017161203215689409592936900830086757812231978055928889141364478017928017974204102036980331931176514420134516176881140700695700950185716223512196695762008685961054646526167343961673857034492913699543792390542338611854304872546369393575619073164869564168644068991749000114470539226561943347947531031314105959812417986298109733449340951765630901228471496693257070770724777751956421400481121168363452903530569924884242114083679524340451280994918562919663292350413530603322544507564503708236741870343056597947224036523927748493615993582318978709657474033955642023800845757207728900177625267954033076490804156626830462440324612036161443022610271259959214054244866756161436048192954464730483009334658695117087637816480891299440070208077224406162274050126305753530853736713306807065921756023862355045121801816279459306399282288576363976483658520974190888175058759091102345398575974373070659458552163655899290455820958120312467058534169133794489334539419255665211502219933827619100843957318870086011538246323947445685847758555499371888805558968858469252219939753138879644635192921095059408137070675087426257395876534740655143225766483665045889970693484757438242054763013598317794143956852520300991194373646491249307220775161320978414846224024733552129792223450979638537434334676258371492009835958325337723508054175913226548063032196018720623209705722931030109514073962343993688384046552813552804080917441795906988571536141805411362903128204150038154647741921694037873981230392773151494736371237110271037649342867832378960114518464872141489368271903429520299545772534905159276538034354187602938215808183924682222461733567546738973261092437332159880422686181449216259117125214067856654201535456696638598000152301531105333970288221593380791390498326526299675202524263674537196269336640603751011671475617365730585428792118630926591549453672082971009215862623866576571419381681371102240638320262149464016037923896665537197975721724638955949797546669725307347774717388392083268880161949964869369812369433174403565370958251592750158497682495313456144265819455765870426087697081240433403686354906913739618351933248879658301417155567939115369908984792471912547575867757720992224995144573043622550808625767799138000986908341503982373626293519831143455765322846814974387928134455202519797783651258478334350747231515315541531827652568388435710858616849493482305151805213262659194829688511086626841210769135365746371441821633936008627710577439392819210157403937613811032423921042640185726843160697601816927874469337121538302442106180848710072506969760209169435961551612933577756815612164594220182240954560038646831721993242733803008353970219423316663879969542666594875846543149735206156646394066596263661592167107445437947915028096858680017949409282973404604669836859337220186137223128966491963183555664716676879557048778143863243623796830677610089885842302698534784891602359403625978025974496676021706735166079372852707900064016528830778611691772995477957103625623834611131551660832297467418580058689808431337937874291547194919419634571071984363836695837806156469805047990204377513097368844049441200989358133073645801948514135197616535424820272118296467012576363501276700004180158206737705414613178646993166122192110007908223644914132494990197123311000191693758387447779928085091643906719123237249805558497613501498776876016505079807368584209878145765570094965647163510991417348095138928270506500339042656811245841916539470882307666348555607673756781156649983017817161903853567478073806257729067220247486669883246568224123398318594642954768765762819032825281229500131193910732265988073527900890650069117944315436581880409429623008562764391988574316569210628032211496834128334013983577479411100153879605367770978330072678860608842949144041485637237367214615011634881759508600596391127749988521359392520604445157416593403910604593589474934988806745492321118821582948882065239222156128123428507856257771226528088307327154401693178873010324453454629144763216739232420227555052520327397920309767576244249260015815296065492759580937687953599486231038760226873900946585096918118305023503536970060752617509677395856042416880184359509686275291919593221195114309410433322370848387515832717789841786998536321582461851690937574173553136811084241368489272759602398165502800340742393489724331942744337827792268514726941669802481380783984431623845825754468887728640412781510779942126984906651051034580237313229198478188304468282200368342360034359378744782229864629802731353778144488427848274253260314043420906070232659243727034522983243922633640076270037936124142063403081672669145935291017876605027071006200543417712334945955831914035721021879614717252674220508068001044738906492825284793374276672408294945363129530547612478788263720331897850549511227712379984216530973423489461187471272330005553854773234860269318010025326173451947670507531443948442313216364047704066130683704553463920112886498059819094787400251544032214466051286223874183019682920226238877860769884090152312174703726752523660952378136934374576481304266516751929196866661811130588552195659695834923990070275155843611869068468802538511642000120910271610871789837490550459420422878034707712373092492625058252624436011284807957986764405636183575293496013936282768629538007597569467034031635079351291115687515772109551555881160223625123427659506668742097278353495032431531928802321700186563038258982077960829197422605549186516453147042361061860420272386487649557505523497368728352646289732316846911393292270164279904856934974760316639618595900742273211968189771066353875877605962145617660987700487591955582101108571538659099208194849328764273531428553712099869908424591563631864857438820518036443007946690737643981244615089181305710026847508003927389000598499154611012204947287093441575270599391409624385282560953025521256375801694402692570347682285637657813776768962229255518769794198488546793840091690347762535687174991384795934463337451924488068369478992242021141091937105745874366768531166336383526204805558733549870924796563346399020038127042587392569050406113390885242576332232414005377981032527046576264622073868299577423047155424312517961266321269457345857956404303448535147375359836650355682837654688563853747457522816467740269995092769456360156381876248052662629737973934059561395436080415714831588697956193533600507266072667408604041835489252040861412838650593821450956207809200903295360223273981818185697886304455292629855791088971009422725362879240034766782335679346129930539483864279704774696622451453893007452480791851547463702422501588601994082786030083752120097100571377778448854468124352622311783923443345229956741583101946449973472398276254645019422052761349245447212871786366642245675461414274792232859136634063493297227658330747725627076816444841442993154181791889676186163735375198718684314164114641710423844020466424486790949010557766141400724058559993678114257802775512362859066676901395011432732904790809103246709956028902096173571677777567388439737603958161951268935251093793514662019226489399134570278734090075465521447764149060333952121816857578339477243670647008180078823156674432549133720175133765107631346595474307784920340029522200892789563021858820972783471136879282748815853636443771001152878456781213413711718173961711854092237459753819012234943069105870766687218078789387064024343945166678686364946506725108794350451942078003610966542996777487362689991955622757470169699719431872671490943151986221031069013693553779824757997555195633983045956765184088242501913521352434952903913658169113345732992362145136056089450573237293136697443372090694429690398435576276942918735888652088475760803054183906157115747260958862901669811180167447520251385316591812649444458245335841087317203360158411661270921724084508028320051958676176070745757217806093042636729064443817483393088231187823933288280943534642163154523154159537016459070809689920761140842583301288242388679587569517333618688732220259741116930619822842223380651791702560835130150689919989757885541235968545104389507401462361255029572489950509740821751855618005976344854699786481401844163833480966550492951745479513788131765566632828973532333853199208876100543269307319096728151291474733172263465106682037660084724548364281701802209562680817157549666292338342315185788435264868497941862458425399117345638575053153476911540194402087998208040502849673577979468969035981071151710490566853804759704546512908143766633621283877680078083197884622197425229323722409369357882117476900779832599668390478068556234009338945668637641013961953018086998248959139736068502037875766974296142800098136179800205751443375763482998669399644953648062830931572382812824460012483512588155136611512091485482759293561647900333729325421766264380450663298655583265388549109185854021845640436543078528462944405140557030429962046034132654161823240828326614450683942069933825643170856621690185292832775597343614924900791020608994804766913618424133182982631202639000276057889468715729167100232719833163768637289500591507783958931279506923182719187800620072041541997574578623787710778746971551589939462637791032209912256308775190829926541183270601191127159208302717274753203702454468605867125924054782650910922320620450638044169419600952967599080956785652063671002175465527229274397640532517423072858582269085414364814030746492456000928529792447756847175589764802149592674411710745482000792104745566271506821211459771189466022660918673818951603503220372633654192765817459533613376734637827696729116074464517656436014030520204328940780475057944747228345311919178754677892585220664186327108317893200947768860562849626906680552200791511444039992566640603143398662126882571680285278079149473444728484870778650968302977890001158620351057386712310665517960697819603103398642803420381964816786721822145025918640419906727391538472531462290055450283233643902229894422875734750272811739639998717344603740830872980047107215871332595127059204527813122474707020214799054193413411813733048910842533975779169648009247607944116295416689909763510105885397417042617710280809973339013139151369889439040368823051561182327429084121852521440393274877473388298784934865887217186926624408928370968406080843147588001807886617890546618730142824983022412460000898541663306247536035574551676479678614987749146234319020722268118046722549918076112066815207777057814656856251458001089199983766816184906631390499824558152844604936147027268188887063829655917255615746519979421353682492700141688131646723551901939031635254827723862070164466667950456708563074300442864357674953112987772851993109592032225841914478464737434234282324577034816521199866212330081083047915013810888012087897678268835754764765977158785110178837380824922297052797140963974662670732330127371163610758971817536970183719207075857820872347657812882977082025790951128302528326220729659643004759636249689091945177247871022711555492137364414794740084558048835907194970505477734086069126144803209515001150661504514625550014094737615641046875108568726108138856269825332813959869899471467733631850693089358869747194587335198462738792847721870366580867817248206895438005722652247570994077277334488878254434452703418814094629873223775318456073558004068201250305792266729558915040528683872165894825632391981860029092544747580880072890128739171830178383105953739274208471281843696482799489060931235227831042763275499530076436135657969177729282490828333361528283896601719400702603488504355548777346083084718873646944058709550506823884913904664103638892686439815443357867399510475087306942557935833497786637390799460138962289886159311639819032945120194487115287477517998026619230171155182611104463090843341451046204589565340637022531731012309049503887447650148376307997168568236224462344591722506351566545939965919263567801736434366577890132260287561821588799986155202938355611124267490706373309741131145323166267937916233159656574776451304616467596863614691883130034772000500140433672195913809210719105602613240141212765375093105472082163853333861975677860823802836260726014784320026518895846361426906830676235484934202028941942085569034405880316931752804786634488022457249072866724041071219551604260954686386320492683920743227104916477916971777785365917491523345835595527413856135541360539586863997546878318153947620440936116172611158200317787042858873761498017900453149992192803517679746716234735912766600498581984269497888731107230034805810844991072165389749704331473718562343709918074189210029648758473866608846896696622419256024210678162169274640183717152852352135318031694109359585443648190471903348420218035944810665823246654704217024051678016298448418296335662546442804735046413155152623445883802905473094885426415951131650503777382242435575049357624123096378676052221931780475483248103041167757911905002669397214028968307525056981377404927671345775793681186419681933025308804964945759966539599168558365747255740692678115352648203457963110660842698117128058106325804458146807258606843386978709457894625566506465415686737290868378966757982477256008307933669279086340240594541058298156864454356657863678247373614994763963097850903857160114296483735132308575694108134558743910869724156567979418480169022721478971694136157800213630751212604920021259715750728912734669126948007506457799139745791476351966164762773900818574971425478060818708692233346668704682401954013695346332347923219162079446638870017935478952392004434144998715600517693345601339974438921806330246210567523889489330449613540900922189971860657228256969316675705992432169388723968492660669319126974635073545721566862365205897307302509903585203002012975177336412445735076236009663954750302440436518109770028414534073012919940238487925811473330003079402921899660672306437980014403342834541093281422186998896133911874569632382991797995208978588283722745434621069297304990816470666089403410456858645602664594299928391868195281473930949362621820112014402741968153829083050338470898769266065460617905440732700589384549230289286793050551864120462912103188805235587242661009117015562160181835679226451875798046105944759032883120720613659047948134963480503500005483440009873505679369696794942793086283001022783782843004336177036256352773815524443555604321850054948870822758225441638864583655396962671349085627913018407541171889623563743329339286518021262986358117467447349586767423412129693609618717133592898774869020382427209918155534279014659279985560967342165636075338832402376279557892943059076031119117227142208654673952201203711601641312314301707082218656019750197067875109864182023040034012222423728906031743893196011689939708869661733803388210959462573114277000646458590918182597931481019359790957808183039047568701917661756525870315121587729631968110853019915645170268931411498777662555280150501928342365929764472956011592344926105197785491171870611216537179349955955659978314368540263731394649620083724822026519497095911713718938023662860530970363541614332532067376292400342910204509443769380148594998109057247386251671152170974597147266808293368269322914611246683950827098541230706041098749221768027913358579657430600900259741224292693245161016992568479867593253685129826813648790422822285529404883479769244988002533336437986305989915369633759080109756859609683275427556570283918847461901190804020017026098901313381724774371322252028753144523489101299444019886582904882220387794097987511430417087107844931668983276340478849915482113755920128362650852593695468893710390096915079398640441254631107568845171392318816931538068911267055561705498796947195003628294001770206138758478098135682340157958761689598271870942820509341921704425966527344582724751539320656559321153140652661679936642270534560248536792919584255338392030694142813814255178617696982301904645769803694885756752235976309269034646125803250255022109174006349135744408806071461029070822040707770125380024071421620442262695814699291032405383969821936118126012771235397045871246515243922945666113715520746270356964072574863445854444680870315858141573230198183105456828659642310562642287651681545775006985205835901627723412697655806846149743280270411629767313403639251411457348269193927768089355708786462559588916537211724959604331890507678828444597295501436562316101320244224538487436163585693333640164746181543268829645306255849698202940550071467600460132941769573019032473932627784215646230681842063398157399129353441742014623545568681357567597697399005060538860921470211003929940428201752271200328247126309168707250102102540644359373543181409068944292726979300150281267928943679714605098776057611372631034952544847718745677381714589079822057124203210953983254058341333839079398937948979932880966516777719753550156806846951568420035857463391525562198484090749676069330362773533633519675151858931051986905023380291990660902422900331849802734714846562876153177110256335265298941869928446571169416790739767102169184356355526038996872707415298796884183894247095727266805747732494539725959978155495499574011335638249833642909478978625525522947653425923584382857398096769016145361252341149224267136923806895608299943277147945393025893014307920153332283918076454050033732748831104902752310862716417029860903657062393865294280371231959098669232191603742537878753936247717433662659657137843203920331213229469194928523740219224249692047432044735465233646542468914578621142225869413388382043365362792517419768890563748565665244103570440937323919853164596381564190816526985733405214170965276134684213045561363578424150066453703513700708564844444311496204352558982356244081170922447982886706998311347008139363996753204306391180892751387887084274196718819799902771370755992970871326427601253639945285711340448732436228397269671301737465532146268295152994563969680814181965416525986163085838490657656056538566522059991597502036853462312881172469786044505569227064729614285877213835554261814681846133232630505233556602269871358263351095877316824927327839457578856671188807276773091051930503837226975628372833290416485500690481955533654565771203427887520745425187180692091410468867450235843788072688858584836110985854525063885760389168657506120225594867943396416322717287967973393246749517048880504208892679190620549876924744262817810690483198293396628739742878573937142828624802953868377897607565610176999371103254877685706943436668874077106635923641467094412318914606862020308911519587330024675211899273043718443488292654177821873714122799635423060049668973819441100825423839061766527219902925478396664698864962360214581449718705770761108836714886629334734174539963980019216692744781477999425058704021514353626365758677353103897622462609652957106950702077942810364833704235042753909138932065241688262788157141473233587937911367197779674894269978558073848787057724647223726548249607494767609956662165507353899131771282318619382725617857636701968560443720272863355213181643717494515340075874974357972211142701421522108892564081166240191914570967398058683218374513301539114754095016564083859320388842545769738607031680973676655031371536084778991372882720367439083601665177737516972352590264636960834925204774658185619522510611414889728565257049719093690818401774683008999639489945971699901656424376258687222710670446530057161860103172334342923013035949374581555941164818053629507640877016947088065698036866080840192422936573073197839631629381841946383169130974412256617032918083156706605683571362614734873995303535727548684357279526563212031412406546814808696964838809117449847893280312306438962195950246344246880304100012928030352090031364219746041909450915611250115447058513903679162540331206211543037841002617939653023963224184115621081749405126643656032070838714691000208344106749822060299325539018195666584402710701631492516246693400490636208751089358724238005562601708485120364765803793941678983601865115536984523041588961659147989385320556421475325855636751270485620043991155103310298283020941350100431807025708472219297391319675416657532292200312075663303078809539658641114415840659563617938016506689709937815144524649594206472749694791253751978129072932626415471011813852787082483065265288841240426396996436984851267202461241055166694189010001537971573120186288231876271912926758907278520148782383133961735390917583709223835421324993940075185472716486907971878254808073309963262374547831371350614117359291435110295279041156500309199820012640152497259258184586582090999288991942102533368506622276315498502519109353945297921005251580515551657674055255572314079820409054615181578704406669889673231139779135099411369550445877343231917360855256602416028100300551936750625328854154579307050278314314582830085285724139083529575392028207801985280917325051122400565239691680642981993270823592498935214601730786937724044506588809956944566275686772572197324267757859566573583648800060733763023967624349288906510174997648836805995418234400294627490633486095643485060105895119176580685475266237731251163281987137284514283861795081978691240884664580307733554399950003064991903563359179103777086716886768190316776307311114630843935449945126094374260458224364724243717023199287326998153121733892605753040758652863250062653509074588185522739326588827361003055356479944091048769343789603019576142416295661992120786253003896460261539520755619985856052586888056240114643057639861342216395305993289185486320146124161880640761775303632731658353449375306927358216833268275966719497469721354628274843356053857209569309714628694218049264592363206378567694178860681344302272053316811575440057821044753085005595759059249794783986209457065218483921962498121798461196721614955471801780442916348838096000065439473862273781176926535872083199835934967348200799878043664442107971537126190727827311075269507228033666436496006733543215430595912727247923940580927587991711693071190794950117730810259714245702389314096493402535452875737331335868839634768417500830918665910766467245167514094007379973967151629158276861400237939640638383097704408243562401151836016368612900786025825162398103282403299958294844628922707905810384851655008193371719235227746980242539801264462839407251258713342770859287414878405767165596580120377695713583430385686886758663574105331782727199973876638367962813667411056838405353159736003737949021057226343482842585071171637358754146914674378107330902292514445592113076701601692261952410183702255807118420898439235038731278631310615201921102611930519249939101330015271695020438905159431009655965097893962396354012099147861502757286238004173415639405811261137797577728094931257303013457746080179215076926206629594114826290795098902418783590933061643878827128477319170548475648723162626192172490801273307803341541332229469009062894628289655575056492333143858938121491372171329356214852643575709001455644478657314267989423295618160892529010719691659976314932600303954694828006277773359306179955298058962196069102450002666947666761627184646059258861056701534503050446044463235165166946054246678127410031784602835912614948795269485064766120767229879990734700510913730221312800737457266349726327993690246297544961869537723467366634075508449828421391072583354757721961947008582604342504116483839929951365728493542151989781811480661279176993320386565298335387082073457805916625886600194484587551343060389286722037641369270954159344907602342036729856700228143500182310277325992280197164854648799324621629368659055410256959446643936969969938845343261623265415105354367072226047983776161416876671893478502674855978675489526464933836788254623509531697414952555403231911623069918275874579833605875097322677153117431987845507767328419925602863859017052654552322555858515992063255409982622767345615358300375782077224176541511901576532550059153066369284698044683230847213944631883297028968507183872144821764965207705422265449928789153052535203459532627322550216693780070078713583649435077199734903185433463296608517777527766264850930122102781754895920587309418059502620137318623778968051132863865089210045712988345242209346365829758316883261081138626073902329768593315016169015792255306664125727507360402571039680166111958433882075484358839265958758628857081539481728207777776288235685481265785545762012354970416882995911634454265884395910244029273298437639987260226813960638857946066681103704813483805192942521883418984313618162586060066981547686083720736255548243866491639780933487081887814561289831362545807740553532877780460950608205676702268148294580778864773638921566955605915139040997376877396447636317771455190440956500927350998798206808684628590137024553210563672452948181911023651140673855687390210355306196137465181657535714012065616844309532003599434919556588431982217709481638932135800724309095652420751131608628801104769661926007375182423336617633169568446100065763298550256712244670204389013125882251876291052467887052194133538740417240877577341065756487433394641278858980732661352234475186089004778869296439873901403738451071266262654968048420536935201463862443273984476064825860241015760930676787479703224217808648193744424023637067464631011370173732231317530967131897222868250735477136309916110099175267183066240854352615900321676776337703737973596684811651584122057856491699493439418271747706326748760459191611329076709872802909427383317548974679533259816855535168023571266693963824898356577220803827896759707339448382618162815876511085764248856352459438914172013731689621502380762279519234965468425619980394463691744598783005446850640886663194344783220837278534982306694243298379153444425898514956478279613665540723115830374155953710025062003171514782885351837297578987897625815303388392954299762635953738831587792080807479470306333093874414289471866730404568014275963228603682576284533479704949590827689346135094596909797379974795087918465283429248204376830207509479855309603403643534559373723057179545214699646057408301338946925361372951073866456404309374328773618999754227825113473277825495057908377971514313624403941842299478886520011521083568626165099631464051831692977928349510352720469922827305410121396262371680349610187624343687679861891325854348997088175257079965055533847066561163133419574709915506311546211683428235093452524012703717125475369164362965919661201032980880941859937921129537072117744297648103085088882865079653821574194063892161227755034359353064355505535873832511499649428612992223055491224985424157777528446474529039541159485051281302317648449139066502633690715208364782111296315663192869471871191709216570853620567973789624546269782522978857224515554783470402738092805134240286847006103916414716388331315019377927945743781269783003184299546809247615519845340354404103291767563736644192023505384384336764643693216220081965938078037991074499912499250243414963055486225657634017357413636578195051431743182827268647811206817190481758621522481413520776370763127114989164028125650533727739845548099632146222900116061717449530413369239965809333046391806601245744677863803658548158289682959360395011062395007487545097917734550039234653945350037226066894117287211637147705153887792832534982530537695599419054915175148085443696533295669473595490801516245101205376855128450535710119091954774464156061141601413407543488535967424326586688353980131990844552995192401151063055898413718696658677674107838951767301817742326925146426955218930885054638538765632993879930727009608501191649090846775476548945478941026235984110851698468005460139016006764571123078200801128561344012214057483682101901755677308872658159340259420399510118834685096045503234434846625939634691452845829117528974553757266296587712232381588412025401378031581087802933867854032445694964550033507839957400389362164467377310258929250105826763291228227365705229159448093707192122952003285409410993055894890398799520520848984089299914249701356024261727340886025469504496369797201521928924560459992865375126040618615885706501030949401881522597464882720860641357707760097344047208415433176138177675269487586754223181311608710307214286527331389550981302693920900743060218720116010445782764785385529688503359491730616032988045159277920407691793151891241084725407076484244628891290617954468975650319343258066715783937150169278973645590764320155396635517011884296562210435435596540254528936969866566848299798256455236352054197244461548269528766119250831056098077737233595148251305828158856572474237574425805350762341581562969030143016159214377207611476437391890961854590768888091368398673848991455037423418535032230111188261328949994548694833835687803136266982898589249891851115563469578366242500256678509430880353790886755028429933842622056599941600166712789594484015478336760183953874121103797871258376819633160882735998068724772028527639801165786377472829969330870763420468627814421696646942617091933005308672907271642157636208747408674692822698602919363379586652894236888068676280768198097071315107082210855572279031471133081236877201023077568552295154050264606741544889760934711408907150741875319026660076033803227994123580390997140136241627343864187136276713985627955521288154231131727236193673877806914780944316156967637017182608637661108242716065156749294430875820445158230357328909791938914106086135927277505406022076997439570945018904762397177253957768057208209118550820365147684364959261240776773306503994621870787527212867985406475851298802270244044650970241780435717904758228326634822124553774513179212892848088656375567239070823956951773764915910135291284923106332460412670547433414235884068848033575468785467485198067064918184426377904344818629912034941799237658715033536740316352928166792266033389402143989179767383139708446730676561163359213645142302519791083322960351389906519295630990399285908335671162905955845927514768707839450582286051769114113738917072181532801530090303524941156622070033763122066259207263572232915468994175064614251208536923420818182313951572164928162341025746392839012409612796535897123241804288985417578826069733180334440713314154007278942478925982308944143330762350110979336974927997459602833402107986024690076547789653995448617116754457895012699679336142602305835671667003480488247892876053362122466246774183699486570037641213099712586836916894045542243936480887798776113126596668630455585461041562643961509174543228546342452022487663000287275621744028382564491611614262903541796852397970865586918914415497184238890132727264667121565768417576864777176933880645348405122151963781792435335105473716472519130594525499123079595953789615547951343104303280841716836100062565352291709437911888111992661937519304452964281999707901312713774267459523381983943260630658976751552298768653995012120411545640659233597841288244021825816820284879849555361382321115122958369828832739940329111005849893543115061086139807199742325329744017758413370784946768788247400249083466869715865131266952336106389558350049863725296538517483109281977348509110392872710421321141318174613137590645543863471714714564276538712947722925708751671674470507469471169169945780322663517547438907019707916146237696152494311131894998387213134640572273551454653515930722373561900257686750372259784288798621643357358706734326709700410677007624941808109344442141065257007857334051593415036852895989169935311996511999323100238127810787428420714408246676702722423505273252451534128866256403208400430261764101246652657704928694500801698465162210801570472290860932101723873995242554454291886614518218457043357025800798193565936389207768022986672485964236273245909701762712744163640593016794359030101010590201938223233724359210230162216449420416007842597355698032407528109590836992374926081622118340629500929233363409949242412649397330494672222149861961747645705893819543000146539399277735415502547675872991652876613734671628889927977048400691235651702123559188744573306417891251184319685883283922070264014871767684716984364058497195518768427904152383365080111077134824212171349284090585594129682469593819728524998534864749284368440168770748182785981820401897395737858945010352207616245228101562741608786163847325968325151422525084886179986311795088286130079967721203006193867824204373771647387165700665744077911921743909914389566137340206746616171997623699679528518106809254581292718678836936111371043060234513186478358365402143718110624971109869397552967886049008875067546175587260135212612107557025654562491290886303648246974157076943914493132446262861655072774547843472433252158862299770900290543334413873589269986885356005902178035522558381718316436805446487963003386659169393123607519666027999448969117173939139062637512708058083588433913888075666663757231523952746995159035040925249613993566309269000187080206881376493254185153745083660204632286786544973743453951453851722981390566626085808377379553781442066385722203769643788414464869737064893686590699161765909962252457562878619779264012548358999506920092836811699181088313318926631773438125274836870135265520822582586306056526566267314127671372644930466961257527651681627388292394723632201026144518336676750271872189596550181334081491861408294466126849995789660211047261350604912384959755532119026380414065067301060824111174445570403636590612129931586563262065542812208293391226836941085524252902989436096499362754026752842547620446417379048463470640884467281016553013645657031604694072932122489098095020964915428960727866555905862575071576605924676036653723799342336130070487134701634074225597612993062260876481246454502947612801133251688786179320923777873924346916201596438141356149652320946965652683330246758961062298782726961118836117435338520750960522774992448290333360074230023315404167749857182266414850086535904805481523584289531318755764562925941686325424354741898551656004246098727180895887972004726529039397762679256677866955443634585970083008703485255206883384135977287363183649089657570751183208615996511215538066272259348204752587059408966732220913969913572726222865676668093272429199248354736046021659255176657268527385836397221632601193497688923697531453237824455225365829324585643543062795478630137807836502937881094695681688355682652533926330316121067849028394293238688693157649777036340768844030794201071517601052026975877781760154886048877190806786499182914516986431772530545463561858281627148209483739820807722373001981966229245447057010778564891956457148483332200654728315148903119195750757544097011860308720160641220530723446945066474630747487924408388685190967204912144440853636492324879836853963795504278529517222898531338243976774287793389994498792942106492992554751557767739513872454285559712238311266471440535494559486202018905887689107362175043115900414564887302744736128935694660151544721288532863513424818179353858040984328944762809954085119223283696240887601862004994814695176846383788308654048549107788850860951184218733903574166094207740683618182579450609403370290675906125129921638436229827538398357188567365227915730099058471215582638225767932823877146192418498503261892717146534766291073845536307350545941740055956056169065245568786070880623013930294793413534144860718044480995170761348068087871780620657047087921370649328243502644653274971132931612584108987985884972754513428575262582237740533440859379593444624271707514519089872171129602869773145772259796973904671958550694959582641055364341936361666182980428333341675418059221873599345340154376059838789529121963896045271045029283971417854574381275244212125477321438617962635200041587711860846670919679692750274452645815544794364485856118387607437950242615727408966464648639804053224435063025350368930476019474769477948049382926836575735020528454066060387446868128557256983632725564274749607165267852326321601599553287632864268795685853497625480140248440761970071106230952003371204453704838951158366961034951033610073023859320131797664245341257964726271665713650923814155987115128989061059772248123943194938211848339246894475089515099469547681773971903982615444897314022372326191878879523486903015168557098994444906766388601574817580319935859993232369104704450045022750572191209154833730996797061463929766126147504995867759343951777755776831040305511112842773479709658198430961007548286706442042202667604785608132297208063784335110001157708513528931521641607399087374740953466169965342182545383778523307576496299169296809607598032564088245972988507833540827500101722202867053029095682698855047319641182243031607863645499664032996655008626523340805432117114836268223406487702380138913594023667076378653284614445585030348763989767077749182206060189977109292648584352190263516806929864190530978589380962257705208814317042335824282968755832591463490878326514702852003876500849579324873329992354682684239223157306977217679736072095234032686548181127592949535489310543163737286779328119448168797778819999277010584043443148141514651779749138354198570960329071163950748198970421202828507768422357242599956407179418387565471937612549886962622417510695407781302200463351105026264311926609561909036531976887780627704924830747466681207212733051450288376872847775492066025705364738991331736767843687886258294388656661174956496721811650470178309939227361702225285360708741286100799316106633153170930236083090863855781046737967806552766450449948698496465512411090835161550117682046986611544880352525583283376505907355029256963868731560505475534146103571524499486421099603838570066771539423601428405131947242764520584812204664531785979988488816512088945264553145129960964785774423152828657332790949518701329278159760069566127692823528461495095465842249953939560080407514856003528777023602367800236568031024815378032040828660455474736752460185813076662861917636933092457463086429460499862503842832780997656315870240170869057124488708520422430099146061968645972346238053680121867490073925257760613198172024316563961137027602764912583062797358874089698269582015429422549724284421551021810756221689377132452987778978800213427229770075164672536729876569485746753500958209478578685896370561364079247410675837721655143049110805279315496618148157316997937180085685882988358876120803895658415899611877540886032049592717767594475083991316623780639310524846909515904715464294346370689808691688398651141990904454138389842405435360246560160742867028689244281553336996010352823816933653518694771802711976750884739975845036214482223617007573377278047989374215567925613347962809081472859232858134785999353270547146201652682677237730568424693404087095210729800280863730565708981574821825296429312902251357383082333865963887831971387031069233737028881644520685574671045182358294909569495830099303535976971343113135278851797291840600441134128944830462977816097170801380383546015613384598852247735164656268227481340213819458476950104086872509814229923555658009843453982414516489934295123404348621299534156128080859771709237544312890562575027073851012293276707982526115064649437312176526188796916181651825832954198150446090546734210038606877869076548157966911636055644266510757395467642145067266542046086102352745136137409513148683718741222791262433440091606871344995997274354967225048568677514311453493019719639401567466853498067325563571367203932801433433037888938364313829960102284327900659400998072833770896730725626499445707347352361233181388017558851672636032655478599809567048792818080137268193656832767104171067995273385383468752298311368103932373512463638630656285261065776516305421189151503734263939418846550130939308542587583512137248163281293225231237832658725567430725394365862962655939962857151604170939660887864782253957126026095651716783828481853747324125885904654109168623702875311144090764540851435614450259507632704033117550395306913325731127204519466344985711994789239789939044966828458959660163918290657074046437612648537081872195100121984476761631410754678303899751223765707703402202185521035992217014236403180060054966901951684096134731205101267310038416603577104131740020936665860209136694592317960850099128901094957945874652603091293824218139404028724039782497712158784297126834090695566902722402220398261748522777451259491848359319777699715972482805508518223210271232696225851360547072882351593945060366287357221687531212125508952781659512781589093602426055388079996067248824552936607772320079612608652650649744970950402197618072015995518847242608496247493251679827527507216333209431291032117044461721316982739670943476877976034601189477003761783847272292267222458004744143323562803319935314032082051997273323536966399617000030060912957960443812820641320318512367840969730528542445641361419172370888657766060651425683181459750960108039285210626518881220740366734743764456174494085603298543592517276445669385073336857591697059046396726124094173807943998798411426555566671082806113968471286548348047023298001670150059575506305132306614214291460155537482099650646520756766246375542196402245225278571265815684468520516667091281405118917662577276124191452110648565968068138637174588399200964789336576326762489918378567086600127250044275061002740489770158555019299261755842006143812676304804840653340954836523426685473526240949692529267326367293898381623981417215764188414722730588959011244364230133432731675505471115506154742235913266902168527652186573809348354011616463524553928594689334415098533778975886538951626690043018345211071971040114281241437308121777471051212327124814008587565644225777058753402385860444551083472121637773770185093556409574625985064614306357944874406220124761313204323008299880458526212260402134105150281715462435841192434208972834999981037778536347293196487067919045515721039360886410333225734498964425953231873311347346778877641273529601258179453102910166723094964173487958438655785182614477430968925442007756038724250870787644516290386470696877977873749117411599802975892873502010971319826486486364896104354865235158440272551083637259681969795684206651095439302640851398914685142899917494439074123385250783676826826820400549207986485723179127329789958560892505230595468021602229551269119751561559774893320282410621947792154546081022334765028222273748068693567805900510142892566996821679488979132034535671971614885568077182977745436279253011130333404181647097330764065673795954801479868140288658767113305316769754974822483667583709723936976542962961026312198076044615212479050115842995932190235095910705589667792074370574539777988445394848676794165993032810395975515006596495652982920265339042137339254004471863437690658069794424869260700499377280255865984935306505209428632796613316971184100515451794344299091451803748062352368943907033617762699974577520089159083023007786102203576049822670707944063038629055450933220195701985782700215619521438740052261100070944182481435023009581319367206941988444125232339949245708968786506417487640773665892081468335023953258317292870266299345516398798987485374825785783618267018539707682361257454897121296739922608089425042954525683408112954078203781179395855401497577560969295032301545131143020351558356930910222837588335002267408450029156957093867747293495043494276415963170709955306626395175510168318541490359437221451863345228847955440112980349536703824289297921210786293350216714773155669061360182060159233908238681431834155422300465480591613666574068429155901383176498625330072586288223755949500880750497897110630003509551973043605225818118158122811794123478163774047810407283649589077739347310247553644801793867616082058084667780372975549338914998766324034423784540352081162879007377385957529317215982595102439377207145668558795606788480132425268595130709940988912941343519621241733337593608080674474822264050468277859482955386771843014774279252608188452022288282906490664786085468252231534671521301550066570092400941044968085144556205421130155398912080894226973942765252397749922524357770324355245312295195463791783645238978334083179796269770386929168959130338776104787476426722034897484546543686666656719051827685459994124535206001430035689961195817173564083880405366590710315293291299209584479846853521909667641760171364460605480729010234278933393761577518123932518248359936279205570286721566430531201149258450090721736636853177855999841167831788082921951381122734653770829044325174612679923342556310138450278390179792785176405001914816617011977248207514192125710423131069778576260384512533515383231893523639306906416570034080282695764969367696887012321657728655948473749928013469849283894251717595294604031277636119706306147818085195803767892897042719572125015037789149623127022535800145366199672882116476889526710641873065529548812483978187947873750757988530249593998607448029680499898767439470558348932016245910591374784993483146056017856684423117496516397199738855399851930519781267718172673150031626076957911496732245296720176474243477158021933941209900018348781502824374910363986578673213055342530409710183675155527716427139884533367984426347689499338889206016074978586310779060342082055458290483204288312994308787414999014917190530235925255451167963283014958785877864499972649037810006370328040823568367263580339515989642821644760333949642018792100242658075701179300411666712052686148641320391010490993850704553146841846183787265489427776976418646866437143457543226405148811391139337008303120489757918528982126452572893274436467703458016545554882049068573858518022039796426691726853474724541507419027266506689695428230581488701256395493364084558653834983878894954031266427103091988847760398500768311722869027341218667634103420435755060319699519122520449254307745776391731035750085791317102323147528514595419687650819442198621422083592732613832202048421790782222876890187393937953918179098161365355043958914221818497561739571949154047262326216195601462250740155402030839520224380647776039439670264944439451460764585632484816104177078932351246467261065562529299646358063565248738055399262884086431264504820962799063313727113915843992486098833419985134903675689355581530734586508001207065498692954981406868567702056444546649937044111538439052315951679923993594961365336321831260000756992131157480019662879187204712743258092783596700976711128900647951691586867331213743304908629831941340483628705356931867916311239327928206649177751045042481573712748115987840754334507863212280945785750101028419386365836874757430731948091186418446381346661233288344139964329369800348751450053277790378260648623060492183896560587963772276015215253874768238711006874351927739032493541908430401113689207863570507010574332019886321846964217772262897196964257446788399060086865970419373372617780338323801741930782732327544126997934356222697118074910593505623944618157110423732314672837213118274308203441473165964026510163861383273267314767920197058882953947841802520361981480791631448227790986084352272425134933379042664628874701299366430382830304033324696722851171651662302929436251215773120249100316192428936450747690788779513195798717012143135351391832092265051590599784175045511685567047674247339940251565890227904657264655698215069572521267093039458419309077171706078334790351357430897075070250683008138652444630827788935673903697614056536116431066999145370516691531624732339807605629604281026358701242138007397407176438675999157031199922217475632495799988256594890463707193916237812487974895613701550319242170079964665233051715184226128962815432070383560736010955938891827510438416061441837484600951644017192370733870089452133304030258908853738627661825927530327903197175260465601900768453991769708905261336194714212018796121670124748427875683950351254453562722043163694012874052244887933884927508059601542242168734436148644454041797011661508476453459269791415259607939168108577909772063128220550199045779176537373003781049068047619809726588439915510104557833882108701998814704196843364708947442216821264530300707310820914069891091568024806478445351017898639721511048316816280887090007666761134047743896850693554509798232391319720288289449172493963812961100823608476955294956960922648075940718238988199545603472701322088036754140619743802545322377664049305920026038910437000625378150051343609416511409603087378766970041426281897138785225067814741121509152509593622571729918574021291936001119061459727305436995371066465319408996675677237179345999628354778749190541512161439174450724121413796192402670182648408034063446258542644131034094334690816088293034506507020999664060860126081452825952411584173063953513229152573211096435845166456921959214820857030719269662136619464266667838005183798522346173377549635279420683803919287002643007271051766138304569823512151876195874583843493644093965008139221700393659675452594336026976510082776936723998251858325351094252220721510970174846714183155247456172182791225595555377572269732543017813416145186114397187920331847358981838420539487408148822876062791352312713181507011604627083819634229336270799048392545992685962739041446884409365702265418446099708618728516958496657172379997650241090640666319902121477891848855871257133442067330764153530655089632212770782864309151573069907190063110082159098555213174385605203502686102674708492285115398048157778766059543718723440070972359009379696038572752651501409973800839158231758435060175249918004072936756988566747444547740717967810136290170583192220799749697358957660458920501616029803513276432064827230031086552569073397576214144870824285746562207219446584768971598190853454697155000703913414831027897782296650713245779113412943256746057160605638450198426743442387793255354286422573610897002628965478566474539969417697954978003364577289156178204352037717135660104209078356522789113158947739053824045824799920609564862033437486542526555025864829383112827880625096928215630492897586834380198200333174493371164721966142886968337970013456109066513299740073525549390086170216086236644451730184860416698098798966511839533848068746801219919792333581524454761969887839318221163930700539727774924698265952442065313011366354377375548352759510318374715448101911376875516769563771319082542984823524326982890613086709442574354949202320914574794408735067828711325051286920836389470035277799191325296237762902503566780624734335505798276431031178858037555655175553661035832212847100712825567681200093296535990333650477713080153035435023045145674146161884233048468642010444100655277080297250175020260000058061767209083018881688689948009974493447327620225426240433660348389717957519633585262858581318919158901839218837028685597786375201014425176622133746079166469179240158392438953274833248459034783710829433142365972867953075361968336403337505333991160841068298278508342178577218850377234059628547133043940917618421012549651936190511196549696878696924582803638955322090841805394819689443264776661999867596916130395369641176637228088738309188706910861557717498976025393562739523381595237059821685045061572648270722305464663822504996373971448169173054168345488319236317859422812958725965547553649860106971272159092309573883228915072833968670186168109249118320918741802356327851453585278700469133377431037291840243136338280930204191728265590889018369262093259940790586239445805807592412598481960275667704523923730597628709852265004787728384972816501032370020072926237640521959812477630853442047345902952181587084983072625042696589435004190924433529744655419803542724714284909675628216063967893719042271384903984440366072690741182754959445951670861262942908807570836167547777931226821966977110730894444026403854748129751733263857446919786089074765705159237957377148151808509277394583413024792498450497731081658439845823160513045428407601435346564617846630021724110500712289885506333706191776115479223890845794745744012056393078475095481179631885918865417546635395789082255386942097148557456907625896268194524995536425046815501939538648117860845588603634089023983926108917721913704124646784408141206873341550617093281691094323864164502038781986978733740264711032018285009750432547217256223925210877713215233691033673559266146379097210881175659110557563230348401632307524995666137267991157536088557898992292694922894507272938789111137135140745412321718409857029218802608473733023151470441360517964357435480634666098875561990199603905845284045672366903199007473567542940779189835564610498881101391734203403898935421393821248986234987333795782579513192253833993634725303802082574449131928700982906092909810450992405810003954706016701194032563526161248244206422011262147225908982396281654844014827288241760844534746576829605440557286086629658871914914625639611578193398102539047742715796573466882151999736320284093093795145180103208998302870965226431052716140233481795594087408588954801418639161890905111555943118351322401470439337099723023338932752258613578805364837979737076135416586799002523581538577388298257693200951057097293219102020331159506222789280055487575481574195046005533896878990943453344854814557583858863206172525237370266193675027428147143400558030288141102154671600219720040813665912631363234267239174502619667110884819848747332688883834431931350137250326318084569875064695300335903304727921598189522654606474328213248937319645473689100735544017383147218660379517287063779730357588427300469898729887222519810646984039246404130104080330024454113102748213372448787158136597952733470137088973767130440535094639135124557352007192335858390481029690647262595838611890619015292618013966537077108022923242885420944183279889346164296901452843207719309004400891900769771258996868053464613718964335200647337197116500959092143699611536596586632111011055317491782203912609908944674080640701130508712190737321441985602978319085508159728473197574139971747216333709728305080714780148324732425636260153553495038315326895334429444604310702260958551034891088685807613988968191139084716258165446930512612797514939189812062840726775260152269265325150912618293739523791056447842808288395306228021003696224148815449325148239172055103573119387867334271471974494723968895737352157683151914975774244943979342720900545823108907009312476619486203986585676719158119885685420521643297309540539381229159439439686747574083974987203902021945562688938376757904473108902184197579051231463376859416837296505618704450985539084595056294923560348910923337469359091830400592622659309928303670298392323026968804704456271901765048262666304506688718124723669213979196828543725825828512919054495602764759643461929660717940928138469331892334760324454691836534167409519955724631491958726863622176558152950093994788180951697681950613355861046633652070653809022003816001370795925862682353571446220456254189513385273723958633954655474043078385453281282022494519753788533207635602557511302117364574730981131570659062793097728181870120819409411260963983007886344201889824024321120381314685159252022370444161786350388510114255778459992828571285720788824375532826528132894810033994900957816337527172520468003910961073752589466604565898257545649712091397182646928063798996266221512586317771667972564738644847551287937710130036643360730710104795813349398405976289977199900590743289995514842261421327767711247802256817329185903821119829829158351934731269513052217032364743925033466287029302966305473264604688102411268510089479154065264559980741909527246142929550718046046349951306181583627453361786450417671494827577088331393952721356780598050336961476934318204222659479036755749005646364976937087485291609951836826104291135606784200348778637030753538580149978551670144052594099120996718415252049025046467928840843911493800561185030301609414794919720351457954901117121447888182816923514490298146204036738840335457425557967854434444726452594849594389853181669854631052740160114540992890624349189030559280495388136489833719196648960672173484763894906217385213943838706472788462550841517555831967096874427253848803774808872702214351780569073494639367257832720207762295757730359869746556045697562435663396790503511903518938911892470535924952494111773612341969612784749895649932881516224460363202790668804664261777346713906241194028766439387988609293022105011128240777776976606346802718166878095026934552179734671809314948987125576213740259206231014008841143431461368597335055680356187198661460249755254337481928022835248978113084826537777217435092769680366982484783567126384519466132462026368465083356725158763177032579440157896996365490628873419053534237496425753051656080360172419572481350967779088542186435418911810976539229637096572299945501557349873388723255120477100006660174117753976330971016123100879426325929921190713541263242397853030457509476696286523804134340499923305702296782508295560994518227261589465080839603523629589725150273464167338681687407194952182811061197361715848587582310625151309026060984746269981039388332523447220552883122471508173119697303887583108883977249773629796325753556541794119873967362864489039287500348623002917860846611793017068237317428450048867498127058896020913756796823893660764307122629098409862181910600802966633903938432841257378569246339496434171697598359111951685319416458633810393991259871437396076512941288761802979066907870019555615320112192804691366830380915970285510691664624966201822354470594705297705949021170196850807000272003223526249508167589309711071554810015329394834751862756705118235563115952052813795059896814161363627991790452123105326709894448988809842449903279708913308207393014064086590825225761134577628801784198839266258933569698162729150301305056341112526427907835935978350078939318827777240531438972195643772585359459515387382578565386080054388704077811205635935365239831903381523880449103366261472526318641997814374287036175087256320272488926885938571847344932209568945404027532207603412682067070581004454397146266929659625129729565174901836617431606228058506515819627785790632093118464378633718017318294628977570803454301825683328951644625605433535467333802543855090967381348225841828114618367504113204385938119827493314787579625132489466572233017194953056697070051024157527009415497937886424962957072375131258527892156990453993009427029296961061274530161522088351117464725016463829507538497944640023883319999169943135798646191406447973033540566158131860251596557799235158282508581518249693474958898528205455219361063119817501584140180359141139298730343061879506964269741153179711280164558018114196698257836487084786124862461274484456998314788088507761963977818205328239074114620644963736548067252917465089620330574481899054402408788869303345692931505081221313028010965661123991394325922588000186117717703920777985605912402427761490183835353400689155770407834053627720148098007521032665997282359380913693152781601486826416814622684114931368432323254349734157906222228720445387172270649504340573294352480768847607751449446969206115608530389101262098664268698555089161317645466348836623711053598729089372057149277580018062011462428033943906949289231178135480405945195466288342539064299726478672399024893730407627923875521883849593235660976759803280011694744607498929262252257724934315980548127683343922079971808577175776236888956778909031446709845043125439717278743276062144921312351784942136233028309981566500818624856292556049528512852648477948002979576230522998064114815008430578105003390911997434225713221794149956354235217166723522373021460193268545786375152984524629903585403787146956694396403460247589779027048902461709114738639000746818209342421384607588592080872767337845183991661031871734544118236072665212106979958341177767480584018570716636291910054155559717259640178929141609140700343469635537622537804067998654046970363263425582291519194943706115843180185277041500577966477393362700149366801832453802703030775544673905220236258541320930746236057942050224345992603093659702014657351386139331050364549683779375016950586835786902909460116715577588848472692520466044876104164972057186940553237862444257437371273661827062142710875810080355616291914376412992546982860299059863933522581751635570064509378377016149886606422526334298028125904958108802349477576745330877144784030297964835093235223898626065460057584331551223982118175256712323929972428769624166312380749939163839347623463002421767256831044457779451263685945084681693996334357042317442483608541498561517734866169613959276136633531613940022510281963835649804853800275674155900124892682915950338947822184012257576202335905573817905216885210611682965581084834575980161672231252929715822067617724937111040179523300723292968050422007130103008876457116677850754120520676907863487461633445094978860969447974529264093898598948938049935205496714333968724606271758822954334171274030136634598775740796593585807105134213922760319405858193746026264940511187962114846275422291882806638401127835157212200247272668653827301773334437312229757093763306969239659659917711688063211063834315419521991539709345934387539351352136077960649571333806184768632849767029437798602177730673016229483666357614109925010206640701363345230016979670832793022819872968706543657046159101701440413289730504763231570343514931506710639827985168229359404804445626579302951572629877919300180955731375164271589647210771724887510562672901343742196414997078701271980949979893491748676496797184676504887074841445606260574324806421159389179923402891239182530412566405121164541691317019140719720727767022759079533738780582981709704863620502208320662721280800629870601037713853429806707492359498193584190111289421477525519464321799318672978958209192881802336926599292345485216611072989949022990076966678834095651593668855374989106318905246892517861634699993097099841412542014858934466786225488942245368112352704575805135822866957699482648756177842016859481114353356691120597671723251813806511279215230626297234508672153878413517617168806615874036520147152392126922182062391127741657352494584100083617211557325117723900702500577716550992535068002607228108852445016470466667709855480283741238666792758603005092134068587664352043381565199694650945817473542325901770347274872001553478584198048014745416492228567241410150450532492374566459964029242320152910217620312733885147444600244700717242397875676113794137393945345966362595722636018668020429661680216905947200875343430734093778079978963425569286480180470133719193726864140263307668511260739810931695997520983592491421665746424536823782801488511782607832619678418919200442593725367716498829931569423246087551585753941179406988212643515737665037863123992557852831806241585666979208453958395075181912068436466922288358489728293644234075786282092053543449099697105709009737388288152717148412912928338050346758198277421469851360185014500481521073354563625063357545129239387910618738009309625874876849318343721298496243309838773905319395039556057174315607369356347328580866531501885225225660564532140343267553994564423939023355233724008262308404983358717742715850597918115620648333861239274373518235766619306094373806616829293095133939356825052261770100534599196962521227386286081568028532864860993840457638845337374934062492610296626391950770607661969173717182572761085837524112066148345591719125335859956939824825214405219608641018511982602781484520340930565975762747138246503669442931761337882138895347455917865535165880909677730126359367311739409141106489776846089197955610806307707754885633088188383575124817234768256844715793266513291354251943966333194547674303976997333486721204659444264165493926371251551774405219466602255311858066221718984980915959136391292385421021251043399379347175523813856778688702126338331474362362827527223864752921081448347053689360540234780475074515434468335735500789425650121140043218793859831143613249619553018745407326502824603324612480982807903089064834325196246741270175214848031795419690929337204372037552743205106237243038824114237162566038989195489153536997402579171188091840396289104705997244311576765377976655128548677445497060606095419538751238239263610703656752353004465300242702209787683449190192548454918035287313648793354895710967214099759459135667335456298710543551917057858669834094304426522953269045456501675654379027074727519669508059011780802403949489588925022302009583453008214356729963908064417959680287129316548067528248272547393060391886781473524789060873595826042267206554471624196809590768248970374116051838899597817094801204286463821988438430700363646166718580748990694335200816368374468523332738765358557104066677468472231734407652486185966014222973460825930610903403544189575784172685931055567828203645020975612286173185474993707197047751299307515408493784790246388308218483537832706218043278469670933639798439756524158397587453086263313119746509970152529933317080732734826383338435014240741901922179762365997185602142763401899972758753929504415885446477253715859416292671092064285840819046973823056400787723137795888542629349866380014946261789384461915109448587543594346434628513820705250337420894793683772143200030014735187401110828539552862886784238512319462703585893030243336839710286164657036411496677269346383235783879892160766304480115828113921364435082166571982027716994033868057695707534461676395835883822042521153176374662165760955029290305933475936283696021028774358985250546898518559618912045029110799185263658570918838372400338604729569659012071060472697447486892615287247358194738097955712501593142808098562916488788602817625225406210282444904936021918713310630583948734122743495426800729976062328389110544231994450825822931845105415709047921613304343416107589202316189208984771260397326831737009117941729698652639811550071890155371844804730725118722671282613610682589563912449940663532619667487413944177904981982315756313636512294207992711026462349836361873301230844830953142561597036088358790923446971857135023052675433854625187118513951217634136937704774512418341855353620395031418347756433251248633576919630499612617392034907072290204588466356652658866856451445650623947203104533249221187991986080189518368963659100978377951907592442360629379227374475909057107723708033632039897801478688345386867326733645535960820950389752730214977631279358891449093291469615151295164384657643090339178435730506688724734310487155578330705114451936996295762677075031970209656349672988999012234291003780621570134362346154875899527892248471762008862873007481612443005366977939504363362245434558422493426050362749052033702940394538113071005732738023657661896922896353973852433377618111531237277018849499291200526118477300478659218172630437150627843790205460799439487711764109489267831352561957533314803622215933869216749549942705587415780154909057545028577962911632280892130823902652299054796072186863299329194739278565611526451659946838111671472308711728985149616610922485631142198733646364251469583494494929120773353010993360719136245318437718363132967135480089280274059407811668008393960681324584059237960409107839739694023013671344573480859150397587405136915021263075204009635877938729572161060339989651455831701732055838308757252219353459408134047974909423396826312285547311445385971327941614074220707283260340099187195402019883698383210202818718013324352537891106932937775374818500694700938098894118127010946857433135857527231698496424283198315591224435479478158468893004726132520195612982221094673622472276151418522536509549904923206894717507125925643360561274206605803360193493185143583675538308766780463142916010657993592909712962318027577578337754013095714090169081166114584384961313843822421575973692015413021979081919499918733430583971894293094014949687630501565377231755238138780864609540214940966415573727041489093457121718632875857512885336507075573705918111034078489911528813271370742207194385400572690552746397008206736146577977425541042494750077379386102939225825141408958404548386080055837059658111216368513101882255538955608257506555812616553775416368478617527682665262119346053837558156253982868867395984503710167094903775947738008629805225563186058470427544839768224858261382318915476907164447240638184511219476467373324338971763736551090233979971828632446634454512029211213624109457923795980166323116797892898142437984618379926162912068583689546633593009802279082376543532312606516628099547738080427769619162542889672086408004164690155302402769581641337813637628205048511065537437136571113133984012195931727370088265033927851375965314984001661273123872816300365953541593917996580147624718500359673374017225263582326243417930913648509801086487880072385445991387721270812705817552681612159628975987293329620325399939546847735434911743938977362563923762829517397815780375526622546222699114196521844835308939572270640677097967296366081037005962750500361556036237104036379148040569335632408672577953468375108931727899105383550467290242917335235213663297407602019725405357820591424116393651478465876528175992755176055019099073918538725069789520142522334894170049825445198716315271721370330860833714984759026396953970448365671795011049498543240779703407293270158614701846929309427361627885149970096587890666146044185887797196653609431611112940523764162841778113891365296894011347103498606103743511471291746610223856599988309316199081794684862860939559482870374924211530940689032559412083858387386958843333205921227268097759238874670502748181033904522530887215314350570712386943564839331051417393198235221954439102678170679541704397640036698410770607719971556318022069135332450361622476575323235861606106871680818297213721978705318971097070916553931346770670248754336157630015183705995465636672513423177657232777416317277842093467689675232613532476790151512207968843076817395783732405179590193278647477481230730611973299953692419301338416175249101036911603774570374641716263357582962252675451686014304038397219065993056081955143506960197936607224431239501985959090192410787103241519348918327227881839603609247902825105398064062222277187124376142406622588718735988951337978194962963883682479796181790080376684816045623142813135639732503502807303449121969407687701933584453883482496661275786527587152063284460743767218686750737926522238707132374397419366457655762254052552000130763606551059771458103116788256380203544126373592757273296156663797571050565395361563579038679539075951127386125461604194355077206273843949521579220850437591376811567755872948850075840806655979397311281638041606744991628458635790200872873166824938102221690393867031790092579706062007211811008545053981977621088471493242396723998862674451905662711075410647062483143464526183594395302197863747395994726597065364690204297363825396487600188847096701902266079410571702506968027613924829137618481763429852209758203953861337847347204839374285571958292008127021070332785825969407699604374556598277754877322077234321308783688538645829035035924155967627328346647460078660339986892610445198934256554792920408393156373562426519686170957195924893939788379588170515454697440092362051923664244346337487507658326687914661332192509373978603367912400400698389666377464397286742530142343077250237662623908098871210576234043327626271262033583386285384822789993901108773640065391981094109856133700535839577302987913442797284367546071991916071431893214821800723467343753266018287204045114014456192537898199639783683846290055513454896325074160613269361034642207197752103595008882488089328900077233060458021469121181756626931731920818251926900947038913885498229560237506442064033929214443553488988988860496176028154535582332929449463810522158909010658882918734739124738597635839852545357554324976813363783624650279186201275178773000090274594571811360909397532196864491218776049226524005602526740169753799628238781042697868018828993658493297367057406212012530543287888597683505897079529829493950004612997777872070887815224321106912883864023745486394969238478236008975962673426365356899721248773886067247637764861437935435385767198251240907086180039244674208590367209841374512002573169439898865199545787753262767063450724381030012284593322428892592909528407185486403135669349005314304720661479224622533616124074195025665274058013584276759816788733320659700174773782053415821965619784003517819071563463515473508961990269832677783892356860825399569196016362644702038755259939607623694350633626781566745328722320608613381539939205656331407986325957685608829804430588910514765468264684022530207642853855245464451841644958587067092489836504300097732887727088228461391631650881131279720731398183910385737996508681293796588975538934825955304152353286424508671998246585902772596077067332195387992160995535186899162139242093590846921608404683520513822186352199934990985569330939881388920802959250666303213593192769071683081689796065269403860661415967938336149728988277090393854016734175736337512154034354817793242417262406462579509510292566333550135975448851454158531191057314359133899547948221927363396596214349798307814017874410223286171129295868434229477674999637077245705856704695113429362421689921826382784213267913559793253415939067589239542164991729931480673312169444380317744132067735754606197365987508068484139786224308459952196063381891479125558769099044786350788344779615839041865034579918589843658115488772832166214754510168677271226627491463550812286128382688156553688020652597955397781154000285635788720198563819377456747258783638625791716000429976148749081987358476607223327442529786266210656616768664217779252484722837501029827333846583698879105549045500380973356733366848284536235166719959928217465170287743399299478352838478350247556205959285396758384567177876395636298216547135973891267518363357368415034301402985782347640246120494170747852894573634784332842331132124462882053101790602638919806495762753265950712415813210723851265335994745889101011778680064538692561797754104356583188646635785473762032576348166940068201148132937770745340264083194319726375013007364260862994267462762211033023007503470096756078549280741755418059377328925175117464693886669182394938602342710845012046767374986910083134843629488601367766216911289608451358039929918343246907382360157151902658623051230966053441152458567304546291529806044818701858480557165499942725222547912909988656845690347410393687315525682572136587486026354416199578163337382681852007541442962509761458282623500177055211658227791791951130414774025854339628239060760541961782968202894775682091691411792707383278371861285088557967151757069897637708044674996872836958251906641776415147238204273380246125728971855021470821535601850633945933975295938109237032797037225799403818316596741688156234912166867445745066800921352357349176737342828069632954776681104678485542937736762859981974479567675990897229357738715498875772868531031263977513276553375471815498125409823259165559234100417675096674285329844143446401621219292125213760265794769244242108064780058805581943321212060539919097202661571021402275599015397830781541582654961186871492734296263148241262421833918216211450411666473795549455952504360607120105209084058912707060158992705805498174561275864851054278452425127853852507186146638100884921492679903286388506342668347463968692860745039310575305701475950202893176195888818339747740933551693236260130005022769614369428741531617847939093795212511393080650742567317699063930286130340669386604390242162015026637113995509086587768823591594775276800737431879126326857527616279553113918928389632821581672737965275106941888105227615693061725657442967197342012092122416953045141579813745028535060123655900517219900911172757467791700611347829302347048443912491324433277720760318588833142234355300047014611703818680249188868511161256483373850169623134636152999629626414413793165551853706192012033539309307921773305427106762161895024131765600919038304730037850569111849476008153249798369937163190538725258731661310999125102149093944349054661493947925638147394237013273240620881015859422829874705300219239593691598218733434087736445818007599574721076875692100468047885873575640735386102867381547425761280542841860487564233208603709441306114059357829173401284355474608649659814652241692284127927873053925828019225707245569300542943138468935341061050541924775961041485352251103194922742537249109606828000768913969076704368827723319721374404727405473943581597405093372080885622757549903851035743953875189985134754127962585558868072424795377251445610063156049517693115339683589310942722262302621716716053178699320476042371350462010438472372761842463483592802309402595057209761244343940332203578404171736471352476899844859848459741235863997124462049784129523125147007796421253738461315631493509271075826732761761392459375176864724979262895522295486985747248143307513664163640929450656480738651267200785086362002588187320096101022991036563272367503040542508533386212854945030749754908352016901530073899894684294529222792602194187825784979210755779863750334798626010665708957584883771369144735634459644807636520437471334707021901558919044394563182902097495843643343610510974964150599667653923760357069771805493174690008260756792139723041160437939217868283990360053524046120494198213765260994907931852515462466387993634068890615325625862399108592788055033883790761070517046635473755389526407984371853684004376864514728445403081569002797115061367415944307000017030761273915562527408408235278395116124093820667342318602184073477810113288536421761624987537358644411421194579162388355999931845274148815573412465302034576039713565529030985268115275996816890903947511090073677337240332272827825021132913914580489689943424926027441668674623989007810486486553237199880613793141464607455236216309188221926589805534697247419261457743642251937844111836973943568536079135996855074032298796581445879097768514405949388488400141818746308078180429921764974020998579495114972194790191306217702850895318165107280141576300129177253629535984669941328049862511980951728813176336129104330809704410115738061515932136024391395517944433349037749398396468103595209422584746924282637859064997793678878118053891125149168882211750605217070809371133118855177733310002025526673694372591855041820297505468361216068199141493875816237046789008028680714273199077608068306530906031849330404937471051788548185228253685176716094142594801874900326170334189211606721019370386175082862742377336105599735395203715454643834578387848084930342936023014791009506219329875197838047125517581007236005217421011093493578158742785024232643114067891711049151123764431863574077632937211119666825821254068748439643702376188493810421483300813615684018838247004205332386323662012822900476996373311868056158295032879704082232560726453629805999529167030801705993880374445319185872979054396837232223494214569530490949920626534437003733234717452210950013466160499605035867022947626056167246131946748205387085645068991952731390622684841707021569594550784805439509800514239736724429859553002092761393701822783239943853848927421682058578428445266268672648324583963394548920135672578917517663369297075703548046226577822426169759879925370304641426813577102643921991442741363289904309143991062293484349042438445613022966987563355763957527927164486538957121530577272793258672046021120152229350306683454316181937539323099761914430666243907456084669846998811224438833047406042806998170938953932806693111555509011285803985349258925042205696121706543460108392635820288227345324472853221608235711291684126485946697496098104453400832333811316341934045477040793128349423347138498898758040916635710281579637994221062457126447684380801501120111474431025188177067985314029892782942826911051646659900987047683752151911694936493906616051326546226830188343867811107753466764391943412535315945708298087372518143165407958881681475005533620213008401169557324229457518582918443756363388437389551677776155379871997406692372091137230452369240175113359093831191396287714661071717747742985903171171050824110560837293967119968252524508860117098012254051925930618747839846966777448548961543752174475398378977691256400587936935919913982816546928030602480878121334860148290243397134944966090091197459188688114446609869577436313957035176902529571569706080313895252687621791814857223880026932379596687945884113459126655933155772861928091211576929243539498255122077619573219411017077994966232438029555206039580737012215681538043201011466761612434550711174090813512639585789184944451640667172224565926322143652229946641411848884031475629468732273071848559511043070096401495864237546813847681632810107963602540101273688335758354393324358233331444056901998300777156507667601813065159090726083732016552599231563888840783280815412451744230867369824571118098545186473098291115020081833769796528839972227098404333627800631034291057203442681640087414762153443263148370573939420254364821646155234827458941356463744361712384617713936699495637740572847000175468642523155327996365337280081654634450603927829438603281890212601193021664111145249926994048749017259780799431479024244908474536276190905817209040229963339024622303689814088932046941034269757637715019291325889158579692757996662547936927423874359387222336826654262420271172770198812513956584435098795292670371400290294042080023036132988613612891111601767032862616720234110036015506598398122557303586269634152844201520376672140512156649372968731487108537992405207073709188900891985353692660299560311964186464952831289087304693676910758111831060037492549158856576640170716916848121667687162722478534812899748117565078508687680563494694165665704186982939885776297289094007479497738329426213913222136401494142444133367919812219678265993946283435677966713935956511596339103793632376898819367603143180650196674420853544663248154939838526668678533038006343653777834845356414223758552957531025149643087618648911543188032759154162648957325019613121991251651411842701974810064292393134787454108135650392696675226485518643772916391538281991375483246413903441574119464005768973722520219079913388134498685025787332311394632970832990266704543169702413941089637904864062895786797725507839463778448392220695284973083579799892105784652824396273157718011426941397134065365887041339333983330277470629604729930523809383507880235815954619025010999493345768437427908249008914211762208500337278388966194496531925108549427245184757389891019549969856007760878946331416951145922878553640041798801536536577110421688371132615401724248632670908869942826203158411006586914043348645776506952311313115059931517286582478267377114129799407172387740178400499684355148576743976343490500852354456283977294871547179051710472301856673507229895884727808529316729272707946469806438431558487015109504830671892635895695074885276107757661453968423722910116535073469900711205120196324963921374959468797203794500280612608410680698161261373892849533100405504480497415179721142636873960626504372049750325295495311643779948808311724632615976149279293433431928763295270608264957812033010026732661401761535482981924159832859032014646849916317352402109573105823292426056094068431278820492164441870629821888787318892939948320502075938824541686932571943049499770898138400934742601863580063523284060436012980240748545439501955725751777028525605033954373492131264713012965618438338182159099009887771773461555816220429033906977009681748904870436582876327104972703172171074602636335539389548292489491907194735553452096877557088306130842284380668971450857193277752343562891821585956910865680959448146663963419174994204079601923631196735635654146201170221395244719694888224653069762466333348601863036149152274859029837066075336613124533218375307618312149992690142515291676632295503763207837334465417220060726582236651624047493023766715151391127519237186750056329910809433304693904153297277159477941287527263394529236951794009579284726593670211490537361398940995484147389136832527298269620937860600703736002500151580652494570918299754826925960302913619440734309417765296654319595861706442674854027839100502778128875163525148778601113106252610274623098871005168261975007832211126279147369227426357943358503022447217061276488117534041562852174268216226863401218155423402506894679951976586689000245076683161833574050777433336602174593641701295613568711885122390604207781742715694616430513320838102187680728152746511444610363032651775619617490664813187867528863157078479500762189433133655202860104603819883253023946998736611559396203259448822922105273528319968307349747390342243924887790264956928193028998905365381186100803892602675523974322423910161584098764166522157380664365234001893577385575995727698126083576678109382482690617453625018720454466685833989676976995335351621393164502951775838934850266941358178635227616835263205699432394060632410311130221718573062010719055084007033184018743313371523341465645470545263257902023322498381628159820691985702020786959557781551293916006749730306527413980490396580060311737703322834189880892183538623509711613133052027254056227015202283094562958216189775249287502196057540780202775009060352377594435776622605193628291022928475355497219748110130938059310136799453279705511363574545851834571799171098796086710574205666907226184407303096505955565831128639873786600843113079090282069948571613750899939430274578127410890015476716485994472168407769228032684899488865973997192495332854591208395909769383859843159947193406842808153072778687077941753374048933108724016708734308088730027524345645835447277455366101418624367586214134690487886291262054960664486922358191357849265109367162082189251538420569199094939867008864538743238998130418234869549111035222296063064139317117398830343541195373642285299141131984527348714184001380610595126544704718832775935543249383143783988541769121889627019938786048855001561185249418121244494605383052618539202848709541608908016611745230322666413508862255712099522759514764279924938247119705642431275931938367732664627427740769787258935982500072423502012248466164704378785006824056183988726353045967882639745554110404683345153004436232238651824530327368000621953618254395117020406962926086490404470427871569832578931734767231277699396394384925221279753843910060654449212498420618137967204718776121015578559109748074532456030196830530221428401777166040000907457204899896365094792157309564807064792626586577183678503893348886978702611429712157790180547688026824092400240418366382057696661373466935252979100464877233517224098610709372936574907760523194169290695757339049976001654036434536092531663999573429240687074425059382284587407201225413156913253599857178156829076948890251200739280275921164488291198963901958678599021872440677539918294528190942907170611841469057280561497622258070486664493693714480771508598593512971824825227347727059887882588537719830069910086099316794957079718687327780886073601627313851356131555794169757708096184919995199592138587018658003856756589190133147554335811206683242366551359267192997491444696811303195839692077812518205290640887416020094852582918000127185715025717009421843640347215022029887703805220272116152401587298549413117330959761242356337270548125345308456154746833307161229540734600307422738048247514099929280319787228795293031409113247798607618398185966989825442443430497050025800237133791134988363462339245867393566514868945509286661328253245113680966621226783026883306122955419233971916796293077313123294256491374834623253660287612458503775175663642771628379378754339390843893543557869418011103083451696282562380584481824011176431376584780075641344734263229254093874529108440666816542326005665685406421983138999668391848853471565534076677864751540739384864039174812005044971412629865794062743730364019290488419355534091439721660906592441971144194792774347515038228110596867447115131480856754072574613377957949431962778169401354165888780398042556279066256374249259410580254160755918553910837578605248986225672087096022665240018564399605775202150067319442030589155452402238511381899482921998651307593659517629631348215237285008566497890015206415224106819124688296005191955456132920348662467509040172061639440936138506987068099055032734934144204761170879033039558077049214995029955123239446552444585006625383888740302340188875711545530210249288997525231900351521486460032159517784105573972719898091456250990462263086812961289064643078510726567699200416772453863937398577729806911820081956567951227452099570370592816063324498457492577252319805758574392768344574918988251912055498469385453461667026713032449861715843424652462479822717435297116416807171060641572188189258347571901291990275512781201009873329166972132605577045143766718616237010600043697231697272299024316986800727096508861721032639410205182464945573413499293366457801719144697204919127761601811571198638617675933710295118627392066347209611698011606113246462165916967974909320769873434102861753688008572210051834443873820338128418018405169616266551014671819365229390750336331701265683559617836936110930169335732123720985262898367549450527542555908837437753587213054408780770778732073771372731900361370215270984478774645257009413739536697638928829617412154779653676203698819507568024388874374235682700854625948521392434999051457042356636392226017376101636471682655794827080845707044499489485934873852231681585697972625321541859901984956901389725976913707495471456183659398133969770818841946645259975260464577312667065910334377350956923930777951389488554274969788594048533722810179146993178292578537130875141227343007008883039921754308626167122405672169713801287674829933794095783151788526022166150563108934099470139081043014577962414830668932444404647986005605028233304923051696547808977041890664340723474401972222237576841800738688475590035995464970993132016892621272451255284319404046994386691697325133668938369005914442233686893279595281723400463138053453735009163737476946779576738113930557099843970317071083056749170462540481727456452030116096686209030579494188661325269558435695070111464061320767183162673027616680790791802982678279094083785458102911185850347410117485326336323081231356257843614887587493713639511046609618213006607561937954471435114706517190992030682051023655163740427709976559126227698176863691439074132606652906162130473092608716083058995219344311402120303086183787089571386247024196364442233405038283247052890426732334617869664484805986190974275092670605247831618656015333994216971600967069398383422447205708454917679160233802378177006419800710226864317212214035958625551776386107242318864923361005432572946490107646565146871575761003595820814186747342713833652515357272455174222058726881234013290017421999351133998871258242279197707217695619459290248198728651027777234234632311049552121039381770963008643530970382851750350639058006155833922971860586141421061953439586998600264224973921705437713840901927232686762755745317953705305354023747709582806024444413753588677281415334172761059054784459959618157678831883745611617880772616157811452127160181559134647571771450692752743344884217871258778258298954123815406628737135313518572968921232152663546575275509918541564405359983743815212231065235863206217096448024663927540765815199100886283049532360423042424452251299635723817196167381922118347522895819359996065698784402219178638623816948799441070515743411534552148578719218817717389103634644556857189108097216237706502651614555656817516635187687329565996921589445336048879835000832340630098909803816422853445027031491677335908396073941897149590268593967189972062187431729670090345243790617256812036416247769112147469746068390656699894717578432346088855750990017266816880507911765355324138764536271343892168008829111463858593037812641106267816898076904906693590072227978194512109500669288978777113270795313145316383241926238629197555327486747540131749403054077183010792179011429637579644133005899653327678105351661627630614039739139785635040435533028844564564247998831439671054800656921524160756393197940808084531120530049399997496893846364528989997420296424181980555099898602593709845721405561033149195380175107775888907602381439094496956650151235706594383066274955172837796711459811034634696755969282493736643844982528583190115368472561363885176475152301928482022869813101859669236752795531693997688490059387217918029143114073845880166154525714154195260883249130827418433813903847826342624629782546258231493182972677678651250126201324327743104805642677766961999255931035106378025673564375112003626408660045358698605627276647193195195815319857184021895570606443363170598945916994809983693972423214157908732018731810063456516359559754864557959482889371040228638810192664239514519500719122790147006303063761704558974793832240082465435169691028173808453163512235446460886597404648861760789739107341143281487728477592209042467008821910556855828230312312833874745445917923859824020058305793098789681896252718553733084685729474856652250384339602880124786673980089074157740641013874139040387145314663124547821921668737226064838112310040155873007629330114016153261495777964685702372958207454623909324994345347591302772025317416230879440780565899704857633583636219661331111707570882727151540495146904783273200443087965040567888273088994180363660089013945755260882956237275780989132281657051713908175461125686456705128882789071351246698813108335199808212455815185775847923790287211474980100460278263633004857536427176992443518103427747910833093360432053616763293727899725832946287141855512801913710241853925493855570478988707573315671987776799119890291327152383167443202388969273825079424077712356666108736142712836319910739899105903314566149762680882090383546857186564217391747412268616994631196664852206223434721125260960196935009306141771387026452201896193215585908652334098477978568664300946783677100369230586488803039668328164530178301238619995675969687862216288411177711157225595716866096905570236755693674683411977106056396788329308998799186412165959917348118281613896402261970444584508076595719896760747534711776863292283060250919205819191396369515814035250979685806877243900935074509512045465279486082711755025968521225499578516869976746930004221585476056145731308258889004161720156533175000960696299703449851633547723578571927110205190838665917258620710010827589626551374788162052501263096432933380876542117220654226766504739974316743674384126087549659197388829633372054959442329038670255170715493524531866723270843149679278649807946029926820363462856426167828096113486861501124740742106107331401638990339318906180532120837286081613339656084619465498640602286486092522542221248791543385952407347938583413995874166917507021220218175196564955183535202695783370809174270426808197306608328172199646595422538480214935336573014427626021976905109927112898716087412852530487006261967375889968731040427907664448117477053114156869579406605666336906331828752077413755042851929247708704760028387291338918123761076193039810234568121458830150380034204313444417163181156284554409337164138487009623653925988185896708651806103710544695427037015408726691709952610600485480829687653635082691886242360281397051305655935452410585949492817638623491250365291640124931355684414218503321882850286394950082323861916777371717646456875363775474412325393523188603410760645890650168733778245668100295023049172513889064379393133184341312204566362413414268168528802894824251336828394927460183627077939566420100843668639085639430173228129571702356342250643152441705266023492013079007724028402287958650819952620438637736941018738529750681814805065535215259368270122985564080911211009044019423789388984515995006155677557520994525236063577747295979412788327445872449559872899337142834180492180086277208585553371574715025933408173320076684929439474061337106464911201010414561417988346634440195374612719060106180768079916763634532260970175173921387472451774935694894963246923664050646516134748416909023541442815043177072185015448786019421973257571644316430758934449829736140357089975759981752869968403106245741220016565831499730030955696876017213110832188447465987215149746204406376898152205120608991464062203380186429759380887217767849365709318766606221158110384572339311297967183795707370159013260339766201053436833847140170938820346502576590207715171421479779175797361407474030054035861558158673396618270862331079829342411169692959133028124569465623287962165717942948787823368609868102528654483307263716580119154390421298685314100938821409749675054224179085136764016222050437687857063406220788863196213642995581686439075845839994039583919853436275836420457179282861732959799981587266252325815409764508255000524302646013749896528731902726424788964128800996638153572599459660854485905419778588934740763977722944334682843108184628016804134883318552729825597774461086795313101974137607160362043910122969420655181871073240826182930423764502998532497359704817926930932658313284628063038370606034666994378466893465042321961668973076150790334390995575661495693658763618700823211323402210723965086727067030681859664737235596626588386171957530131869155569243079465911561550039579612653521747310763535936115607174361182083998054414714392519292472707077414353966489818960809044180689338925456810279418811645980928172009348527847667667632000296562243556214237211659180637223022145432880645399433562812548329307217849393052060097253325516974066940666194054545572981959666403527905057300766334483525963673001792378244861457553235741392384148562049127552714436801456563359887901677198470746030051296764969338770901435340499813597782610236958888639111570271415389185226723616214836680136441089908998554035886242363966117362809171223364683636793412360817154047471145633843774494748830874284164937776824445311260356167400969564758050905075377412276762190152214771448694788189554901691958456445288316057142937810360975242259197593078933262202162148272891121493932725199013843210623204695446134498983517183628549894728339160020678391696534893527933578956411697646240258607960856467413828325031874859877038008799215150196255271626295191387002127754927395207010261035993090640815155407624569580054016649494475512709843057306841307963555070774459408494278967466161369920698012640638726348423907586068418177659748017977380524713494034230434554877071950065059624738697952820880234020736784362852572817839779024287564426570413154865267566092638063069092063712034926384423805912607125095607171631555220873096700944389727585257799574387852337604385459545840751784527578437354408927814367956170864300821029974226568799986826102286316008347597324786599175602449840136662706773247426795265461160210413713280367001891045134819257497804549435448085574032320249501935341394884773610739446489438367483426034732560646765312819507480483867912135335541530628925874852423662762621046699014391159039319362585223940880936088547123547920900715073586078240991493419839753482350212742467173835704147255445669100010998920424735094130465298540025981951338841257389032676016875532127880726103923053254532686461999558849167351984876152760523111617933874781042474734253280071720496290466940041625770197579154740795031130403039067029544869737748660356895921944211915262520546829646778476597648507789457182397449053670421973123597023399127956093819540585661961030924274121520398040018638214549396114213562655297884426173273843461295006453472718341638100650396372858536532099364177407991124278275557280895034873784271797990369023537762774818052257023795891547868107586844352981230022692636329840530780242720527249432902836503866813421795409370788516430830061755115586315240637095178844490594870216242257161080869110207255809397551976666004431556447832316580232817722376618285399091583445752737043401229617171093009962554131370988195651317065433135935344546610920078536160803574507934377661517241144695521876144441046984288912583566488616733024099057245596049164052188556697113847314253162986580706076348844857510463266504101630998570999365769960062882814826502112997172575258542863602361760936969433381022625522853984628449872999180367594478383682214881619710918857311303114646232135661201758043824404209639732418307969502366352292064034220305645915567970918494464741640521815063178633659312608914279081988444052891340056659676295185099560989510302882463500281052422705318214770532448988107892930869893974498631947493763973540070350827318539151527463065467233022742625547215978032047102098666702755951894298955204113007845913366555055226308266002941026313701968469050668026528161305612712769819709142179549086599120088152990761067647952197165158344909917167953070051682403456236824403762554485559160593929827679702443934029380168308467990895915280675255466227433106021091546675278548358679311498936034599139926196075619072328433033939225549917553020976338883433225932574304458005091306209659386243593230129892673259181410378240836618840610122541907549607161016536452427064900711461510716276752148459094801803083096594316851867056192216747654555241011447520543112712882800156084798584693605090715731801331489036465358316030928018952334087213054816804116370549967334229796266369427612427380563574713313386395731589431562430040338480627902258168318295149055266516262733709969708760297952326164190072647470828873899875598773662277814864918210572772611782687711064014416072016803641926605980405937341332398398613726306606762026467522975671688606413702053519782188219061024728515214217186400921540821025161855215424887713128698524201522449364710262442057116399222765728341143967699016460325942135078086773878371779543657914606276210336511681342338106440639195173170115700700660659797939422793297019571025295225190885007474450372292552912976090424736856546337148381685662692989609443777982325329692659362009149246873552567744513439523072074160304368568282272094597658227588933600503813522819423233031549746400204586407009130871204533150290721492312734888645236633295310991002228573685887047898348899393561242640912671537882509190277263144523936416669306233608366651155223086652188596720743617497795954566911690947494343664208858723446696433350268748207484209217474379046980098625769490448180918711939291615424754615100378463829568794690028939523901050122193315043017278515969648097719915938320163108571438004715271924359930208561235849290934549100433437566414566497494076237890562194692464717802681585057415619227968254608013816728824571504038743929568388254273420477952051112568287017626915803756215728896232136952617614657472039606543315193447716098513411185716326304814129235970061810647350595112373834231585222339075052329429730927591652967325347990518736089194412155832426941228992183995781811002832735631140361143361993586734269440018937681336700862131701154414085822856360000779650605161667256595973211233338586206769081990805142343413838177968821164026951980784177863424476345000352433942597495304421004340564791367412245593440867972250374856814207354925158065117102812370802888295529319326942423050455679263369451586283428624089672316120152343179909173635284136828837575124910366330760081944302253470463875035122138594877299635964075998183469995720239690113910415297067122462766585180934024481471164946253765662439000090871061002474489329384638374416207852746149793044920655825417267498080440207691128820389777711499568078228029765081288900510664744397323526576309416986533803788297002733269574989599642088673244610286755104542320096946754321105461316470721293181628817391651492553410149643499899947611028904691020963688000597115852912928826166842708613550612934075504238637750303482191446592851467525348447279497692291491931704072862466438729996972642750171142181386216117302095165670444570071473158924746548455405128146009416326580097462114304798440046534005785786428371588521778204965391243956834496521350743463671565217557597791405103223985067663787878227445175317168698305257741045493318349031346675921713745873994383889854168573689422372539795595732964797483577940558593507213651720565771008606482684161795678683141837437683444157863576132010296028369149456941071946030055384621106366944372368590014265674605500171946781624686708673135237731694361528620470971802147792174250554166540038403155483283544540089876261761367489762113963617297203679520707867726631911058730918594068636132434185771066601060307995012944183892845965199319649543848517609250237117496264190237789718099505137114082169072111346240761011838361380899530905951937066397013034749525717117842783903263915681748018190967567916170628348118880165724330662878801208657901306646954053768489125472569281548201017106295169842266099415650352515413591984670333261494510895401931764288505769232684646106940266015023925392026933982410157294100380257372688690479571724918084770935319116863273936364525344084669614206819270168629060235477391892499705004432736698289390929410209372433356805458986549649484175027474190313605359327805209837345465145973247469434901590329490408079780052360227288870769168652718692668975952103616418593418601939135089178403396101725380027280550812450261223409009703086221519333685605564695482426615612665285972112283130898845050907976821706008538876368620568771342784546655290890866984787262746172369845535523010023864810778407389873459525920112840991586839618209035081484692216682108898431994668220548102490711764984487951869363603448835438010698036674529802845160797362252790376588125064016640824897253079261801757266521211664436576543093913859247435335318740721541094029133957669574209740776885915502731180182472877323864621830725665809429882153611574475637041149371143698247132519633876335850241310495903246674862315308721216941540802398132404099535562483536124994169348516576518082946255881846960150389327223572984397920560749871140861746804273838914293845166244991569389323575266451377577328379671213252096400454044066257545344898216289279193997016804976800112121041274189547486260446271162018648207641479269785726885719343388828820414788876805485400048927170058839846345319017499544439751342692269971980210184404570477991243481386677758830742229631040348303009351343778759270042973762793359827099771193095064300666513245117471529692768529388946635832710381391363035657385915817552101027692809524962907955084193151251317914641244600822634111090198158198326702413143924214679419855973597131235882875176507819276410137615678832025772783596295372429256819556427664080096165755131519593011518921261120539380368210791465775711519470845214706717595189743008682604460743961765022390754741536383908873585372606862519388658373549289257955890785798839092760830159378959012763065992269471062293143543257108325421058521544339276913752123982363812168684778841577724307622910466183009578219636569953331042187961523658232955011335448043613746306799157480441782697354876306444168780552646494971524616327571530532975164793723807606567517120644098615845387222072654975565250965628268011073631480573231189857887458108327271879814050697560963259118941023784325087451626933796087209752834864036076929840402389464404332953891897961566924743322449955891409681703517696076203822050813427945498140518170983764942124512176363160589046061082539025685429070520312339444292273996719426021158011029648092804461975820758039778048615206010455764474092646011003515207505383930522698994148817333631138980445935023610173265616287794526661374196116218459128230310600720765556061447387856289698465581547719046316173958906105928715843140473065434572645500169188911252324607634941363276834046424725094074655953930706691720807875764682390214149403925773145554536017903382379844355779723735716686774715932407359334816862918447344342355913381128833401214113050678114087748658302877913564931366767275000293109850640229700411318896356375605585242072123924914483032445217354952991707344554814895893982873009571095816106994819775101856051472976968551371742097926697193836424774587559347253411557398147587361363049310373361375019443568243844221290269116764833869582365754047259492004014044332210641516473565951410945496825061986434847001800528025136741141628941350597110809513603978316267535234253943238065842862027149458329631564608993291227616873514659575607958868873224929831735693893857480763044084069649089175713123554790522098257937403629564478677598885424330870493816077157914731992362506486484158499517595416935825697679770409612894902977790699562587908143874634544706232162042765570240718292346442411540890220447759775856032719283435116473611568333038289049326814459105173657909491154661763948664829763453344661849633736048513345119861542400911710591548042947432179505931856281853474225995276126050539493678795651127820670297510056521305846802865280678376098615108795767557559787018905292577691677941769499665499194094137362381341797064376099867029007041103801458892722468833594684680779377820882980484023657269334066411776836698532895861379906377134336718938647353036222547896868099329870527524862824467364549520264445227099122723534575313528642954333334787486676913689455320572091845938104276379611255370776978142765741175920690443394940625466915222928736073809059056822322706954220086490398661709630007362986993636918602261977721878570945947292123399420587736479017772927860646210607458032328731823439723519403404469821062977764863590889380043455960836819596779025518022058453652080576922594807059030449536494792240978520945315637507104502995983489785822711224530669423297548376901388925076170057949497655540077824964217341788021809020673900542542690836541587463934468655615515785103147778212279483665033927528830660172065163774438490680121975803198665200123199538505463589784354397118782652894309704520472485066544512297653364615777331955557944024405466520731034291770221098246567546588181874038425712778179730546662642618505815879253726448082359949733956379617277777971860252618771089803315200041207193121624868940923722065637733717879990135799004390838353042104952612853213422592014246671297404930285747735120320985920602394962219730779852740318020201176347577171325428122169856492395634558925380551353250599656505390438388482812611482367843344575879262903875528132792885487799144539751597448320870434710987388433923798391029359655257094879788927973171426233720033195146847604591855819548258110561200929846922028671018203518110231331832657188958568861223033166639209393857304420811431516094701383670905616748066234180536725058377832363144270142859271259710700928701345022445386466779628142672724726448161736389479876763323619696443443219139744637223807819056631500345045719925609405894308839562013866519916173510067628756975703220899785374871767109678019514364602894251823188242895100355305739647450773799783891801532443914321729982983479891401606289085445528243551851138660760621014920592630366608594315306808085438178705756846726248750859032399756592756335960022993670839068407751651841199737425835203053221780960879723200013599713002281804578615104449837626131562568260225642724725417146769965239170202995496575972708708004863821668561794046065019460744272977394692081148747400378659974833622065883100576879292124397060336064033625632248715817951149427003834116803679518307808192755789678219646196200437817146626149160125065543963237442771271942442218450980210416867568365480856451731290425560309389495720199070847388765839491608132739618236839203254724222698828832037065567334137613558186726511987619466842791628378224855636447818470757368014763517923987097911904794412030426718118738594113854378916596202281322272755637422037099542358438466833414701504181456065564171944771304430313242996542333212008347978668807215672750078664848197328239804816206539265851807469142295442193805566878313253944304841957666230387956232056189899989465808857307941273246185993910021420463466474354566427508662869193568730274773236879498834042518677208401186155451101625491354161035461811292551417058618903245007082664239020252966830310177179397071986639903771847260723274027628870383091149003554510269572655706086212705419569425908018342250239937695046752590642942663658807008317115978847985782369200228543041314321170741935344794268673183960576878452192003749389365816844728574681717938143338877198047232637599761159781921772621942778220964216104237822584362510293558231323003222497633669206706017060814203578930264965869633478900564066148028870866037202007803442171685593188534171368950516293422023878933550682134637287954879736034353702848340827999481674083388474929327545128920654649518885444261488150961972828086356549679912368078836359454661963291785591886371678509238758052284562486579758235622443575471839239142162413248096901456429421775081419536771631871699267082375981532456837424040358810897128055658833525070007634020120704803261253488451123154692608026143677890493309112967185010347737948847641273956429592587984393590333323014390817441764065739130892491815009323017075221330601010163764238705801316225166952941924169975129529303614539837618427077701287542091992760571408337193587356789524751420313917401787293348648453141579521274225647105136430389704673689613257426746278159249865088067448991103212303201573747259687281993599443052921159871739079785558794161541111022008227626244608663363018417433808813165959060618642943032806449387231025671453671634777078289769651428607940245877038223173663259666400087340896185808977908597617685621363800965720935977152392493220564620533256227860238109302411696220037418515880835804351776937810610422119875113090416045584625438839782901110960212135476106544865736684673263070175760314577023876030916773869376633585678661842327035319667195218002383303906576363821705779007518175267207428000624098035275330198879421837875897672039831521497337783004186565213724945329837432405775940557508723403490119101423936856342267525566899240271995864901897143562239389040478660917172386870151261906862770404909448968737804328659082253451055170267367283248225157294292223158241824866028215320062787317825619202436161517031575729152046539856151038412722294336119474697377918775045254365794713516842054561622769204386503969922009936256949947483917418747918768809650703167324889962600662519735959522022222217146799105053571840005093334415225004744049500834884311336007776582423918081350511975479956362726786380031833225019217913487279810744818771975063557997772932423796620555549713397012827894798763591289051162457057907740836919790800243136010798082371383882279950368291095727448616200505263894993818823091936868377353288011888567049478905315108713319841320925557955267120450464905559969328551960935818018318169333144502370437052241840912264103299294963138513028775236673786312867810973990270935430743908603624990160769081326985361855017353788917880927480351231705809637913252432092482056177992621154069222804865816224810749419368184449064026980777868021603158720303291944836594695586392469324649032059606317256048750406564391287510120046631140820120490944321985542355354987682493198093841716900970250640145070398436486025973296644885272209449145935691344355789504078671525377804815283624208231453521609759610750477534847630859691021948197106798863170921219770227313894751555706954575433016846129769610861024653926959410116136978032803055407177802050359045866766958915407135622578152332473101888734110885145485483871408011282197142401211739659836587483541444896371197078002641394315272272781056156972455408951665128964254927537021828513536328466132557116579377733314478824376849991088610627797331433126372828851751782211006752672699318716938747555716669804727502067807891591310535623666307833602282303692273691746070802923924184154155492882165025808776162213915760982614348714898224253086875245026938487268517246054305962354271788573873999552624984553824943791765120079333372394363266925895341404824469438847308366782663163100460169501694020850173258158504110299635841928829205690431249759916523703722201039625262687548727390418829962969749266747368428585003264781639519078331926328095498025996772761324621013860069551262027233891819421538338898504163742437149772290609079962513224835473075003874125987461560161543392985961618890278773704720300215051090297011335752780509947477716997811951524107747232240691459333343944686521901804180579032200136203912122425031085772815453994466319917214033887763998015296105833920074303903182068555948832580844330230594793300514967533169369488178164141317431497772033981071306997860593079625056416196330644690774998547669497075865858001214801147249085652185729586553179031626367658352467343035781367901615379443724175125291173959422300264822711721740675962178031796611866017251202630993978587176836133180757157868604339983863560113152841548111403875802119936607831207321283246231347808543706976063796154873098010962151911255684736392523923749518639598452548790000203517559861232455762446335418622649173611057654954223372219898892415793296853627926962512120068591248517662424312956956368280130130875967735577767259153945607260080082516668159028691368865145187645546804020892682441649313438714155573097284031723933444932042074631479078086711468401458453326553091374032465950585105973015103638410603692886279727806891637855182013409627322814412226672871018295316070064792288931164977505643724688722071977821266736832522999401265713579452142523084536489351163060810454457098452348050534302260708356685193486988164609836782661911132931475451733803491889293801532941563937849501673737076231493963860003704685282146682038769981547116163940824681119900669358772977819828917728694387177626202096287314071069418761331719675724422100936446391519009732031313602809438689753245167479987285009671092783359529085164268999182857746408745187475863348914279182024700691488299022906013628655396907464123554129083958446615446925254532891272285098900418767812347015647331437805716035023121407155027075048514380675410294159919985172568412226175648048423763426752969419977478973104219368535640167307074178463662017700853453632425804075415171569567025809111386212933178985775313692329388787578470739869724333143553288476165144308484841213993652051696245854925483286063441330626418126408197413199614672527802104871770400072326808953114414611256137788184323644781381150277882617404684939883155139078933535624854999188575948238252873383052909696183353282462293779250684943908972118821849076098172210076681803927000796878061077284259210239989914978992012714982308825712120422413164381934388509333774160973185142206158858281092639475211146669989482951940521936238934404730452651135874406925146572151269820312315643891895570839073960841623325345113283750054649331287155534239472706021950999398940629133339340922085528677985547122340602376488931448879594924810693567366023684258730435933393016306897858120758992122882302986530861015701522056827895343271446353175099072202408521961336888693240339653016206836022550420699633105290948674314534045314618345217084708994705334757828225241808531951109447631180958615544530681198423223913468389026249607813950875760643318235825729993287379471487446412478118490732073019314230668988765401840912375966602845738389055140234921117828958069606936434203408348343904139667482283663848336540329567471308830144175663943381639539179482473013233721823678923491284298334895978452909384488049046186818025680664296031163387703191747739776066882832171575669157122257283834309345905981717048450140489390840877918496076540705370330468154192716930883436677206733911832291357587775173590181737933585682454218313039659171340520476454076986800073042966727496826722337517452775234321838836880959979171995625102995904914363808398218923520706292770371000590514490768512444963852377037327013867357022287699117601680918798018243170158318441526709547093543620760127829062435619214872736334921768708160209232334540200965595964126462253381299931904914720054921862824977128271027856876836072465316705995087097027556186399374946555240867245860045392846883555170601472665237144904418448413586586169757341012271848384069728182611259735607938962117225831679595910670597718461795424349563369038975860959018481020657570448024634003246462413646053066367642546822539484992808920189031199503523219914146123115070194073119627605110885517945237796454498010026080109295465828919875176008439522207054632668621766511123527192792901123302463851913864110469489799900457126239109402188427083695758954023137903848989762221356816366929413474570730047175890394988993709143231020574745542550102830021411098073024426793709412739411690736947337142614563784914796689649250696005778518172282370468987521044552164912451266973966369370930166023699451497795689267282475619919701877382058024619264119399637956973841325542888741254805165254367931227134720887746087018389875428334734926583981782456502144868168631096400748011038514002295533328903592499211287159103945846861757381692676106372325815743743970363850865565858159754250003726718282430731181916740938100686862109240127873310326498708913837829003434463733041133261529400633507042677318286080282191856445002801581898253872518927436125750971168835157239216948424578400050998264280841508968360393899593473477515790829569484797973646014981453173744445832830488746874680133214601209976255895350723118777872966834472773652477484851788263997642594052708275229976354293763989980346944830962496797555724870515337051811438323094997150813541763338635090350668038091481990559346914985849489238242675837427897360162351522154280933666525061699011425603575108326065988962506511241269600659309706859280994968665091876987423637566814497570045947832456450235685054352641875607369050415154288565528667680330825649153728322570966279418332775647482433657574776411683035997682737478416116421373526010424181889928732463898683886106757732760711274719318334738621579127995490444380051393218397813878542702926961197335130945499332016111122185485851379242436360687634813161418688362850171261009971189855566755563853528907478381740180777952632256815274884306768670711928910096346130178706870315492278607826749095268031413650569209669840016700700636199541158339033674939784151370605225027623833972244733178683626055512094991993967572480447620267601104836669648193071480069413672789057642115691598828904613261375774844795459376049403413607284247818287802240332696223457735045485791154191394050992669210170994128940720679647299030910616681998649065065353355307546887806372862084713752531567188849270680127340797135083495345931113608219252418469860385886503230551044955866050130759054221115843962466433027661235046783423295473088702520956345590663862512561209400221530197045065612945899634805806852341088256361423732253323707407572035427049691277113041448398957165761020112761090788231703592824018115950496381958487491213593626359741192349925396260291021208649761248374631261430842853905043755803699692237120401691581104073853225433686438614797734903863616082407373766981315567279965764383768982531165897450367200993971324947733336271896645343506766724983206117450673455713285249855420123688587740916862781731443718402852346802315018900838027174900835479092684658278489764744430263757484167018220464970705854725688869208454653667324135552579855850975071055359273920163694593791193227871853671043530476074851387520240668127679551613772503990225837827991169336169008818350397948575069099144851371992120420174003604776837532688277115177242725400943475298770463127719420243674768010353044174327266958485199105756429244217808386257662801585316879573537964092507576108881756940208859223035470698089007163628196581878911451037790499928512691619293819307552241939859326605021261922541372149341365351342277873138879095211810979913612533144816761276760957579648895476881362127682554536460522703506779317060205021139265988540594325208038494630074817209942201891054550468419949995253185343531227721229536532410169915185549193439722941811361898314593853682442060776424935528711798649601859864394382720565712591389763276035367159509866543931667025924944546866796897597620929133425114440674978341338253500965638035108252780629940687739639726278787970615462022903444563791825846879445035155594452392081450777958340709258030437788327979466904792857700029415463055559216482596670755237532096812642824834561252665351230719579819394944047633454063716087263999255037953289670900465760706140032337065317224911252952852490072660742118831842389724525559258890164497194620726132884665028104964711891066046170606947690052477208633380453319845689215273579487356463656226487214584816822241823974238438115983482310197380964985148239995901483974200003277250862997548193593175735927020435246110034770892560250561992602513921178094553826762505585252558917888843266464753505016063464519593871289094507029974403094043729186824222673339525369750990905228804791470341076195076970926850814896099084964146574641889553278663129381614670253607992311514705089861415979128977278243741921721506751406668391617355603329801895930900289418734510119250593671678686124588393989456337972212610971149072805056142787936629945390764927802972805917622296631509161290236789569652604393107195128081733972272115705830154515131373511137140033228867442588359208772512675993642459401871336261972343279941523174479507724224385618071846882251518139040841539427567058952049560328431378049633709920771327104719005595314195115099239598093674581255135294347032109630742116281783308447433351522027298093167278213335992402837440641390572500366337508317703866291286077358431206341036688613541256145366527495108914137797905058893353875590629937396898089438107951337343962248599783479997106667133184357360864273745536528623955433228174583196922517545708137049374818591157928528238388537022084030437279512816585145256769900297657427815154818080043053934199607152993395932614519622449574981907088914359741745368576180700017250797112956106549763058045732351907400739012000736974902067538042248349765593931316564723977511739772646026166521827417603157033878449862999398413600144717891726540410193746393436752314673154166086594022400695918962968178142074794003070515607115598105152661966859306142475756658188028196073620141414150436421700719570292996772001736875487542061002407846233821069792695604127580537802500876457629886248549974083532218573767757470692988343266804471893900848483850659769513973157531067425264754419302619731219504410852983398762758015533932413909960855312594967460820635728613502997716446930515263008005926246839074631501846030026069277550030066911508539594765939020367802758688775769047198477370262448052669503204055821138942105275955424794112573798660437269616225053800262231436632193890012333558933257448827514464631635676431771095608130144370271578606606860516060077531229882310711351209062333420719471933145455073158664261552881162055107382965635252262208845460202037759521593205904934929920913102049556475099065581282149469751565718509944397672656363185572155985627752919764422841084263652576464749067087537425020563207382294101030287319076769673882491173718516405944471824146381133466331038144809455154832559829109886800910306179457607646891222482875451217658475955011838739815455649942085665716172529523810676252629456394655843655092537822087074034545161796102837999412496916337935555735627142421248760520788214599878422055963047686065937900404843907483781897735459412153118622996088011965507464046325934406311962181656201471995399636251016107592835801880936635198578184645216137031551449104520207173484140961550774336442906735734100414093430329729818207912360343644261636048669128999465266205718634787482103208271036835212174601014035250385703471178304029240416569274508539867550098713683065765183466364121609835573605010099105043728179068281764306914323875022475294431566284126229385563526019116758809564561859495449111696721122442373739016836328465217987477602266606437959425702722219744635528101085968204018928553910650022638591461779669531960847875918118729503071562315771130174426318177817353655116970332491577937274433178719159715774594922456175359538868315333957789143126631893875264659458115051675665872308160610445066398474920097910155818027084992222737799626138744280898873140673271817574309689161022052965687862082464446912154122393328317106538339815831956183515072788562419896778714579311785887530233094839415165537419469486664873572762936351070660190007200698454888913244015108517621839046040484260383196322822157480521971246242636786203402175768254348796633418747099151066411259024454657074917451766533135249319440973743523760256962908413397423215632404277870462032995071472783356104618370603210105960039430585265116782872220003113876121219170646091656404392974017375137256064531449648258537444870153770933540789144442885901571306377194855613026167135522565066902560027938812560161804688170505413023033370735674073870407361135505037491289853191373345027471057874077588137440688110484692464431146788842089552527783747440345666169458547289789694008572134859460986400162278227317011157998401237593942754291472779373055770964368115998729498232971543796013731756646461037309015075107288896820057283485566738950105376389287645208576818536936210694661806399194879337309229976730757636325809451625374569195878665593675263694783947573554407361512657036269351469076065733974219484337095507721615068370689182999737828412792887530525265763337796220177984881691758720782456188695031375083687798457738894128079082307049917381748931190961876108796078047443987883431573893273681969710288706490845234880211965399172870090130490178690160382732385823108937154264657246268669200581308210206652954995998005810743645807532605512715687817888771259519936512214613318618267101430352072488036059209592983336802265106766829178512077420377767690759821070855281046073054714216481949533354971808958682931936426603503011798991526082719684765646051568298251421222651817740997916091364206103608553209454845005180099864932031501239262897367081434786444324266893316978040425540256141789097665267631218671664605003427581258909900917328414375756254961857663677034841380770446955962013313257222772641801924564617749429575501127386078727126191350450826796708396046902920853334181492408550968093632085691619391916304392587312280654207166646353871084244626433751737269990487184881684734486325788887708911631382947120320860634130952423394200160880682908092297713655219884120771770816734151671249506782858277294593835306115989979883228091981293620764846705445441986274269159666462862318168020809571509920540323870739827875285398925360436293887999420384568815126410054273269145411946435884869241650377003771522502612524280709775098670471133557994368206683468322966029472469216612094473441076232180348900940412975501933250963653937706335315087740541015125825826590702755212926073694257703812075117819930595934442539236697807354206678875965878985824443240461010330347599720721673340102641582034711869530857548297067675814595373016180012227213738763335985643867331722242050509868362443608059713413745779495482056367413583703720246436977219797680440675222468255043922501658034624263328425275841100480789580552761536106638718542216294489352013064938764734280951186228758980469505703325836699108734733274711656053688725794818887057797881583771371571535808524529560409555547726503117633896731041061138419574575436296162397692603415101446516566669158439948011379021393655044932787036256369675884096295352800165546245055002080112918137419297751728421403983212166020464324762045476727631274746797461147626746048872140020209745434286721732563523314822017919827772657228238636162788937967548482058449790198364699837807133537493282814448069526250203706009857116046796662032293856508624439601637019933664251613679206235586845872096016062336216057489649940325254738426941988833092007925055240396595249350064025295442982087761065304246110565810007604358569665838922803646327204820916674778732359243943545770860031001454213508977738744108294288894872455005822496599173009939641281848558664528002358029283791940953696230329501555985976704498460027109227462302600271583240307447005799040074410803936830851988161890801219429331280822781307117565188032720562839531762409339861253487663686457374281721497429925009177730693518135441626304869761130959909245381153911310287890647392287523578401532516437544136464047862923085022046176245906163387654698504750375570916919039692578912685099000666065672733584463966327034613102541009324120073969618677792748655826130206744658338962788924676852949408941245838930947353487293898340227918254294385080976400727353962121505902690078884610314072191584771041106469234275553079999604267256530070359978521303642900698014919969563010814614647737393333564509697415998611153234641701275265373548186540739332707004309928955762971443346778474560787038545199943728029890072890175355411685928492257194579368695788600401539652568318658581102117668764766310305555812369536509830896148294616425263872773484852708341774033575962408377727743742774963841039892739314498502323463597715120766785280464371840019695178742528158524563407429532217552765729723027846690230446220307916216868038726097423191718023259201771423633859820767964898158316962828087018017130602852387681625898867090925722737029823539797976185695574051580100917383678868646042190133569989739887713237154486066437712465738937068551537654604714377020770783454346660779410110255650310098270351250448086639376616905667023757370194959654648101482504107518828527930628502370663754643730277666028238940919701899631990346676178740190640702752251618269948441276940570608317128794661186076819403101193844471134030662303451119494874470120085560363179375422780548573931343812367601647327888882677959136132340556762762843764152187794001143545283064276827219028947192640575002843305078916015854093935493662442436733487563081520424780793761050018209862029026541004303398915455051688508336627090182057121678504749707394635414739253704072545023055194566498529622650001861049180939389253517502857662924915331488859651758137242846660602758302988123832543773713434226473683956275496380626056439795722397628696508978319600325925717125722452763564560656162851398466005319991684219158552481898801214555496099136641869501826325044034098117704986279520905401625140836247137435901731023239546835753940185847929472128986872530204033354389705035185588739834014200565784739002976233056049900168381781564558707836429238852345691195689721367105168382112074610245199516598038440761413583048020946582126744721459561176788414652830175759172109648299930385156056251471022903139561280405862930224115127378394308999734631493234921969594610870315612514594081621588090014593349639010375045713264572855966891022280097290243691037850312551278392502247617986424298676996635520428813450561771424475585744600521063357075257272031221799298955518998700352159176820416078937407485526295505471571486770746450115945318575185913056568852819307108821489283733025068885987921639421504604688811189747151220613592544945060662253481928319646337703843852546410887284877664008909905661262685760527989105378206075669387597472981746073895678624288689870602985081232523990395251748372656586922195643465921213432143708081085038437794905026470194688211021124411051223546207392620333778538663826222931174755118099190484446238339752651602671482327801111770839525580129734030146256429286064894328533941260721099893133349354877809186873371509339196504930910372341642602672171779806184406246663250958962188944385730814869316215716361110754025802983786643082468382937529835150815532621321131610960100945998242701123855363762789828224889971747831347222087329757372501669955191607313242124034448891905214408326089296497177023547680308314649286897811979725448334310373419264792841633929470146813722215658752918755264843267110160026538712966925582605244814117455003396704386610742202468956014831032472484602303292918864935608274568356442594451425559609240089070470650472168939641436076238686614806617023767091448851922194936367559301301108627564747204828845701391597772188573478895990271524069998922214007972208505619382258839187437811923573451538367038685054696900977315140764154109392632167112971660521982495049644536607576667165224932971953560189317066025777268727237410458447692624589033692383927747209511909544617463385067440166946911981063078149610487850007451694185362635090636243849537757933510390921521501354243417584140612600094305942050454513544026372260799204169214455280958267362644110246863892207883331419415134076518890502173721689393066317548993339918250844798648096116933231495183945253039905695118531727841418387302774670509053833651502959801092944315954482297831591095398119381770603222333889860113655697563410295746117056278806112052075776072834815820160577798647567527697899712265221250479132413561318117435603112997125529338669443837383626498066569135577137576503036195060077013644424306885376142764680808472673896626197661904172118527415742478141124765971264442385667684720299139021430431508779894917123651745637203883621104865697390073058896349578496792671169527430253035055012953324925868098634098079701598338226096567186913076941606435615507701119610642452339190043568843625286214185715269916625192914975457793391789872428201507004592978080758673139028528479528286662637179315117534656680242077874022701179292953627625632946932833511798418037504307317660210983799077256115839600073981211536037839009139512257394105626126404617480369869940260977246478862323054120618339051122799281800746488874368239170964201793643661425789410772148509859733716566253184542828348153264404492251781005546542986849377486196526012519212569436699750129411784412060332438215779596782490336003929504136358957174900418753825275765605905110706633894959038012036508443422253642031296560540074942037739411955927260255393669711981821776318641408714068688742014809022858880851562713584028985634332158309675544042284832459921007453342730376078020812280071112231368061467713942038249222633769257391345788399305816473462910968912183171013820793097139888630070831473572297900513687052675340795898302123712659993954964536282701312160940692852327452388536398420052091098048711558981114051301803605479002381915989451620523961877830336973048680710927010407266776729619759287775192328467257100127526855000997412716778772717188927595109542428054085207979925003606297793144762939167028335269118773923462715084650185724122571215797063103002226272142305140215760120101030353342562475563142946332276363688705980802735261135342040412178005458871401308095770021178006665836813191334589778026178869490128574776050046744601101745256717617092427202170914338718686951662852254614427430063064391036159012972246017055949942887826883819990508597630110287433032102859014953306825393728555869144829811163523179690087959415993471284942036008383339754352384013670700070180394814217537330835698665330487457670702409295383151708874743468972310196643230466380736230843440692869274077249635996024350769408417432035004567010824543023131905260586606666352775301655340445990467024921170647328357127200373374976494830599911623844681113864245452893698098425157273691054978183791524610821988414856003547947339288746949430015345836171548408528967257533718472674272007215595983836549660669112847604409953526561305258120510889271966116645193820249551297505674735513038918419287732655084382306651139034806415318754758107057001046965642555838006250823394433870582026691134318787048617048013207343471018862383261228104573118212302696600240039285717020817190711350665873826010405350280702028973299926981533176752255357563939449943366008569935059725007839752554289882839539544289344283687851525395830891937402733434016823797167310620957967671441846666162341161552970390564985923958452826937725299239186346366683253303756325850066402446013000187271468203972733469095664836589771430676941293795477705797373260978079092044926256596739688654950248827885332356616446572880931748116356519211364150198246994690866378897182094799352640936017248375379462692976657252737028111236952541767470464202029514528925030208783350575982186906901747623067720001928693454320603855904383537246376519342179058364604759366561140916331771108595792551168131333739514050225947233779050051785506708232569419597484705788532134149006965472924204453021168363903706704290545444426509026452704077748366995011447822697679885134256331096300965975005942894422168986071054281250973348646865453942492146563698918851585134174750441751857197540335766234349648748618003064630962287085831944644751231076148156991265789100786755294934759260745725268009699211149326356571254520054184850784099203920426970912831432276690084893236313728674479161658361038354067928002648853388012629594359134779794167160715098019955546744814398548889224045131273476845207075180066428354704571341027369291943047006546316219134359952753513630712440608480524369126219009873527866452815800624717594052970218687232127711588438913391909611645651926660407743629421841044791816378836537883406994748223386261301190393475316045206577612013914946280144828658742589544353517148775314075528249809690516977687831522137015167943034866063718852276400961407259017767420610524208756934407641917362078703512469481543454210970988600057433187535017100441468258682878503998509479630238438749759099824155359652925220088802339945299806696699542590681788878655023149569479233853389533510503061647768834515261521118968313649115649242275143451104670913339022782670145502263318044630661503059073107165125433650842375377254301868480420756912367931964634984303332904836121425880483260099711918248631822879848165181807695185542119178090157879421780403382994729546823768974802156368137586075174706994617220216051347587406379850562930974938758376005096620074678070145682264414541335997789720936149669608130712253682989483305922787526109800765959913901290356970621322800624276295564305638495853439906223582161241083378945534735224286947428550940304739170820290546579795578057184193253703815638531482838101881139783478207846978140068147810962784538805076373317652883349103989813578720782348273720149705160478298977749622870059897490701698823730162899767492883935936555949374770380111419252863806244717383294874766499650802715455934180944480426904729059039472847378653611267798731506765266102317218847836553757166484077637692584901244551981896705672451490887259325059616570481420292179059498964502984933105186820147008910070639524122273611917033330640359388894860996872798136432651409533320509722386473093205065292530672246507247133463549755492496513522151561397792898442883128420420460588561427546559286938829530747999657904171435223983846406610749200705795011131133896883993146716667590455054065450360737763010723820745756864963548941232401499833822435697252462578867327564946614837275905185091113096515312589926205727395877745703671565468094706309490066878250838723763659964144700619489049183575552293946587015420849211296824148661247887947340018265656463540567148050154215090671794219299081345195006638397718377649743779032932244214199689193438270568182968632607346479798969501001772152696886085479937414056526510774235788576304695615612794026713559189316757652101846991209534333883600724306709206725537061995997476963006070287381399456422301213233509586967687566688639507106059764033090428188721207110906996111504203980649793989185524507237477509714101694454657803874916174856615996462811651030138611461930890618302357749207877212736473297854630041139302399940970254736287145093790045532854942658667794053161015396990486159657542229512847243501295916135435780824807553487699107359693458769674955637971418007581865052170456998764845034387186969015828469287270369808599875732954862209000018078647940727395249963039329858856040252497024434465284203371060363014316480887969459458928013345995948665672015554485920681418347850347716519271250763067533346915250981923714005830782800645556344235372666904943882671988788058840792875169970851283242212215102762204562560385022318403240275582144484264618358725336579159184035170072474664032134976323136605499878674239724484403399809081807983272265712057628868538383732279534206886558292618852115451533559871789836717293670358651472768753926628931117509514546638134956489603363026823627833642689908191307440839076550893184631354119649308994809882750888954468945100852659681137873036211992087101454107060502013667467935394758335822113047912503520597579962290088650495036203038653732825832248338367994790630361354203544834246588186856679944144509547257999857905720361833484220175513948772970759195440352261043671120584384746869077537294571664227244950094718021338065440258321300489531734595715057474427987110287152058541598496581583057076472521743625036249851140985247831249132074038316473669687262123481949061366929566960674753955617807614980364736470135696802962114263661021004613107936784143977309497570465536406030061195497978743601585683806502593413459401324739129548835433415262732875951136187750242960657381870512467886491148753938758952428951919894102708379194018958693028210684608142807231152593389045594640001640281381942913543471829534373154167758816742108564447365771893991416755630804515472964827257846147514386717777154334314497101268078381981019819224330625069493606948690211365176788716606723072616848277278286922820712892173127864904476392486491979420180222464969955937678390069182450951095485254223016924128305518228889209056011793541305653501724229441745294157575667676488128776646586426659898601328437377937102813380752609197522634771172714775015234854243482762299617526947583456381580632636182652067644655517540856848268682977863803470098844189722131795718504435927870922578234425645535869052794126907052208226463608577447411221770233354807542118116117758068162398288898562411734537987073777848507824994203484686193938235526915502514945756648061922655965895731541428395132269805328923462498307702142437597022988918997421763891676218352195086270244315313110453125508022288583436387239283868634167263375021798462755144747327384603590638647955448413324097117691583550763517280424995896519506336018071403160960637726436504205134937511361802633263937478046100078440474799868172316552096085460405607149782632858231167410655770079508810118531061512172979669293030885158702995314157834274511151909872293682248905441082673315870914481674358780567742688118794233622151754439635564368335723657164906207799499894263135044254932157118726054617010987184135882579027837652341713302533829310772365235507977568739474769074572149876516042622220346983445572756348221823754599537835559323669497022313133599753046447535162578881648560863341629861714387260856854470398365757575741036556622527499665673791993080299527933039949321791020487531215670034566161352300212957003236952401269624540678119361846002969961000825281484371736881603807990742447348698053128582636555476489272565537167840327494303361941792784226053257727484241453588062280848704001920195852037961526936752605614950369580407443527457958839796000311031462725752170227735358065914811693216345408775391895041651198915287633130255874334608385808372180917710026161696855990422387878258963885295488609717024486077585028854005619445121330896137805744263919006556302868713863389772955696942745778639856946077303212998137370009611605741077908671040610378132658207363509548633988020285556843668347832054662204167891484677906380806280042301806938457652189826339645942295469196008602598216769889147129322007498735130935431832248115058202263453337317476332256444459172469265750190358575045538228257513896194320167755608541838005407537483494164459451091434252210208788521394529538248190805573208211549628655342398601792220578510922408548077592573779977748626448418747604145887808561447357816441657237168274271074339638535374552029595079690666150271359794712795777021019116062935143319203645770929292037327365320640824603486347996755282698152338987408783950827094573922943401789535883580666236480563022363118411213327354055820511600321885030646399217746239449460143494269129889252396206505768095115260108314102337447282826342056719652151931685534072266529575864681999866715054606274480879304852424560341643474137440076213971377265710045386203547842667311101891918584697871290131617733612264745988275029137164508344567536577533010006849660657242316906777406034252016483386327824219547081249859356986691750858072847254273599850900636652015345489442046402120508699420169604775038941900478865446877618910392103064023573186265433683262241120236487499116393513930277360122378689905321286892182412247829803783974436871022314491475569785108162313242326987982243220549128957879209341069131863124641392024355436954406023394451357186240534527820215044000328742811324985686835058270837577399336256428572099024502430748058431122156958767111447020332585572428880177443605409492155537562611600966151931196672250217090861402874533397108423339949162189407364677022647704572055318665464016778433240479604725951471968717545438965163264611691209362268128381689656189080828305143113787156651503747705665791624503659092044707216025855545474920197550891256481164983562505601243499404141068388771400214723992061703860316248321656083902008197803624022156812418659191536393093899696462634075613621304035304344126435595438840474914125351717629379684739975690835825900762040663994760847678902468841341915087969305626251887071965188021239500966836399062516943549657025029368037065789054849103632973647219154903297666883427582576730591936791720056963387303843818198562339441488806185584639330052158685475093702303318635797827300193225479919273582177906107316033320647063528628576893968552554390360320623759645862291108950361677248542725315968416288500643050986506261577595067015369482481258511646882148433193896856151926091817359838045286846411180928302356489988167118492755892849305319950136176422915487995859578799584471368669354403637994260829851136787936480919201997706883120033822520539760440524794960349787185168942763767702849191238162787542431125383664545045185087380637693435691917996723961846714709171996095786833355745993168791301034606852392105411153558326039975505481417078101094283050593134683016524067419182269132742274559220553822620156867167601020038031937987210448961814418733730269788092178574463999582849220422064799037552262243266154236492066969575859324321450371676682793886417828915847056459169722723876745736262134140683119064335118101718087865806512852070201634846869319123798041429701793421811949945132562513551079029491739346398181114301355023401112913679453815996972300006342363200628551481626594178010087120313895102030443096410606533219092997585657879251400254737124563674812433927375043090040760266783007014293315441052082248258137329359021479577342421733321328005149839510656527703113202670309063394229135154890009103585166677561373639591566225960355043926978925395672120816286188179740600938083711301940175553773529915681455500479504451462153289286068133238742965764795209741077126950236151633870710377933111090634325213959234943609299860056337552943934131215782050041226745721063950420241124215837599446789001831226702938787145781684260969668493043123234601163481173435701895748821489279687137834053415744490685596694874695955709529878751938281464581984813046848053735357813628401452929904809268691099702147391986596382719622406680108633786498103747973999320522631750131423752513443778381296861006398451706494649462279674588133746444157702361715952097550510984570479713553373968338140816401029750113860242106421794942907111647055345085207142778077823103574793291035464306060135832328632098343660458566349051712766432904102927430469419852866021935690721579215177214802408310415813552846788878958514572723453794398850221718634543726968974041923592451406718093605796386577082802472665678175120606398461894423791471914035508006549028108412516162990629194657956662903457815347650979986770705951783853579496775415622482984808624623909282811492192901764552556669582825033351069005586141182751959649792046409905382643701786584592251217777422581954754981039893760766998169866086569139356417060151355477286921545124016210083124476976918669291115276512350903835549675732379741104702990919728109659116810858171345192526193454873939876728259250249125940110417958201808013533555447624574905672501478845342584414607696258003013036622038031957888279940246190846970349576639277591282807505485699374516480666004660957166737933569885753573760529733278172792537079745122633767751629957098801132961807886172618599036738113686409058341354015242560760313978996432556400294493858133807378833850169426658827032022502822597991836772575348062827580243314023949421769582717616553273679280491229534874950873419919702834759789373473976761374786872392011148367188400943224611200670830180921122166495813443666753271005618911564338797045651064841372425041100083145946799961349790639889968742506699972316849037217860402653113104625386184753602968406020078169532918587532335655522420967588205348796414641862238200116285343511897652919281771667330829264806178033021083175260558906235235560884397713884491495459232717871153165746325217831027370687623695719415830713644627726949302907638250515282526303008611861934050189243512037195089614827417274769866764660487019347073202135769954309759809076907685868489369864397042388729150952719948136061120798726695822993152075460182322175110201373378143477951405979193206533586394945975223157836711315266144813957320771238624755476017414687697236415731608814186626892624852187386421599213040957513269515889870769043292692886639510497002030827452209982097753692173770654757790278727938493927329416316643098748188336189864850133802702862218899414565429165253583679970482768146658715716203091273233876172590657085963331993722313381750246782294286958204001985799638294388087319889602084439766522830772306639936349949517607871413356673786620481024566057155208371446389583450146077095060684985285193487818336239734296040426587426434552087648900190719282295456821475753672240067818852783328200268709963611730876436629480250524008339744073241350948229970707068569861798377791806413890365630528233520567737480878175864724837056658686730572370538382103704201374400876917449422482383640018222080606416187727541895059597727986589180473147927413206773269045634909612574407268117028395262326303221109816272439895621760773078057920361725677431695799153397374071053810021961820721455007432815409502176562769685364483950218035091506990297176615962826846095048136859967456178206677669694542247034270431381540935385593435195032313957251528699462140045062177811739377694504853576164269727486867600665513301324203198928137327975095540802558872308039115890372725204044971948702098333280998236788284595855297905908187156325924740880338947613894345033555005423895652976684089582055278197467729671354146194715199149651703661663760812807450720452868620970402514623362360377644325495044401274051100160151891576431057322779867999115027484269598551043867475627699680332783685507287305191962980194925170323435860509179320779752763427757676946320701193509483335126730519023159093467210267292332022706949046033247381245832615754279408555427116950726309065442293166794018826426480698870659875794942213198238823865129764612117489073401173620263580837687468244929114170958964685664327926935746044475665891122892532359425897117020467091961315873573687044747386106291409568372520977390997734054883636319999780171832944913480365822581289423157114019243335336681186832580894000619635690982313078863191823279140948282284129950064395464074625798985146048555479681357374981844811030556886220169190859148304409567743588099476094576133434303950259452380865738090985507436910864833961001078270638643417243841652008614889751182205687507233918680763087257230132444201072361799227877326368302231662427700864376073862020058142110558541202660036921739767094863943985501777783604598954707440016786548852746216633429008099809793030935361961334826880331738195291978919731718689427268976884729698416290165889221328819486961586753471869488063457198573834634118293323996411108518706461999599955688315414770859342670872901152158556501718701581256034274142861947581169004833477665401035684627224448690831700861486944826452426604958487513817542576588833458162097794666753115278971276497212093815397832877043083050235353642691034701348173990918632028000168639370462459849709064204566520876227625629393624857582008114887788921616891292904769599760731096602225836475556665155374489223750221534683636089795195580351467917358054704385128155494309564335129253753978326708416723490225161660650419547268402709950028978941433460944696379304917066499295458663076874952044503297908869209568515034050397590163590568790751945042210552713102417794364971587609128837774264623092221231498270202996604504210408739785937743228796858135459203524592442372403527152751156089993744594288778538080793611344051222861321919749924745451514383567361393645462379727582264353207868608003557478234037678949515536871693220310016029396954899830685313307263536170451385414057813041498232172470650899411148142260604386974617330743164847257378488159927063102458898139554489044102890665656414513370394063740945458461136257320398834560546642113302029330264745348024199930016763179639131081153470584824383734916115421565986800526271767629231540491213201278208885837641130607355092424266356860114241282011669770573201060775868899444092297414957454357862530234563758383229133482966123071195053064203539551205693849617463077573458222268525001132680000120801721051536556631641048808990977908913042106914031786919143653151757881886956301709790269235595600406866124860800483664690727663973652281079832030679693305958394957678441801074555101030782445761190010876835198145738793331366281147615953346105656710632276454008051252534509004121058009254814744992141299888293574403636918521960950302870203874062366371185638159012070058255787726372752380762591528910037600885079685937966710758702382723814943363117723648583633475512935502327063655507403609967765850900683297844158737447916111566379012935130384640055516307225845312416151199839261593076317626060105899983957246731432189245555823318810528857706248016848021626137151681742132415480805185290960666980034505465906562395876960859970467938215926771281090151342364063798013503412784650256486845695151153547070736538145432547229466967936908901737946201481414925198915108231361151381463177153749998112200267957310731438566675368304553345271510477882327690602669456701013566105168374150956499921247668707143907088468698019135228671872944470751227137486241254551996621360139273252988126050565619945823382541031569509992852158045726210958453972538399907414014562748825906627265902810785144953878090485560631217788297815303532623223518683620933361069790042889222164666374582817158635867420780964903720613460010966378703231630033112680923987827218273739288482477821861154426709034105167767456359682550951888744770064516565570697797637448555963615485322617157745102179278727285351475928603959741823562158467533890279780505878803724432646330632682065190061377460649001510693101099487396118171627260024050251080272836219684948105262217005308854967117301713688152088095276315667293161049499969154032089307620358801645082292561737117386644376281717111178525417500079670846474908101862899014275178980509872712336748476717886679639907046005798581140077308007311956755831532820225256200104422785742474818176065432205254049259712392541768007267725761950849546180966195744348515241882873574043394495203524379724757522146686926115079283122166918901785323612499010176407983387231956247387123833371869132678082814612591937378357493252762263729501161989703294169984366333770631163488233000836702004633398675546345995899021914995101565256343520061911939849564941791745254443817600237869300046753724759350414074842417298992735147182779978411279273399531164504409122592817652918423050143693122540438617371391321357669507352735462096203185855826277957422934518671229401276978214070446746209870995497412918869852062312646332319099603624619666922032937348033576942003362379200782023933938682049559234443607676317507146917207738861224882726485390542704126940722005814497561989740891668440400846764413327829767527536105606374005611164565241595068540150308364916081785555401242835511990378503034621731520373078053657357788395194282400223171168574531797131565589985952177855750386346048082862617009546356432356908165219790076219161874198237059142392623572676958817184948102992857791401043816194994200785254936758428010425118437470918081526810858597191900209060838804430626466678123640042721741134219052073584224510393562686150601072150413717879494273995457288547026079590076893526749248168719447314078742990086463866817875006911740040576309720304620314819754850560403934254093932622529760479498441826441303422115414524194714412113982530468878430697248980988934417919041967826069296720317699700295587599206748027163706240355464412204546114839194116670234552708189623354293631850346209709220706828643940580165263109169235849743806618116666972355945336468524081770799578533762662078462998608382355852429413125173325421275768302833690660070547793661477547189695869726205181208292092037016683319880652187278546276360470026479832948257830346048737069017308199228836321101474634040703111550353054871193671716638957460314925306354301808274353851867292418103836136814958459918162492046602053408172010722338566323698514848904743283266049822121053347352730425572457835843635760978949091390902252752084823954378271137352421794622082902869381220228793600780146533907792645043901536532189538706737905399971242374320801455328741992773479286848019856918165827789129225637190120979865141658541573876813370260149307239647381795328245014259399408848688047711305732262104183871719719160566996497584775294492840927734966226343502229658285919181701213138662181473654968880968431609942954625098712889842106448155516731659224486086146141360504032979287228511670822554088451397821295723356870308267770059929345542448531205374839327272050998855161270509432980243448703151691287459943415856481050529590085369045386486950135695871030736324006653287694834508441799828995434880985154660716216800445521596463003255788336547015290165830813031446392890905055447812477378132274258900002818606073976116342764755658391963643908452527762699168008575309188942493962455178985399334918344298821882008264853950549779149172472880375228646318873095894375514772085183870006622082780628866190642904996927351408045017991392665880942932529505119919759772955438261094526153826753296693089949119360046007693327182911764648161797610895006419777053563931830032838392593166760124137176929192342988815654126163513757005487687435754906859849527991290204390801973526512720620786953005071757045096378922207530296211114786612682894350031219748188559182610445965490452933524891694813612672890888579095041276528482010092040174122083738171371728166703501135610569357224960554744936160186054440187544765275813826419780658371800561137585301968269430819073109945647508763620225869221460164179517595397860622988121120578931794670962075378200561054278667480874321839586380868254233039771631685747935308683160123540757434441383676960552144758026056769292461367404611851402922707762709144556792799650719807807906993867193571496776910565965794442100669577689664951096621720517795708013560269772672505569311236241517519473633210961674283373993136205812589410188417589721993193028455173784702375731048099999497066260437014269359254551612569652472219032737193062511064812127576816889007970893644941778932131843515325914527894937748103230521024438103199270010258207071309514439610652487327872660237158063322935247787134789870798135385013110826458525793552650843201879523177852935778089198051362971597351501586987982690113702744743950624425033952055785689576405645344826626948868796901004489673021335895799850371351959933855144272834541929171573899391561736649393583357831500807235333886729754418208197523064977899977086257689415945954294893872333340532507940634821682272731235275237689571903641735930704301104544613746656894910382587225284642827350150463066582594812285274123527010666320778618386192009973017370290028190834552987120873388637383903020772150661277678222313669506516186821276037908264678797749253695428486449789033532748091474986413235490135519674932220727817931403567393355331873899426507139640435488905708728744835593845112983507880797822642049530241138401211939089033310543329853173203214756321370928292424411982810166973018841363143850540370317292748972874706236017772529997791099104546006533701992695294554333580645480800948383154381596217276252507903001721010465067585708062148399483351429068538538511206696572217101409305214402963169205930076273162579141470234975562276627944923398946164680817529471563899175506251312134344255504351372486962230055006473613090297897369111471442379860048477184672575401615276789065999889836544941795990450430002396020769216970823524932230493410539657121146198964209471529989312699886867770789481352413302562232374845699291248062737928592728803385560984510256667592509549659105852713924713543664474908402274876252682777887484776929865833280081112779421018170884738326618845493795031382254727997449169485568372528188188142493523016424667263422007514275525727253626706272967666569447704015893443549882264057516694986888320406779828273449977961872053101810545683293859794303677027551055677696145778607750561167160121965326457401929694782472513876580854463275025805877606944956486351675021137504071066375139187772509660462901934654639923396883131007822733203197170317627058495492313830557125187743545805452841772357979026494351321006617408219539963682197163619664644861129687997782949177616693702792558805904748082597383593585677488704756752778647348087899661645654800833850316716576381755786063261855325102479641068456062626083610342035307659621413852053663657002565828959848396217999425996644717506906194157401757717842720677872703334548400999222237620032220717240213906269809316262617706069644988285181352651381802681690578595145497407772200714634100958095283152793948408914052595362338283836502626205793170843537433673069591105105696655810499362937285623817010322706069422630331372579292730847710960691516259386188457522339663938571349938704747854742140261646826457579287991244337678952560628698505851880132422062633012285824939802771407563891754248295628163200089362933717443429736652136556476322496475604954663972515085059401564137331465446613443979265785289473358814892885865658382148368798260887133815629937974945962174136835501295856481938234233050769947529074238251939596238042400423193191722028479907719459723926382875968818820471542432976346117287979543755275901595722872658994105140398830252251282425046841438101105806617765299599513675063333980998545486881395243554429219708041046873665631891343050673073953761947429484644109307445011392304050086943136526060659837756289961101853704459926573888129093689082633550287472544466455317987958599160555290767277991727426325375314095658173206101168308380567321902709723405257705285985806105203822947141659381159455006343480861394191965523266144228010901152221307900124270246336301704184270742404631088587925192748907339329486505767270295105592664142550080401586501461661442929609847050989511474533659447508324909645185310446269581864601844990690506631814064997069684991661706248864795986753409647071371424265799263691550642004653678839433738512301276652367865369812986235438548156662692411883491344444605848153701775630692552671837965583038004474172666822536038379578292960323738115623173858899382189530503652985183782796235742591100865016508439554633248229668426031465057596596137512819867560982193595188277428036506260286540663309897542836314791005065428054779700317199150440683039802888219030872046410588671155299505840245243208833276991816740533541692113467324484007592484496734463884930663209793693094259289726102292927019157259968372826546679446241919080927117199610284055620807271145164688022580913963679465737855546568122857627638995922015821061704389546304806327998654730911773781341225476673598595130733789095277092080084868367240987689384682268406333212953254649102399397161584085145953539066311742985386795079818228950951227801190266873918004518908546447931558199057097549733869091245219316131473443692583425300861550386775042950900777357220932760707989226306951642958592742490161478894956870420989438539905370264619109402868823402582266806652625825092340080618251629572592179534083072412010729180241119989596717734841652260680032012275143536829907682884537165041529017874412110707325400662701978129179841917464993553002207453727244238807329445361117665325860271055627597855260769204011791630954256115971583083916518755685303818445744025700161752447133495804581051942936194082266287866226528645493632196115431870287591494563268187938363484944080132052970247178767807784096185416373689151952531842392724251149413421188965672799436775601689922868106747457023258391741242481681625857808561309747512726374735804172091717074006765497831751774598454012312248427662864380508835310413128236026194054177891391812400856849898717032283322974176643282879696168349765418360995276620874746074103473366902304572483919702507242394830490605736051219826281061983717201729855703637296078417042735109491386840637480147897982720389640105636521428564534126017156880055425411099745329586218991520666561437081085461476209550986988693312550596867557599356849031585839130855905402759902865360498934807838148637354202324961109536843076640502469613705149714442308456208869552516174779124466276993319020051415247739127933659690948616520822291083242885539569910517226151542383537552735297904870277221889595753586060092068050258501623605463057364594114369151982648945759031972467384036267021240977368650026531120292771962908966084780453763465514374135552575244818218250581927928178930937729701641215707916447658710750957609866834546670483054217042768789557374029596326193574777762193779571939551805657374355337114171603044931007590776956960630154116777539943109802655155249741879630385020720230810487512856223729737912832779149964293619204021407608831912120344646599894305320323322765191706215207112358068032981163363489578846861767718320508795450759194325874690440487315920514935214839269027954769666387529552317466795719539238222151848336821548968647270793987818008439666004052669446522913988527491762658894284601362381163708016086289243486387719611113915305919849793832583143859222076956868221375670176173141482968879228124313354684422306594909031125760835639180468748159442546783275999815059609573466030142410632660843771686503898408439871887078891087967035600525292171975342667173672697900821553478674984333068430495006932009041726742451987967150000454959175184327509878819052357185011130988001466326430942832783160408999232191234768394899868523085813447165988236734845564497443352246025321397730467039903975454024157341136194873892345868908292013000611781747643392077023565252483119299493967612690144710262213123745152402232906993970797265184682781657341463690380951184158130298533117614028764079267072006409129298363023819167772115259114586318256463565727454968200789389330960256592960957776281803816065666325324839126829165855918049492539354891468161290610364757903041269958861325304371057146722659273564921280515694149470156262365505532613645909345874496311306427698680109739999472518073490634869666718628576008737060421736795998346792468028033845462978004937902982818805266276842948714944971523168406641067150580605596530838895673092989736183885753544150135299857543398622782286656278503703779642201160983261365554925353346216234801467574354674209770870750117585258929924257676200546964221135980262921112621800198926800039323011600523317760898238528615792920759213305308612012719608014639618860095938262248443312365066192056560400962640036221122919863713063785431039962191275576770046265455211185729817936455849744862716183961148113936507500215741468027265856377617765176015654320779590084341095223436787476214623139777622643753565069908411629085563066751890080251277059287606734925608971017254898891453128729359910297769891091348503307070509651597907233816477386655934079049230667719617779022942529043137463569556523903355276801046767826172805646805199560604256097503776362269682295482421834198050101907890549202919123077670905670490788629835217490782866453079410504662569298275841210621315584591511409849758056809886292792065727191333067104353836131118545623601440321553506794067133682899072671122643038725661160417836125972638303665383087199713490849756709497237212900921867214453818269332501728359796438911115229906932649336216995405822743156576529358440926064695021452983575737070372548991714585916891407292210737547767551428152685862299263235419006923584236055603267302785078487482691138018761794114866827833019934535832306406649995626776890219085729437083700580019953290921963882380165091676184395349514039471365919853270398489814157045648902374694720163438002563957974605191429011019651083293532016176182939007460984760554376969911368309717100654734256205140854806345151002995247236388952881147533541053227521114174689178689553189689063775549488406913201808498922778475712666464564135367960018715548879513911436345171680982261441848100533962911525828524189246384790600014323016016454668953202233704662758674341837231344235133405991520427184448753354101883368684635698764097174595320867043169030067604788620295622150299583817549687057435445767230105857584564889499471236204537119098650996062436888160722003568642990093247264184881051836378323055161840786183975142753284510722751021024596548716099720545716810152624814275601684438786671361866103742083129423245514873661817261338052839530078049781073631569199727959877841379818705180513251068075868484165985912575144935355790547613256966256896562248428918646585481732523040001492829641714113228880304780776442921781724239140630792394419664712287894212532885988889798267997786203067807728619822364449900115326734256062032638432206020181609123472637219280540753125099063984256777248743554842837074803562012696537930425031529475234500146443300834660079553611143062591152843755148349604772667248977554603534294305953805516565191282006485458107468571138085559541788712062957400303614670097421391986454215551157888115535455494098689201549149676281008213907442459772735212391731626527392623053576069841456426592321790486125032838110436346016839157425846588434343011068414998669272615205956728873355395598264658970675485135243863663350151511345923245568678840761506931058190827622128165837341601385424972554201008080463601304901712052194048289748749323811570610719763192668023677407938706506155424353901127204363485160333468195016568547885754697693732507552216286974303302476334343928970813761541809010380215113889751223714644263437644277236062687150587926032679240224786863715026561901239545721096738872827372664410965556758381077565693260036090892370540929712721499593536350570008921664209499638989572650251183222129330294587552016578694261158630703007283077962373239772240530470480149256900965579197438066493345354419243063005869890854173123292919622535712798140824604513107856771938526337666173738986647572176187347970748807726375539045284318173558605187451545907529063526369231741753865509426842080146657346276684654478403844451970330107855488315471289907539121704822811347065158952014002883209715709323976620557848790570844497603959201647989592513902948748713653554396526093424453425895481560513517560045769618015760794391103686055596405487185272623799318719665499616952903928883050286900852531543823395978359805227708189233784934113144963317925700171712476462318525357124447371045919973350490965525051349141619901345394727346699996746787995284799747636264305326804559369154174021249534673112432017037365411867048609654037207880995484442500119760270804990445259975531481507906304581236237036385272081081121484504136976734708345151329209817011507061432141576400456252637680382714811639538213062301559952660452069518916969597103933654695456715949339420004059973101870566109599214317898815887314420651101196929088329180578316019256339412550661336812845375437148672151435069859962189453256899594434277120992428184629464956095953818020060729516641006660464409599296345661202230866475417181940627152192217843631391264997985600471543898687505973321690075913098887022858065468373444190037140209687629017318092330669213015571644269072285135689118845420973392614904279417619151448620186318857273354293502844590364871594440417286650577184881043103685597993094426638481490735737528005743002612039715202220733183781696388088486558492267803584724824399759066618395890481343775322272121248508592364713089793307942150818693581374961096499330150234143091477302275099668663657804491247052578421705616283262372854186435748215386020502911530663006180996948720184842998014681794661560687834574715156110606584271813037787587877855636224390583253162278593437345387098167188032884690636393161206047976154977558101215011999421135732885247432473602274059388463749423100277443461152376467756985039588151091143594363753317090400535760972180660622349679361307608648660636765349273624672282834519447708909018102062594096354859950660158119165656307396799959728915997317887652543864138731150556665389943091694903570002305204900386126141598550735690226005932607101425254757786571538374928194959998179930451626879470639664940190035569359244824790298347578999149177096597499348491789996999240351381666471700502045540914146593278209720352019460247241273892751288387421410074638621749413921487682403906651874192522244820128206877417272263441057136057633961046161779791170566623204203309985222788441210773676645170779389886717466373559348767303378875229213225874301436060036659936074894838779170913342507596675011174551367603178569335166952750925165968094559894088225230086116506025696905081915315228272258600890284229286337358942493333420430656832767419056820142305341576931878923102814817170183767600608740359365855933666237072208449315412831786143530523904121613064728920924725012328180346453050020132233616863458033822037277464526587133084932944700879317305990226527560102177155868966013774022516735775166986158636587323368802153774107071163561898833719650044956919891894802641942211085350265336371241096460828839474227932618416305413383032949933886031924283993164014218115757635171892433274431880536588772322370553416648205750236257314212558868187672205867691351731162124056546338509606360857459922156149636032806822636845977910364195880887653456381922047537084311328277263926424268271015557795451061192410596995715326670490815290479977765613936176327540250041536949439140262246994624092764058383854341558985282397272650168811692811387519930144234666832928783400234777497926287660472013454015963384618564901264696202692947184871402955617769293846698093528715487828144451146158186068858488110171707045434697407285115446394344546917229730751140364752571744570346790046167934853584765882124454041883529177792474906082598559209252686383098907360903671410704267133703488439915827454486125743284099690003243147700539253601349767533040468552026237525725802096748123153906371333089715779266515637459737787491064769011336819523090395749831498325300289107043621235955491071115671215191795292476493023282365805118059471183905683009963483840308376238307177367578003360074136688116409551567628712008725786472552705766999839293278654198751005647837419806613028059335898031456845333144745314950828498482682511782102957883210520975062177325342564251079404396666128204635098580354713260980059783356915845808046771835827488191696800606642845646674149871378997916597619561984987659821386074419967170048124653989538061837240520453292172818711288007427835142298837420383717104984934109486487920555292850000355858722898420093774418937735234096234931432277918038243497291568921652487051700506563693990108588649619761876827195059398907601153731269584754508090082122555160466964613675901686342501925550651564105406959560340655312363061790178015350031569193751240168498461233381720491722626885369725843029422229967597958812414139917084866058200503786647668267144038682880477437960869740049633084986592859802895437610598271606329941078931641690258127543720372262999645041596455663935997486058378777085428226304226343618346952595539035113720737914252226254100242609045063346782474421269769997334563853699195731115733050031412214793967943337863635223223875458932594466282503012282885149771557867356617979999930937832601653593508031583726117678353565703731374452419928697892577305632391117786952687772425829952445469201445137303878281094811230972933071102258722661840312109717222089230851751394051722693891726051653013968546256936101261243163939910717487025936816543228076849792596956185380260969687605292207298382228987009752659891741462044514758736621894646238140115613069455472374730626198612595739001975660510850035056600099771322163957284646556325685623136781128768192600890946406886154650263493702553042547353213031396459275998489645314768675763885006877022236081483284563296573722038103903384351867354795064759717575151992013777373633874260961368790722541295464642824191133502294845111809986910283051365938319083125625222537891458911619127372952948573661515421177237858360525101202520651534180058019048307887255980763892254371429084236275009183659183555217220299960805840419448833550874652892935427199036926077556148501280432118566408109912709988693879604602001294136039386653368919259270445770723886197982678608336888322979671507028905408489672198073548176141240439617349606685251110701259421305739364660752073968170622981645392105888412807783950381878366433334216709052647907825450304092188673486750827452898682293580854052771806344388083773045162074771799047823347952984003182746309234567814886108856678938912086282571819413253290108616427207557578250097049226008047235802679198518317237336580892982767860850174396283038132949048559379329538865775875810619347434040518599848241182631815242542353899659510098769188260759974507201223165257558768008115696301578836834796477586498347096454360815360933731120150796324832641965239923963559962522548316674833631830141969196318089954200263905971237766895345162316705657455399262571839032990499112163017351606053426425063302335748374329330407764113870870782427603927951122163176755096318146283227872674540588571431814119444499614565797009497109481201380177524729097243316702155227071978465522658163288366887652897106013356538092964733593026613943637927682053463655127520671480600230007740877591727354386165227943430394120840513143690037058914845306383373139872467074908669288882535359902053741169703122636219227973005877629710255333330802218725853545906989813710602802010648891425494123393344596318604087505470616839318298081202129134633100905285595926531356755538806857249977961554163824622365410155295093405693720290904715939796908329368657983779679373980232596704594213889181156014484601965460655349962361913495273131602831537917428874279547789621647676810406039382583474152824836759705633055000479520248160038077638988313022031396068050484481170058133276212254328853435419849773136806167517413611348549292734937413436926089943409940293837004830825622955671833889808437008060194017088967017171358798205279179138695804162617000501042383679346884665648138701551210751030325054370930369878070878614635791718320260839143599775206329863973343779995323058419373873222581512230751165784923433573380298045582654916964719899857061782425491677343941094078775530654776968173405069100778342362816785661922231163224606994609365868827778514971424810321452074714239210498911134951930141542083983061549165293586343570843330806289339410826248385269660394371895477490776802361159965851542209824249830663959147320259700822405247168288918650311490965009777601975166131924309179699809537972793160758689488339324297425233299600012384574059551685859590293611381580190904694098482039641923651832762449090644339660186961578709177335733082923404862649651560068828725463132900516270455151210689258289905808191862946419047994972522885538640539836862728083752737510058700968045266277904461410211753180372502162721463943232099384586819856940274929022993844459583786327003478415596270194378690612577194049127524094044357310790816447751450251726323858268432953154507913553005975144470987987072081005161946531645261724768860431938156055198239960858589441017369667453355091267155133187022394171770650057019091980842158069219285852090017671622606304373633778598040140935522708942969736280686258448802286309837649441400204065968087041697066518517249599089233652967181361732945658704247174144604319474173223243578494009480530495581155059645310241841949671567031133482062716489948785182989249306263734926276873699623483295213171552079689451319603477785272448287487776905346969104662505722340452468664229352356425846124851152274909789790871818006989414711935085982728455774479035112420329394198011571111465811689833329244470706485820720685093616978963988734067210171934617387684271091422919020253431972611494232176500156526367826363953139760574803775450587989231640972792524816580821179984940804056168027862474456461881296567766502245388835353093662474042506937693800580535241246313591705575945490049227094075048012350061548952236653008608837340219546598654344644771031946252872142423850050147165786581870170909444715636999478364685107038591893883939173363363123861186760854500963171408175734364208106381476031270523162289048826886119715406303720730913757096483369289751123636163733628137676318877941490878752516832769076215450319788378261190293634728039228212751179671279994858666516767294684247448991940050443435993062662787540539282748943250546955658048463356968615105082993225884246794634404104096626302302679878846473391072854188946783948104402551778496162789509562412527499171285896802921845780932508544220783215291137784534940170862774671364299741318415651068015545148495838344470070732034686978013649292969313436180145273484162241706761214867831529894336697277715088416331137166632134441786555184907239175048430582515774374335862592184440309485781989084528179497409746019240371207676026329991932046039118023039850387086527970323749922584718773413923728439791424589353626731966321834846735296723006936958931733552564265722793102141286373513292001609037205722042530783490182376275619600230885187164700255173493317736929221257342485503679397311448120444074264072541580693868638452068976195688318726754148280755655997613111372060088346835507154740141308398868537955175102312319471826521446990319840730681699017148804310288917567655215489282416467850189014526693057366434028589744300706612522579936618592480874240337730073899944187677252011515641544955841616545108367910049006062200226943283162292588913536447044097522578787852402670775162829642719809196900323418319116507369935830354236843038705053625535573759237449234357931810495301380532372429615929366842979199076679165239759869621740963075352784918230086028816675009807642474532552596357543261618405952828600890002266404463751323861270196320047191885119897398664838307878772638770293295133389005523576777915212592377250416054794721815710614389136115030063031566916250692245175234404738334259013749149704791708662182338295614729815914565021165763939868251894738850326721398354011467988252095691229530201738271453226189889582789011721585937769139233809409513369665679145432939953030274909290364978683765400139283834527196428277717572037549258560374821504239039951274954431286732079569883047528612952049646092256985185531723330761562164452200409628653760961957694836467817326768743953557777189959187450684964211742822623276239440983866673869575206308589149429806593241333130087892495833587607409267583208599273053412314021517003671959829965400228289671044150975179972961473257293900535744429110708401582220066794259281463511302421288129965972498640151375466363360657955678560381648929031123900402701798043524980780742445095552821143185156761365427498446363546881697545839760255941192069420099233852073700337507065065724237688931390798334503629268820556203278492226013330719519280617970246855099606359598725874362623139784088943710268071433335874874300139900425921834907549120271248887480913119698468941899004016741133417239955554162864436079496762723742322961413254823131423483320751749481644505175305972221114083418671667830309309458494037988769927243322243836644245047460272294219674137742361168328904585804043050253360006141762784720470063826191432668512253948711246369478803824296185112886151313648461406278148526281718962522820419718126623196343707212710413789003274644984565595260124044736932615116604104446238552126938418308938672226749363660869510810097392890975453412977134164929987288692650826640892928501689389023180923376846561051378894925057094072859356977205452323453067583744349870479337705103503177806432433147372615231573149919199013252422552684964928107940833477340334870530262550328786966766162241530677664232219190324519646493827756389890837023354986014195136349889662718084947152300995144830366737388855463552869597869166478584455898859700590035343869402149581359727580533825505143787722911221360785546884346183844429471127476449695996102889260797216511593442086761815109366003214046935270057133422341561376363424839081578391661495680738915234838492185492998275697739636629368176276456123481022240158955738132352431011525237401935908435038277396148175481625282975909874044624294644391641125803075210937318552201682568183011468214521743628101772765344205712275843011363778989111828477557630329635155476920229555019580336711400414887145126328903713391156204075485173020972880833885998151043471048652301937740160559379903451673275519014448370550560423897808795660328275168081531684953095580797040718015959673787856961040338776582293175659496278775104198797962443535211604416743342038146985101905661970884520202020932345721806694053431221912259984827295747259875681948075378158826046999907959349116891765434705119571490103532994618474120023202390924941281635291030443806633606701696143229173616764431823106709145761574141605774425276325730272140344901763771801573147647980561840327990051404615372882055397261877686697119910585689661365558362808031067478172976360122800816586440836812126796820759775999426718131567920776181519852603386728057691402550326592082603027839656530832660074460347269770367292790945732901874286335297931281698400800115240116533717838901133332645372790690473855820772354611854311036169442275028504115793491534799223141086372565488239797802503547424722939285297222087418298918584607983061964941661365862377854441543865959880518864739659075315363985997622319202976082429119526000645892968459703276818965641478233059883176332008488628879494059437082422064487192323951398423748030993378932617241536927791259877121146418243097712145934074575797210417234512408975504177071671751731712285436108876826974955636379650339194706165562634639443095697477955147999799740940495194262740526480118394179997633032858330578779049082532481152391601903205134999259720915876496858949620725300442897116742846816096967152178151386774147154179433377846334641004396977564634369459755888025308003530590364255033982909089306662495081304503973711418092125652281969562478971500847338220781654583022487916618275133031452723161340276166307793205879523160999111116376002100342086508293853581702103444170481115939091895769595577041925250095034288352542620626457968339150352969393148777117376003630323347979111116850147843335608176444942292950770522929335772681285015469888384620252020787810529908399999968111612112543757267594006271473309021689426504736906931078535311560234472765935416752478014062432647754252856919522071044726601722021042745086875957159062306563809685679203515159406591749447107103849279907993480124892514515952987809061565824809361134645370729279243399541545194521885076280428531696399679247735699355595023033027639351160098434540232703883281574569242757158065905387319110081515547060173860453399777884036409584404922898244563268187292006228732365468276845162645736390016685046518054319406311490386410555472756227658889221268234427925792139891053679859491107817008178189863806749738129931715722540298841708463703084419262493290326158212995425617412809575265040433608627651948586649862757975107944606464735881259603556324164884489624713780023605211964064903382898772424730816619169976686600801722970085255111912867796385411004194072871766187068392790356691948629022083878632559501273648298212355769410023566504489491947285563678758616229821025746359303811959764329430110042915523850819805584247461568551216728531749995548035451726198615357769533164888978998868667766734159596252065071503295684868007135555849748264764860942906813032365254526798826811303739459563174767268679352163127578189117244321491782253718456977006501739507552552079374708036583012639655368380914272836228470148768600229932967150499453958559483339958005026879334214022264672218846671483214293569083289796596901759759363477869125780759182397459807780526456240117435708763008243132578327050119081269993884315332437294427852003848121676852377008308078705830114286407041504749103006983450042789048214126560025784174719292806898895434870244868869364114154366793957278204705367852106039884177881568406905780170515893054515483952596485504728546543170612255576200411347428800515661812307721394298538284206914472147286233759192584842593403492645645660308707359470809004457791551097869925848090776804929035289072756146566064667364776449217742828696925585584141678932329030007181737843538871368273495759846176114986093242882315799296695894165584904879985926479867172286109191390169201235984881885677065762133691154803448411320327653932068047661809995775800889243923457611971639176549766677608951354566142850564975824112301178438746888562275943535308606059185501891960934359375702956023942824030765573722994579060169031568796989826959784079373302962853794197420887869373391074013992325935021048676918638568147048814607252867596423015976528053730442668323645844272609469912453912605738759685742872184264057700498047440769017532366950716968859647511179797329684321984085966250088328128940742274267929581870259617574233161915411906060995916657854588714671881384197166900508276416834680979657991586035478836221387159504248226753327816880164632876505656014198117883294713471053082409139263654457948540993531138096068990557407554257699330254483710914251290088349755098474770511800262189856919721417434759359616995523725344656329115854928091534013725426579955041406969943283363769096266565110167127635997497594276581959683200159504802683268768913451413136217419334892560094665517781606204655588251258433070232580991831905937411201006536744886740802840658921186770705925329847856039066894528797118439458828885021161479589242916366772883944789849823671669460047467950149843495705225419486271095839947983137611735377255819220582952256622510464627176624324319773907151397680528147611794144691664817753148042903865672319734756355780842586996653536673188543842420813093440571739637569082671543441910557448210278090852180359986870736300275488262784880263306132072124774574446844386041203385657584392368146928461219163882013716198735507971094424910409957625978085392695566009372219411563920127087583070209981991577722069678442942333204994346772789605863490359614975553259917871693327781353703782788468760845163513531608062345219117801682720478570211363503205090562396403018281313789141799158282341953393742278011816780154363440624767989208602747314313985754188891488244715371300027255782078559215290343411446061123921690937323221002525993327704625328186231437992600328459461794259204065482352989935070899832664457358828920628272509446399448929751685659795734965545801683228420082624571592339668754857505983797106917139127713817207615763890948846265615104304010270639529078955306221739927654072240170874157769262259640022698813301119273201533716412488424805215393935208205368095563953085778325687001891752190476503183275600523601573616636190933794579711680089115457802036409017270856396302554849171614078710419959558937167876096575133130168417095883803552188181541615446969597823372282827236552204630368177296463523874285668379981741080108303445147598562650776037643729432103832695352022397338661066278570046086244700986646076602114229896899620160634053739904010222507962587832914681961430934658096092179323439266250281301683137625597284530140299163723207118654051360888781790445062069293269420752214511891714335062093035171064574774663156902966550847736792663611076450768632659721267109610994378698932712327874279763038658482989661759389025165746962621086208173466601988893980126045489899517073345871891200383090845545851914967026861667511864791906149192458620983679078614114941317235395703398720867653895672602940444318642512169910432342955195850160230982529261359398693558293108701739203028314653214479788508227354198080122791149800750409135721488487752607840408593949028081597268451424532461331254057386962637945426388559358530904770519232006942889806179437486628632352184677827393171924107982395568727844421873235419441662438716334672529736969193797857725376291937511676835287851116211519252610097815811393779443869544986047903765643727464281697319612617434193485926716667535024315198738023662820514722429126964538641290020236113082223519183097080495703501479969805244301913822221138313136050932778662611609975250303233132448499831351553898788197510540745549468578145595010701911403128612484173473551455986577506690718355942005023417867205295506814798487434729082326825731345624856754354719580144408690396140031348889882239538371952876340702347927255295078667733094077861318492318878850651030909349219684984973748479317988241091975990586548720619835799839417272313806100864468350924612284483365157801506778731828875927977816696955343903383404582286365108624240985144421523201635070290404027466094505156748585416977592407861851663371829441412508044491936639641097322437639886729936845909928638988808988822768268532810652411443994836965584813495265131582572088183053135962441075711615262943789707968073632820879070186433577856161832759662736923878136283792564339000985713135943308419259013440892782519156666417731727220979913689430532417048427748839815766355612724001727449672155224649915003314148949511013648015404876353454229168654210616012244158687991943571278266261448275282692471745850987079783676760137370730355546030388680021805622638864759645280931552620721906370992630307424384268920435545822759039147445665294374384025039698329286904690663668987334657774751592835821412673314510248788693371799597576849973374802859539086948742275554233296278344040132590712127045253405993270569358662882338099372163684260153282999123908279730337610482732460314577218288870634344633405219731361198808857828529548512239912457924836391377808130590836116806966574792088399924890355830959454097922606481611354949002134206775364672994265882985136044964700093317492434736286887946340632725468382031304836966035778668677049859775520307848639898580955877103151690914695853315388958990095592768955027964279346987290725258184884858282266190801997841118591186774917464403523951181619498440583807206019709283490748939746694443220754728509879522475241385625602013816014299993103408778127092958334666117410982160694950431991040554137975198300845827216660474549526095596998415746276767992651593934773426394019962306364307104547440256595643805812540613087608627677801097164181946138212885721409777586568713353115856549186811972849186437233986983250724151485909602667991987634105464521947600914936841928603523830646360928278430796937864739162720997082604259622190666199745460044218588615046059005248303347228389309733272950902210831863880174777898842875053008979172696906250993002963235271374996931462466946499930743890685405015448300179072351425137481974592556041073666657192471148836736033618307571194222326229905068828484781935938126992575312175270117648865012246203683683359891850146358737349310444000487158352752084040248760413854886810855391989004471320658468041053861934189849658323131493308538885550985679990997092437305684649919746638029113470196181549071645696643841122457605981470474837249466537161002026302556400247476743748080510736393582384353481912071119820335821060842116981284664663713546539336541619835104669053620283651820540137102243946085648142177914519237674484587088785312043583717179629343358741220949697905699718731614939910936168139609462017657526791600499247888762053974463533762974691996980136555058804274047402041516264967557700704316981077475183135668030633722318288661746983077876551169686463218248434865636852507510886951888497061580680321692365481350495635133947934495198562422107808736780104629721219760394785459837747987598995036538890788352894593157004248217524174608992282320170792829493147853474539073948295910198869056712687611555955305416793616176933033490743400838016874091672126884135839587304603928462756905047321158437368603931886182998567023849570183540216130004838105458925099134647357861548914839151234116499105564255576853211159192986899856671140903315626318083395406256498777675518148767961390534863106024245991359271041267142703339069492085323766676539932702674590955748994387093099270706790879566445899615866487814704736776968571565868986795413164136861064256913250499235260548499104039848429252423958161280417018995364219610353794348948997145724110025707978736253476449428125703656844079575644684174545203862729332709905574609810124732547378759234304952078859915692799055086851704091907171726709018943843661324597836840944900775132787306044979018914535926164474658890910070185143837715528145091460298821821071238395553191068890548735370649990416730841456450368682796110910458412241881258329420511932208498239500462698401157630358460410260563422889874481922868345400280841952596658509433891627519752969822822908415825785539338718438651674920860917689120912437915257848515813599459000040628117365278089939685184943987946844710264634203671910927659622842507443908447525633027227390984092861870824927960734826728382628791170602773396519046408555110409091438078894390361637900725871107676083101080628587886306732631424285751440023170526883916723374534300144386871383862908973004359176293458626570994883394625292933900126445205748655729710260203325238761370960084881489333370994427596403362940589584607384047135506413130155170678146919782371757960302012341231883667683462546115044365830897367854735039881082465719766134668376946097248466323267412253328444850514572036556692305040330799427563060691099661654363844333548852858588698860074505763258919410418605267082412179922942697453757143594206594355912410201042407223683205399622696888678068134419422260042108842355672155584845333976019568103537456826998303423971375268758338910156547616455675497315783058314481577330145174445690972074271601047920379197072982807210921817885418540521888914436501194109924776906119686513655240628935663963988523200578366528910271820207481835958142029045427588822493888886132183408555490007762947786474169179220114083396926802302822186171756968397158699411953986371218666021958619987106515556045582831788647186091290317203899620339438579702569383099089145518308420809242981661888753603268535816032613477704461170303321970365721814855298406862626595677950526935766376984351070375761016953844371299337169764338779368471918936855337046394210059521985637260102860739301391227634166675684155596579731272930771952922047208155609751697928317331671078216478121781349412185957892202985039726978406458123715527630468314048613248619517971477128287175295434971834168108664417921000141240314382161801294572798955101218094755822890325550479716403498782922432490103953956048719554364091626933349837705378833251214931211060766026495273446042641755721692102632748137436573080246519877904821277687940987455655295868375195466549529561867379864023003751604366164409714551812792779107268027204329188444533501209782028819030122980478885337635543479188739551244274553666230262844275868578514244824791592423719148989163484789746077932738235249101466718166594105517951418412719641350350861467130674636195725955328139123639992150483376601958741049593162487768558059765783149273831753513930626502608278693649414512632729032116159047601821279749807618579398539581589042384304094709109477094225972343564632479748827584308989787630087018415391250205149974429014750433056460939846642635080140491466217095050376018754403567373729739358834260456161575347432384983482313419745719204119159835943952407752918440344969745945500947090881088990634459515547404359959428254719563719641941082468630037092199764073922540332136915243379952973034468649822452529779807770693907619821505312273544961261501962699175690728372193313235865753887483258465684529557289037938106488843911632270531052124067030501997321667617725774167739004246922533394715513404233586490833591043460215623364649740511241956027923655578250348614045921889686491947858783364294163641397746839820853706155686772813610242290195604426169395688386566807838270382998689547429623018966174243726357751009119253251397076641213711018818688109952486244558192901668370022007767729628048671385173158771820744007878418054937864842986416329589153401587982066326474972459393939620616710097835370224528168404341067578671671938269361193505727218345421260100528268320804152937863045393432268980659350573293466106549361505918797315551901972220719797784679413197806770276211137571303494926003978241201437661572951570172719852916697661145863930940039900565269799516020744174795088995783879687749814581542886396753397372364173156562055024555203045508505765320133296414651465023364224606914172269245550983737110167680510696239830457635858395099600106586718804459409708884969873092263565791433058530050332540065441830159281154915715429287241049403419832264473671429043616796660985001667620028730981418808544718201816690959685517581763521854231762649448696060742119397396311346631924642236187015508072501104862839850083647829977741276227195026771965140922252403488416657902770905144121934080648636568199199016488095031464129677010084462269548239564346508348161924644353579977717856205553214032201052978024279078072943407074348486250479229509195758370285207938738498173161435165294466172243033414002111215511190824561707930202305139791745628945066470895558310740318935009846808904740645040182082770684923126977362249553663710956841392824888534016800110152185177597841424003620509954014210556710082749048547847888453349698245152007152326243981212145374289097921815990473564493506666559585310384869941366171048677846805640985005001359847825555688318656701598629116963762700371367039972746947538735222728931562471112163953895066232801979399436746668795778364158304442709157730251334979992979944363985713046382163895814703916639444462944918987622968808925919089402489765112114664767924108150610140629230906528838528713478559887907783973174022522972425025444608213909982760904926451118059642277152081591852584672492752200041560751975432718968862307509877963721637271670666070330044298278932669554956678062309251640465973731052967793207258053603490934224937099616570952242358170283268749699133128477361005274265276823350343265213431183953219393114513012953581104154194417845034829579788368011531569101468471272459554349227632606990367257987968958180846788537433981894981165463701474602725098892243866780869740955682595493142026986421545399694148416170407499922839800110594456647340579766395429725688070923616131325724388446712321411043880551630025931132918099741668828470699196564717294003656068466927256453749512759289651343222338476199905776865538229940095613853733757842241234203265570222867311840897699245956452177624950791231551040272614836768690865135574072101369592692601648686431386597270853512301080370604535478990972595807379707871307831772115335124378813463412486829867426887976152566109783433829737599029404059389736713921403493952588817924455151268592112989475544685897706845488556921850806997389725521052920322350234189903404296443461145559497134262240472899501873006612408882778859002552233218722519883797387086260596563969052459129857924069919619377766843601925549808403804266545112952588903559395541469374948873955993119185803534926611849600541392005881890166860727106538340821355705414520036930800924095180325623248494009130646356312335704362030919744107449764643407509478635925560536020251443800509305317758221262361962139457686722835952392603793216926812618587163026874150795170214734247717660010671577098586607095791957832866393690715819080900715153784405920133783573528343194381304366945741366590891932418577475293197422174310737152544954652437188422471343946455690686513783753812963022938356458940993778737240915207602437109484254016626109998915641207244350705943185004521564790199051147837603122008404251674870209618865441228395646570610358249048993117800189257453642531020328249192236096681836796971813228884779652273418839928950610571543045399480771709731702838252301646245875224220259825336876615818670425668865967504670421518790535296065448043224908824728538892205223001122932249973222476108975790231341717167741180788222672570993414391124048183352137049453208124941470923464079736132304515480140823193245126494583588868636851325287229042913864662005936556242035208662571987478024356923588915075701798035757307247423801658390578312280975245327060202612469859720725217527495322874603171233050282698916112632284419064295006949424040063065772425894940097526148149517534672212861561741612581661014742742173924251374882161494997305890582563885129356067660652073441210176954887053755833171283839558593274850981933262053375350236568318071154082657071646054018526416827858922618345565327406337392388683724539531688908384081684827557437373742127783655309041285138726725025654447398156844448344861254104354195206193479029470837807784128433876579767367124712585172087628020212056517858405032068206727746241972403407292645565042336003157125724939182525686109391350285595842085496836392665207640087790357742092093516433744631017681878350089658220910371399245630128066400404640438497314413196658829918091668242906258713772752446742244951657494447977464719602879100622494138588882614768953113798260213958532790612277092459117241313092781745628707284361260313983850424138836892574221489618997447640813335180248160735890111764718365808783841030348558630346180797649620320207502469365963072645437667583777855740483236022330241325891625870836303425576957439745647778442439703418509794003219627721783986555464815130374082973812740852144532315021857229566737313856396718628196909398174131643903148470274880684932788102268594210733057429004502370214773137574678800724078289429847445593286726321709558992215104315894373097089784515583144955245687776272561410544757314651091695118938223881064597656304066843878212326080405903553616846843590273442283763861508789074806205800670615493493309971544972918948959801692317770069394376149928959782085039088707779527015337854583876712317036540322940117887847056466976396580147649180778694713691940030910037878733298158641694750508923960345062520273684215903538210964100747355465302796519555827507923851570279910532603654631051901625361792776188253187967515321813156207577192267265744487469250340243346106992257670148077068087746248959384663281326118565254693473363589294227400950962351864464525827342783383336247784680028328014603330152842172044304036914841838964028269940891226060044167247764973582752397460197311270112900597495743535133743128954375651623449815837009756164602516148964260057097915830236892656070951284602646539352822561966302532603783531104183347261505188784823465599561556349283844623738671198251216753886827886968788277783030863496924949850760506928975162955775441597672026728160005188053395669317022827752498004246435928280791899969248117332466356794752262931385551881473519823363731984163921808260568996176175485832351081588484680935301707726585782096381386158308117302189642343857984281026002396511631246714651593622842542638631313973722549159855528455315814990815500459836066180010507326361887634356748167151158061292136131509143415225266185753631064791409617261213958773639165611447612589510664813227309160692115861573857423474671557001429737848608290464699791847843093595578848718191382466114610920310292822332625454023205890139428121124825629077208884838864487601377989214562254813601666654426817891173115835073649559587494235227550817349532412362403570250607535172826413736584289495492842619728028038125587440723168251004486594061385525238623111410287707829560557138408038252218383826572151103282894672336988519310197981478420309967724183728971132865653129959558994893239367875976400746270201451488466141263449394458472460944816727475729569760730306661696180852132579574061955686748303343751163451956925189442768285602256572232763978560978978531547771295711938732043234600126866251869921440544269226754837073185056447866304046878037649269229094321101043501772691510805951770073888449812470806718627605581301956096249263828638506561146890243935496952370038334941170397648918901422741160741750376133054474596605019197398355031909127197178758955351835660497254145606672101002445429705090811686434884585852440101626964340918171291491881116979683162102831537470047619640248636837520482577196359430820020543572006761916306771781892967495107573321470029450791249572123766550756440370556898350796057439026318694565045703095939524814763457231816583739713136109199878796994178166071611299030249614458260295659637280086528882777934415608499834937738902040182133071506170644795291658349678967223005555306208918137842358923344935650906027749315395392992537922261689770010312864208060216509099393134261047205097013722228279642894402826912785512535239273475920771038056850227305974183013956370885652302476645262402588815828136433954150592968001506953205855967227194283339977669889784556661341982654006595608906771256711576765897726819193435531033947313429147069742631714931889116877840828839809555980095232283534625115085800797958589043352908011908661492121514480497555607833915617963640777148919684663918248975325027794786458368215655246256306187521265089166647493700143510557281814697581288967750899187283077351519633113912993151651081357304464263814463129885537479499193870481674202323510923219751834022989369124467889921698605379862206172278039921455324156239054108649906106591811708147915325215997149374451007787176025403940182139687603530083961412943327137879235267685542723204299232536559037699810004213335889632614929375370837883445326109928527767446610937950908809458722241466669355950797687508359444143217957703017791546431223032008205395006043264087591523880540696160186487102470107506932339711056533088762461836630777539849474821475772495315560337732951674332103310703757501354704294103893658319160278587067659123325535263543340107458587422748601092548679138502264875884644330296964027327457650091102311728372219208302341818152693283623489226247196788313565135972381894843231236420848771707324734674161081545840293970271477143517327995246902873646001617803791019045363966469870021986757307052082937072361851012735575996566965225628431282543282797127904479272539631162969804614561300280616146351139040203529890877140693904596010399015107276833812144409898026508194278708572918900915413021246159365885009736766424823316346387592638950340969988801938956095406278848722339294372081733542215098821368000534304572981840753944140694409109734815304238418194497237867734517827530743084019073015502833055317604442647328313140744930645092869268412420569529564959930678891612235616115761920648412828025055075117743427705837802491314013823332041330130975872036879946186779570408304189098537751051734059785309769743464711256407882980898129178471147052502844675877549028629286131836313863803191993358366080401379680399474137931216380207286574749402063711061895346301994600058977690691840083204517934562451986805443425877887268892871448546571909917772672490873831498394988270547989902527169402554967631618123129809532039215820453659777237553492025969131404344015656653951896797706672515043857519426670724953450742951348350624277223551674236767756183552197975299505902269740193161254447195759500168726144967529381958571112453872324393885969792461210506104826676084297748576919269337832793280625477659906314398832492063599257973192341519455025248255666146433460723221578263917838231118223975163380398261148391004359435270052464454056623439939882720583377772037159974660545389307962485960040870755945716945950140695197241659948019537581833871577389132115450368835773625376745907613093640764484965798352080735077039802057886257563666332845916345925531611553834549018027995667695701152025184858086520758632088329582211754327717193657320418158636397526277897559265484530362900451968557625880950005208670435113523544717773482491424970941977822612450919929340601671240179706308108792074546062666571862722557333218223339558444445462251738632974543809033117849220153264735227552618428677171530998760012914274692992725971542219502876448096349049689342126405591677526217684582305404942952910010503413639685899513501776735132359662678934129150991172425083398874355708930635615030234859979980066683512441989120100275923353614362378634269878457545531005005260789158070824434511515566261411844238113792729937496004052827045478750580306460379865545021032765474114790879606057694157285618204928818685513430744307405726752235895717207237336926863174229419793288963998575119129057948258504098103146184209718965269649918614731540764692248341620079302186071853632741898665860365249164551375722088603111824233100826932835085937276754280135100750345488810178509297172768178476432006475007458284582890991484257104028766985750532365588773758750635915571272385551916666329976350039692462143456432580792221404850403960152375919209222386231505687949375980090673770748127611166829181317466899171363146551730772295091428452616961111471107613246187158092035508753838584004959926206605801767693482405814378170809662083426302293891369846611406843270942616255230119813804873662754287905192224552782699677699047449637187751923956208297007638531520097209431563297610031575993036272894018177445069820269686773223351290012810237151321765431463898503836672761507317487175656438310322980072033829462643915130758941688043015758967784542960258235781877023294577896718563514241102842110999984560704238054038371111369089076491841227369539296377269219941821486147852036512907108584264068908585158791399151897808981482682016794469339261077085609260073353067676630094717094652730065867644345724660601577612078091266057101574014276415034452622315798118662085335010662828029604055243451692540375173953894672182421216189619937784076664110308927750412748857417839628633698242478758861534189012529393687312987742354814814730642474602896389016204871760282277278265318515707312249314064275251499609164655336346788894324513481977515925814073003025953149728599641739618377493641642566830901888723525578065806486636751239489127590549383837631541297290921075734619301224367644018235528555196269654765118342218540350424124231352634146011915073905217741409757780866095932157083462529083091133165948687849010217170528532656924231652159779888040236826026855814138209657640101343276658256420449812482763234967613854639837302594803145219486578187231860605466403808374668184672019323623141833342025091691881915937365002153234126993770923370720834435266612462645019936320660542512273068531562770805894319732691076689804856245223105691695816267292686027171834711163025979427956380303673085808144217695526419109656475373829053880738897572982703465907223437495111820383000752964947516519416604982283162014328682354548054905265277007290571017596172841004640394728122932333484429299832958180809558212168428436102006345227833538847005530479562882080556939683278690004675729105275606729394746817423700953121608943644423059938640911709050707515789990813084295791653250570622519289656634661123875973346843542978407891288931388504947167130025029224649994413445950468258536241799192622400453913694226266840239672815557948721495051283265244128699876815543511941683667217153428159659914225025607347405088342749482871228721606906256709712466804281808455113457723014482446632088096848292284329517965836900420391722997288972302700617999012898160236936475167736527477723217620729855961083234191167958220929024665639023378272766026200151694882872433544396814035429275845691004341226894202137989489762902228346483957451113816747820383750918315751737737270678071080082564615470597300677195994599568609374665336125273503832441588994603132634900375545462769317794741540351390548120836578633937301658629648326231935271238732847397922125465302945888824029480465589795363117304306086669091802546827455759573453124179750403566532774261627230062361099798303455796971954130453256566501543029610696315055364727873496424571898047557884327746659601476662155504796232986165700860318391192389194328204081007882260606278343839671890083184356805434851865131536284500179316763878935413716931202076406874865992660785788447557209595103796924952646693355629322278790875843237680021446402880526735794112400205447168324358320246571477374063056871861892448338103620660481361695893784877373777935160989387445124163590118020263843669178745533436543033361890996905647686532362739921256608185361678468032595834306178271407234602430258390727507504023507273576631069001341101171957609326586531664260859315680204031834894754735294863860736509615507938276663986719879648246378417922087039853384872665924633740083683570477181870587352880767362388506538539185397138789669652968941663213759019918823993441224451944471359407959670991822923861750950090542997738247214204664891502506792836288443769572813443123808916424105610508883582138447549373110078344070878960139571610829166057238303863843070654804937511393164996314144933532812723907817351179990494058404523377741266182324312473573680198512282979002740709873402245839241857972914073928169587148565652358900619958256308750843086292047901671563378246506944769998354634372797990127446994062180412958891569128865393632903112652402183643849865220046474236126876334331029699745582568647292600664779140332521178055613350868800086495742934758623398657148325670194864230599164261762705198677825899093488115502852454120680397979736748806119516082429464652274754911047975531108750925296162920239479727662247313358577178177496879111495510983655471914936934502868321880199859881295879764793109822802226714759222678740219564026013637833724927273824922393607895095438508057754576523929150051761240265819909814203454512823377119739017421193299598553320577044291874727900776531308979293172548873012783852226788275404532825970763620389834467670302830103318369698751972587470122467791294692336544608812457772323828108066027346962476438020317539461028950025400332692573931215560297435197873068486463243983517404490664168057522827830462881962153413202969889191445899208508887911060299049729976578327438986474394465304784231421173044987728502547156500670988449592532986719082872816749768152469511679913640158571679230735995032058957955806879975805057580761610581690223561174797031459826913429068801792800850529677199037375647856501740450522302743680764180727492974782566728988656876594066414576563814083453337768581326715433740757855499240592911181107350284701124366059875846840173819456708958526592311208748228106173702231014575791174563941797224317152001682155370705513552947524091182083982861630638039323363456225231474558341614903013292518717724929207912447401066217459729105929694942922856863808658139459109081246253232833030249652768175141925761566486017046058787649362168876490961127063568604822851285535019750213774779558599974077999928653042102297199675613654704840110723513192554446079048711820058631113554622758051290926319234110828557758502878298504964655015370394482699414279404480299642546259697201628404137477731480540547021704684168963503390321561784592439158542693680511326536840862746133704827475387952004988914485487426776154127767058488294966910437119137645928410686490650356671643311602988921489997319582853006496441148483229083815112884960993383918870801396212077323399789282587722194617586701733627967849375839442239968402348930206402718453689799276694583496415390226309762920607258286833297514530679121291356271257315544639295548289546011889517177877036075467294402007040011298938860165612919948528934500008541908946617297719822041047782879545621991908511090903071711407298126307095052710048942228213563614091676380470729167848590714705021549286657707089079888738175332387091132564672668322474980003146505075040517837183600011207766589146461876467201163697673575737585906158628156602262931465330382439186845686276546537173590154063838766567594523167760150499707700792932476000889499729051392902960502880528807925993085010985564031895577242698065327190758932342877101592562111265222946408709654455391986984575951843020557661303050704248646932181941187657934770031486636946096322753584211310878253382199931349861806853938791908666424504386340860104815475111319596586408811434773437436277029104716020665241968067312314303496171692713096350861799942873547224405140496969017049584953516514279338841958235740875485965886879026362778527318684781976107674551398627368742810503065454829339609673523102769513043289892277788967241952450072369058406121513930345651567183063478457131135746527023153181548892640770927697588384299518893571064986893110106338820081717759359059093950341459212163841765586782806066139977782103430166903227748969298557829332848895076791400048241928691848372041097520599105808818388318052332863830026230423277900605233668587536186383783757162332169583813523552968003575959021789012790723815608756575156888996525832621057027129557185986938582668434067182451213653339339681045018774268123499297103540937211468465487095729203728802058535657948799251483850139987147292025262043079251179458324229235526264690277859153568246942677177062199214405616566330979572914067933671956853339513672200184525055755588301553004053737562159109827277202466962471155313462307997955387541452190144369493319977380764213694213002195327058218923711690332925963709195606766936984340392927275385098813616437258514370439000328023643123737632579044827596313635240447700164542266193384981306944164251108249189134256763159666800155158733275122975095947655911087801340865835842804309658119704786177220728385567916073636734423971495572316036645538941306672377409781715939847720317372715634962000064885434747126133963180739108043549997954725743944952853978310933113752630026909681842020902670649766292949758078137987704685197201419879727808340373271846506797199407040838043688166363018762848047260908683478471266749608017612434193427163557065677823397120023173418588417374628015708690138807561505297456102108046492227809996674954094560319445455269074000224337052388207002904903004288388079591459133865047757706495568228363633089128084667850767744137945579278751682125730172591629171442071942860402332305818422696730841385911262523986569227956652635397403272155353676789952253515631638874939868800383316481897298103082252305904916236846298654337780964130381393704512788131809822747830114332511948832213232544714721172672568737472200906572965451732525118720269215017861187384462751674858009549170052723778917067566387049439278925071192397077322108044629728908056473480291836357060094186260387682276811611174300063569512428362046970248521310723698513270980555820257866922115748392283890360566144833866178757199449670129019791487403521729910943949667703063101336979092500533300015473360034259041998745376715119858586891270506427144219599792464589465419579669618639963731430535654436218279847207137404816697743544802409854309578978428178202479518949379822057339099452903385660369082793393591766290798462610179694468324018776854084117787065170156782573761801213212722510389751143818005190052806547298078302055520998993749537075614728680617149860790686283030123535286684352307561190105964382285553013977674483972990366382597413521858973184581297033388260292207938098132642179512685447840169429037200342375121953628513200164003217728694031899144577456321010942260955178700771198811572160405301851909242642509163090071086381209563814926741268881531268769379353041212021357342231361570876098667391582924988625322761562613866379902192200067051757437175931343210021449225139086693726356869313037822988067056172901944183982458899886682577026910167425175710581463322135435367656849348088298938763901962933678775825454324666727423997291253825249752823299787024635091423100706431327685381476443424553300957105265056246614085742955456628606081623394499465241671112755589211505383421049977513555678725019512348333957420867408522055704575770940231535891037745669996079282333256494833373291307206322407438888204775474911635754903470708281608982303825873778457830446417314126195020232361115424886969859712691277446794074878954482410396954702790683083724445597562101884725957019755617032369900438788386961375393513745707762059183816631556898989718978745265996343333441351747415253516534366439528583787493186741706123829625197246501700256991138529521097028195099956881168318089359799421676742771778976658504545718632484921818981564640469929508813065302456361716552757396517807134566561148623992063021316260483652696149867389399598412213845732891452710918861931035712816698451927614111683061531064085722368876423162244631883068231747197559385946186502018283269111567560589579322455652021543054267157582875777204528110890848427605672100426532365118889380706756275892200374646024138065992041816034270767502533533772985228751308035673291243588596094777172370706601556843088572244209084228568856485023491183461270023523965699448055209885334626126161356977689668643194796734349256764318226245338635795359698301511174970000614755807307925669609942750992535103064635121678640501597487503777661719583827642061746429584102193480018386526957279909030780456119520942952703200557948043102946832940355994255800520017816984280522509358569937992099371242738489479672937422870089362203676267616145633234343169125109553832010481180377000630546411195103942187743027696333556942216946279878514074223611205511123783930975114691186069742525644036077034179044487616541941251798491821911543772177297028936369776268821589275509172816914245405248223730118834146827405976269583687066912430437935374790165340612368706626095722673112744940421477284070214981258868969038926199919355060448257832055594497251072035750316336921477510019769882772387429451561969753549229331212347338359386777613830078888989765982664729601142494548585555793821294460051305646810585366600994261412451191894066450731949350895507425236382155223492237597723383794378104518471130859633253494983750123790172216799496609691609844366553475241787165836139522745594344792296700248251218627043808555503639264923304596387034567385014167944853469755974688343993404941269340820937890822444413481452403492994483141494102060050344062620586486817012039007672104361768455834820238519877419043296392145019501594151265170275252749681732340230498933422765342602166914321844318007622418710816815253602814102101381323318596132182817611896018046979842051045410571430856863992180857499268249232988932415420340834235481346354738853243292707476139962752031535036446880267414940636997257906047404860261510446518772872062278002529699951224942900774944803810642272979428572189304052966003026613919246171422544824220093214263728459913447019269304657874120962203876793657325975502372342118008942944360470226974937232710794979769176357866111154673765987836520117186253376309430200718396481351545642168400127937777652845793455468385824586410847058351736686699611497875766132934154148074364936553514636566450834795513351020797515656824647176230247459517751295586763222077312295680444247662707762093285364199498209526441915306169561355244727238518288352166141092606843322570756019990398114977962837152610478282901569041684775960918615607058698764222778379730839507915386593212446730136725949738644386815702793073231797757855283920756172343650895628489770949338214055714557460373797725807610392260490227774384028037273151506417848109990778451246305763158408922986364437653716456886397938421946811339867573711952384002903542065021145902880920612975449642591561360852272134860969449210067630022088052349894131977506076675985531712290418966214646455584281723741933318558197354288515797829454792996049533541916244100557407949283451721812822366627149702015820817566004326939749361052579808125870095557419140150218055166304422166603461557435855095275964434157027764354660834641993145994873812467374664855114787425247742206061631760115091741499021147391808232777593564880818124921671360709844899172473513480407939123425323431771961445266701508731015135824495561784545054010178973359650252828855109104282104921135264516784428439386731161954957323937542339020441191115700728480038631432793220724290660167793030755854281756188515710606902497126516465233925133551586123164178563504953445062115803818198532631543435211119416890727453799566254787997204543898300855115091597606563399794999131395838442722485185062784015303597606097119208269673157682883007764088740807841606187861007990888845215086256900603681691476927109577153740903686961463021954913136550381048464692117891358117744073037530062965285540047168065279855588713741687876201067384518200282408198619544310031839471345444908950827192230912936065290040796384947365243481575761505730308212080972809302720216939877685164536814788330906786701095854536175611905392219438483348455240646312597606959992921043977109937847058278779021338087096078192758863112966727902223648716466404859804876403778693137389291819740006242858390948525112240022191993336812845338367596368094328903036779066987442312675723634599354491137540840969867630031584708448255322989742322233360212821870460252932093263212452158606152388415086664738839880867780264412384443481374309700750161007131043014525588800216445519263572465902847950535730140898993099484125900277991366290751682515138200937708040270111521734387167225981045456118687362302973760037756954662487975075607270558462476943059533539277934950010034826915690582893351302371871860883702576404709336878174789497109667375967367319748715322077321555579481691100985215018819014149904406488383851885603104735266094785960996045638993976582990341573523412886253657311282330305714872493517036976723783126440637563688173022864493818075636757709172451520249509079506384549042080134118858800533166343233220035695050550142864309921991796210250858598688073170511796778121023941422463731236023318349571517459359303009482238175210304728332065519702372075158145847069022502939013934747231694320372469020004550976922119029469759554764339131169290620125293181810191632546050099868451188947378957782500662654374437781256699867772870788787357956554126076869677156398114823268448539606524443382910095818577443789722046631122477434879183295630905230147891804635884295023332784682011487737247984239505505491750712367764835338641153992549838194480567433710297229121290806513981904142283521899258155915521879572448993508541070340881724704080518985403199395497625892595962879739642621189929388415587566142133790993837613399237242179932922332830622392130391760306308275448059231200046432106823619027142089750282027741139864861590935591598861188640258174063911996397482597560291375452490569028750731235312464123508884575427431634079349890184916301828975984084030353774579060888847178434059047955020103681316966383779287044879932404373706583297537719715354503855812208725121556635531529208464542348636304410551539217599167037791962752429836733460827379339019334357291998471269855072513607616537239988259410298819466269883103811948739427972159496701562663716325630126706585432413839120622954740469903926578669907973537171799327417050563689847549880168183351808502622724738945268758840705828250285323946632809753399497113224277887780744931055499674739273572237458165998686671470412824286656219421896598112899739148456474700810368029038970945508981956182412798160539767897878235644565019866665090809674630051644976284621601300094945880481192689868432727092895880571227487630850409400143310169275779035547054606686470515315441238868021558301479794504718664232633314992523676506785286134965097937003335410334122656308696626901643491792146135383441416014770731608126434731492911581460384245851399571398288998730618370265368581648820624252217418854202372999326425850288759235127603316822652061217810235473138942815867498686696975540784532358086917568102203599443489463197914434231123307495302774702624167639633550233471992519752497910190176595633261531931894012107250014526516961426215658273568775341683023394231236709163638482820958852608641112437965562061819694007905702959504766955617964434834527573648744076814857053833906329507757882503302404307364304616280700622151338579816760481014647534390519765458007914350402860722529428181374223164580774856137819984640327695877327055233265089967751627273896048700752256867087989256228553082269853140836646887023806760816695405380907016560994131906740199138127188857536399659180522015081066434154194585262558001034905141471223862298542604945988302263950725761543518567053805815054572776527987982210814304635511124569431219442644602982051865880900902220698138686778562672960320985427233972926448938770254960236465531757883500706236726199465767097866148041968039544066161226774512435942500717004802590985323930632358670371272905463807155243998905171388821548011878711430772845850003139923170299456707369500109433170464826242248385569495770981419302041957569334757673964949045847300474575038569931834323580782463719505319704989701491424597270321615950977000397203460783979837187387330215448004323035270800031596216176521826703421254859514949569418325159928038617440053742053917853936321933343656189895586990979517729731484984612648397008726350775552826944317869013648769421422566607025709422085000655735065532185604450642076777211902591327741851004268057177135576930355300890863099005657003404075995500327090437443558393301655464683670483702810635601800009021258610937936619146586191600646287427775442070975826931772248295430606367800798508630717194452446056478155057895526504618251074968603240746278081662252442778033043921268774072461866037158443371962462243389186857067639360736657985790595591936981920196092026360379313639740771458489078179356214592088763522205236517661189311628642938106957894668160389482144376923493528200445199097223508481195235243064833033993246995890821676121294791131164094127461380636067502733708147664799726390825323122952196669465384490321511044567672960067991017381690370946903784063301872589822167537782734682354105340730006474015863850599924988095510378995756737159933090165833726330584402773294572501973201221566712573506048510049408376076698784973850019148388144136333885114002532339740710679797982692213671783484443446503400436861970095023191594886497115542664927869101461638905843550988061368294484763037352468899575779652707621200789492819068180010840561783739644431138216494366444215668603784375001319550692015676623386170673830975433889677477955941998753930053790229383258274445208634387077643635585437491063456167081009292050134450356363111710958589902917850267692868636310249397894784122724964491455845410592570085999684546866933767526825800906615963171993347099252460551317651338895046544436309707736207555886275022265387368395614644620994890390094248309137119395023125289337198649553981285697237002000688332173694000290590705216658079544638644251570986938699309053137813093850672337379752645168439143361999485094572155588480821082296173214656163850116326173562504138221055460901637289670017079274154450222339491004899742820425764529208623588824826982548071226029552629283886794317744336970662950465296396517292224154062676032661134987889062866906601860810610955123009273615556063166227485782228631285750438455104561122574232953853726420185674371478520852529727241254004185065812383047648023027580268997728899309062466015497045112645940332004801291752019908369091773206414077720174808000024533313346569273921516001113281919139670953576127686746746858650960396268416887602683927352914224762017069203651778181525482734847041582731222302900016491290887192156913633488265478223967015871163372464065440500510987584223414047593494146192981082184258297426119363960958599383317042715459817402307252881228525687375973657936131588376892131268147816943014207976987283343011290198260854864103272682991429882983542250621150201948722854847903507238145779585592030428603828853593805990722334267786189971029382278848644393326832213887070422795537535409671100283463269418204794059181283012293167819556564001953724200929425773974006173906091463343863217596778153885570875029195215861014058781443683916925703919650588500232802620338938810672292073458399959477343104343792504129287386988154210056024476663784543786919756133456478205088922299446938574553491577097472225941238546852627289918407702975156661655091763084706402731940778383492199438683713476925404681008271498869105591237853330175213999039773980651273329869965551237206402113147713849580508215706370101351584288530003632138817531319155737997353688761252282838494172082484242046510944922021493585379722199124311586932264769819211196604143583761932638013830266588260413968286418588510803305542310644947886013947220256839919754878350900627414252844245167821976474771488323619994668406810883032233513405392503996439450750460344172344356773910068396683779315250836857728325204755595792914599996759132383223607984237233667401553928914073423508986461749794305186714516445027609676422256861770436140847215809206131933570985356475046013758220510264678813028149003292653199362448957887720902784669404735352766413470509403638688095555958527975791024328848376601129029187122863030438370902204985258268438900497478911097326265380043997741588170147813233845583099335853088050507083544492463425467837970769151853365193406764089093519429819063533608572059995259479744969723527567073759855728082282786032463353328590797463189870693614760675002036819701547972668584622581513901430851838975061892586364994827078411706169713201835127665817350366477707706786077434218125418861941238147387241748022786459071198851987630200863036013751626173606256930548914432464666503325316891734737071268167492756176090111491435435915058825323619625209729891078414484919771570491127335647028061804696924533911092694262410853955080058809309656387950782107840459523353743787936662175550225433425254124950636500309989774810189059910325336125139026851517260048178276989167278564069103093392331231536120417535361312108271858891883883986267582937162980103588076851365812610493151324699607742463968357978478388602583390388654522771880492863323218500044014086501351511854627151969441304183780361354805170932388289581557900342082052596322282751982694234271186657255475204774637600898639032374703324466485279776705190341576632754283629892211465695999069915530228164996086024306153290302411898825839452363226117544261901459949150321806798252820843547831188989021538388902767881044143024706314632913274185717298617288517120534708071423618945932903672067804292039582345855917488333103063590743698866337633898607593810134489504984681589635221765120170259356580690826626083321237432585652752485690057264630481854480045222556717695710648510454205899063405520315542637810852539140089631877246815973203810111973991193396408227239758292512021103424953802500354969982562033213614841264222051573034131008000143467971958716039135264953894030253961677012845890028152920419455308822297677846800846920547021523163393391857405560821227666980773771348657566791434990312928277026879769449525715106213771152142701771523704137461484338647537870881317116938143531353332924651636509628341381571233695639848346738972085100725682087823231892540101304180734099586586414585916737286427384199134997993464855064872409461888001842531000108137179230164274092709735567102467147270159274890818219772304178586081494532582221796358265544139237939783730213872882633149531237230304796403154479588797410078910932431701414902182677465404617123505038914033012621938973253044707067801035501329859355936476574229540807773158007295876750658125213681442969375397374082847897395172816446765272433948521570552383856885744675956919672953281618411346896072518617556559011066840382497316681179711025362297213477644567811336884894958501258745033674402476908325061067935301512678128924218956022494509728330939947948240474746500359657307188744527421994533293992475843962483958043720868508284672814582195582590038666752646375378832474800202322902411082096086029052880741629925324655664811260588410462144620394638303613198582510381215957717154330837267548507460430455442587331613435540450973558742027151528530655477147020540927242921572872485020389616267620986151720097142494739682591086594733265496462351588660323036351907348101954332513862877704643300949844501208886315060468677017589391468023873458041439015612859738766381543168866910695272499527803955622969093160274747730953293686211642763547891229615055639286154920420322526564386050312885497960230411078140219683030108430149777371622040798896556155718713649380549008802144460528720560997548372375108892773065551653437744929301681785278168479322482462335170915456563360604983743214265257531456281268515780015062756253728301155742511788133802195031979308503626369359720175180237816214689273567304924784900771114260032067277803287254856280724319061214853632801858134209121730071022971436050323634748758447363060782979388885129255760335301053764158466299703015648763112599136502778725735074718122881774713041252473074011955343459389936510603222622148742777742352301252367919520334976908906399621500711313763944875116730431071886654387915756875598023361950248452122113702309909762258780096781426289461735506260820024429069266150948232790228880871653298610538014088395697564751308576660811195272285998420780106645766235177321966311636455520853273430648395407853464025253033205330925958595526431994166917681045734096082540818423350675678117147625502135110906861598999533810170990338207124175515771600155417053706228329026433395807736059574090970159081515243364400557670506713373958401301981503678053668406316564332517685700178472356779367900888803017067267781890840634696647400134971671494732283501285972859673927840309690919873311806107076498251546794847652829044541282765256591467577399054480016699256620515237920857558912034170173136262778618474843688919475148847870074885363134721735487665505114779530845261195080909672522496287755001902094401462185185619331495672858021121158710169001378774520407561325820296474888726954507424598850843185437531747593088161312230537948355473551719766719280116380697586394578682623605937412914248222716830112737577263227811624172827633851654630900217178089900112260555217976216062578481487307994661658815917037005274338313029137210400000595703654061839248312608438306895412795205449271150807635427579856612704832631293986881770823810170870130369648130245134824373397894763142187993075584133099543948321941629772464115907315522239106156153082483997177496796533639735128644501775365589011315644256282838738014514849718885418077187907989457456851841274926990554944938796310667959791153748346546994376468671726790545183195547694076127313263922180831685749445485391424284736658656780798032298081329897121394227529587691956325237773019581715438686112818944208209069967856523333520730733153268570261457971414267203777750756849146394703527734840946510119515426383394974909884144790490915669770833181510056980985967250380738740058163725709674550732861235886128404201864957077890131606774710553411830362762864772116242915338713702807537224474518056655662097997427141662511382795917692694629212950691131280921500998107793482233434519385790684197090210390858287306575323264816857331164752986146168055756066323214666686543611004068994571322362389962866938067029717159253286890151350472783816746177621814629683662641587926796402056004721731251821125213629749571474492333525913820853998818338789712744199195421548188635740085423439184320224826714598007497692347516131022585179717062679088370521013272283985716238524838055329962684079653202602265290713602336302681111155635947298246541751348052967431736459766354682920342019084164591705574331385447954448764146280695599302781330059095341013771259808893763670944881422993448863976872622603373844365690765058266158475963761275976528709795986836322424836836618851626003275901798065591949353043145742092396514298428645744250133223628515925044088674490783953768117943851376458180928941949915169922063860679872208088683749339696880701513225019524198587540213255360251216647285585066750993690043708932216975820936438748373142346582953041602254038228464380944110053628701548338001236483788624394500554535516754172160522760032301241527611809512768441227280644750155563829906652074236732410596395205654637542682869699783050487277522746412634721472480057165770185214169097522948982921901632218293172719007704217380221769339335125931767645473994677235589047286791058999206216823993378399151803739001202460327223025998312910666070389163789394735991078612867166884618555919100419757989731012775477089099637285094655114720496832749279272796533661720909048852104555240626619091917703991475050355115102831241728661323475524275453464043783018462350520320277474351221732031946585027136567852038129366438944345684210636933910984952554298953469883245459786586072058194524216900229223373372881032383115832312227022680138406208451624837740500768416718685532347614968235044010082563363872111347494446339244858314683228100028412662173260898462406506537587364321972318223178732401586146994931541107680841154942633182142725053939961280584451783079439220863129905953072230303287737723282945882683292480392630788365964896338110056209742863373493322904423693015490031186666573554400294677839665924849589674859127188828533191828810394261128443274483951882777005577644254415517550058096744980077850501560793690810720414385516669737253677736471172217923812811703037495711498906951871039746027091655861860647329782043495387431527236610116096833186620558332751648820854931261747014450951887288219656993429702900496766170935988444379238425292640662711331678685220964887969599064199305513129936164564440954076342904650504568930828668216487719398069700057876259088781093560656036361947402714566408256342807427271038371225276970667030486684227317720337482858960795068673712584799839578005779110816278847649893261098595656079300186424843165665238734544820435693609737654340749220950728606550114521008838029375518397148408894115166247427702749990359487107176644745075347084091359341234127858262751790328945915372424544830818093288214795568752746138122604311799461218789245943131674300317096749971703721692557507452146145395216869230153790855079730590189296234974650444917106789844748805348543438521074572138251972694897239874361970816011661424935931724581947089554451888933811147553472827886183128982066404974873001226261794934255347314986678791418524925306798996015357767198725890481214131842230731763969779559171495411538126729820680499384042650408318211138354107677206765536859951956059666029046979900384528266630256317544597375309231666282353740116338284374285708038033912785459852303827598421914959306278509348913449887426582492742829646451249424529601184089057821151122133574151492514758195139365463500689181062971497265361017921972575077653049763362843124593396217578088505063188738344069291774194778162130882076093243050020353278449439516371027981380443041426489050857884098552045995154063974576869617418873253824251761705725751308047819255090034434020342956411413317183919519528284516251284870869906988389787240551561230078527770448956523760797272204664260401622421932119236710827337016722617638237615263807255729419376157526090587302728824014361050599153728732881188041508009842953992597198537791386466403346568269502967173381313624421414802759552525720496281226784958186980868029799317196575773247875801520766948999323912895288751038155629075843506039347721551273173631885825929403620245973445264164522010306971273496800386570824599742030825784621695061217299437277569104512096056674668025186764511694517377511478668774437991025196520707928988904583321964358350448215659747538513567087257802663395485404303605633525143885314427742456526035697914023159916366738640132646835691136956451158975323306085567996400843938034697598489577180896836786272725531151046308917018828970708416225872947395574625034706546777875913045771667367503189908522356153051259605009343443675076805064839804147792547877969255997627632871536612785503239613034045768878853991193467923500032752767718114689041003865835456702177124421828599584081012063477880289240123819907779494382402095463199928417345380144262828318186799042596565658392037574978192975267966841652676687533828288473401669745291479512792562812295479660744080178300807628321362509781072078286234163880949214072115673786281247446068955893845091427329579128803348161549633595072915101830912860974385424802456061452746483716122479634032629625568294441287852086297921972796086475586748470157109476599091939204590049573801431066120734386436623309021100318464307974970923043611473430786159251540402397730513745818815479804165888458802175590536067242846712974176206965186837579477380652622522545759491940044855476228781798116670824219164776267286020143314814030336967542744242613854730502483239958933931286816244286192999111299126893434153137241862617764804975194593213995198336741337139645531279419462288440675384793266502323217754395739657217010185697738545116780221814426880234165798673420390969833933047568694474887792157649049686549418482814391917847576504229585971537719850961444226870106693477478441707951223384377368694926548509013316356654951126559170852279175127300195388942348263215470898379392542776205082712639801384451885693990136920998106222961418033795382523678013813666891998770409514561395961919664451396012626690827556412045220430626564708861859690904851952780907350936376371871988401118217658577331398802856308336953432381921645236500045860219807704990869991054141746628591967305322600291157153901290575825484703857678619501464886366748628591361352107804410021615049896330263911276581745278069560252394124055621974101166235922529861755295977950760593149613770344844214353993638726959557209026526069564693972120552646406330070146645953842092443600390253072521928299338095390644514573996353527805569327237208023249958406248325400533664249320492792339942219512513259958924753716226962662566460308905092482249229510924270317010085254187387785919793163827332171223905320283505191322992277604014439856832579329194109425052796741399956043153512898034155805370290641440909292246365319336338351428335017957741103201754023325505729730127452434675829257244247274630981712582949643711110198056807332069065116742258707443384039440673852001357642824833142797467990596929432678188087719507065107496372971059940600830872080677180771926666569643299960740197120630936615874926916524778032262138701605084008033134368978831026745624490452970798478571524879485730592393898893714206232509703852917987694275164577802867604794450891972995049126394145012803539276884446132920112416955257777382802137247359229583840979697537638526281385720345134571827837020031039213049373612191405383252178549762155766978848601551572781718755497743130612758747073964496683426172360504839198099473428423727634258152351921371358622679143636343038499569751171631265136680723898361100583992197507136388281287037543670804873187978816931895908179721539088793341290940803175566756583918512929275341614115400242697985978073924369576250329977790350795455501554619747393757631535872951675715540263726002713542872749798533074590335815526671048228744712803372712832096688025827628056180196152470809406135195676763315481592794277023491431119695784103826880917135339734020097206238699015703806700235288985225562936963539253931851258010227744031000501074224587052235727402806818418193812861314022153441811686141503095207822096940857867687158675436898298783642879792351067608159037679627244784836601733683208296782492605589853207601910911424044146148596371714967955474661110563895988602338759637555632326350973173164013465537089577758065353739515505286960383736733600717038706290776785229170048496214902968298341687141961557454446586652276943431749691893321096919096463820757499029959744201630990218353609904581158251635754332228588661656059946104780978629732826279291691325524706954455291244484314839858500777069956971565794229026308329018153143838548262868532163463715409406992510898264784079481218327482715092269217697558022783156064329439272884686922734565011644576565413226928731367307239902457940713631803834211465099018152364844840296477154161225767371298443285587134062150753088298982620852988566856142127161730817081831730106544961664521889488889142009814542438929364691306912250366586203303243392008393975382494827764118889380802406016073995253317825473125073551060594709940653716426544198178811192361825551968902045505687458419088374141094469611563018324910636230681295847498209649371904963000457402532120223037409880753539963105217605409425695691526536962306210618807674406694643940513886466677240231827247112735483790047404472886211849962949960994618191518390052690336354869784975070785726489929308161764313283092619026960629671426712818673881067235958452616575925278296206539310273529074581310690871791626246065513926676144270731194536555119986174861775137206768691669370318781353550437344968618430228492814251386569105601243431074986448854057809514857771822989002822945172705542864171436099799102087409064733891443897274868413938754986043570433582244440116258372388790568255879300935835423964003890087161244527665532576715529798924583262288593430624607836563039448230055296758668617082023151224534919529337160902217136957788324336278332243507312581356562368331649770139506455167680004647850254441161601531441832248974851949620376565063555345650499223345418644309389643756615383013938922189763727406459188996982006206369495831183969114498987424163998020154618717493415999134442294555726669466025133377580951056922965867648267770663473834831001185436873427755516667217966906755108262631494757343350952269871716429460847581152778190109189544352175986299451232221548139691700907397365021220942769059423504241531538936216329474227313407610020524494545024733189207205703729790016967824796098453527959968406021762982157081071382755805032829692853589004750838658450196846839496035632484822899759524362494538955591372723942666788406200330597664482329745038985865102996633886507342178501850227205585145750458224661582201259940582965720176022435599485230035196774424084403806105911107475211317424011905884115517151137826774994422013486342637182040615897379826293125043868109587254178301995646294156973672455954745458718721772167775082691868307578180030035471271289409339578231671075695397810484677575962436780911917743912310160082154586125422959653551358863305165019223053233387150838802040359562047090574741646324315308000505516087601513428760989692778977121004908577246308219432101182762226664036921049083008487470429034074412157846819037193241574064792915831575591178289545031749757855863202849735456083707594874381133739421205443195367767509093471602602398295233347066674261515423335468019587073516573835473624566591811738670237822099534660655468248479177750842940641529385480086013877952779807143463147678017779720997837593641915818662137460359519537575566578333532857214813925866482062828375365064656797698905073393130222833376272753291219393503069615330959065245853608012133699946648946884241580059258323082655687491013136658397047981904396452041309751797401293423029249313495110987935726249676485812442135252353681554903014027210004761359686830176960699048994886274192589003928765180840672941958856605753581475508683731187197154156302030079369995595089121388575248057448069791453445775602213760229789570137692387886724420201715961538234326466336250878173438877065215080118467587868342212172844582208317162906397361045375829693456950674317805353555264167419302226463454477443211206493373224077362117073129490618268067926221115327010514459700378479383007537879010959351895233178008873455719043877713378979798342470655585835309836615647429732670454547778699685936958440399514617773705063885560809887706529052036221933477012656645461835997825998756435869108137562001771464964104247000921657976882942675412340385817429685257928321514683409804637263017515261855930712364054639438674655657831309989453340725770597687913959486449793893389354166323228245884693635141325649533945821633960042950329165787034193535365962222449465575838012310363423830323352210676405269227496168717345090028540419994764906989518922629617787019945900890617891430165482791128961649724640304286307276091809733858546629372466865248630296690783886709904332266694205528017418333027436220499815472682668051260679571905244015014913156617306478791497798856749948576365743924936072519902455172123062082099804132345318865981618637978550278407296466664379611789729361142253580871575881524843481927120100050064171224481766262639595136883666969740161795010298127831415147142302010145198936650998291230210712346333150463702381037377295118739548252361698846793848918884955746318725060631076486621756906035790526528863451699869123258292894203107901114400600927757484315184301339369471204587480256888350528001972733116356649385640720768117662622270113126385721878570239585481360431525784508956156328984712407422968098276918278259289963155248465090190942900223473494212765628772640685776866972899076363440830571960741718500324519641898750466496868236000827459741514541250427275136975078713393828502204061504408807588852492773784841243828812136696175276100680255706181139399996344278042498855174417393252289649637398701370225912936662837055838627200752906640442729193665523669792139918784603742033619039497970609259069477458967760864855861907971848694456064903913309459023032309369265607168662653906873683569758324366530934590309488701876632457274632762449895978197449272807726858421092837508445765816328716903784430892564401374156202766094880455963822032781294829285494875463455198203872636675637209507380993774044478016194965463461370425909036755429568314216643337734720946386664081089390420341184543737500649820524150705001480970789853230187582560925279689629126358170534986316044401275309617876428336883481790874682169664147072280865152509689685762658173733689063615177333064960344194615909901055054297873962259801581417481350356807812097267282214963759430354359061403826179870217765895118309074275559492447916174257172186481405047898458947747751574638990648457216794227149468449369877452314288680140368067326466947370510292533359643184685992017364070136317090598122194223808306550366017393199668980438040119929587793526264231231613324071917991585717864969164959775581243751891514457165784971163780756926903358618971675873390032530838211347060282826540992015737583912679030369210407609838150086845460606971460857924237551037778496371197222271017620182931221327641600875603101154980375350199276956740120567639978026742260934517345185976367776030691234649325711849504369439448544867538532249724659734890956244564350012593540727000009548544263160147063156190946799206750189574581650209618609792940121035132385220207327185871949712423869245241608619032884808426345705526883817523499097393800730161548263860075499828999794366164272360179111997632442542469417240335287597165888571359288530800996860359037078380281273961756869603058742241298217049455410108042411488751541184121119743993532902856151866652060143744264197381922695955958248956137706972742333012987628824954378209286847360183937284420281697539882565581770229537948937058154582025699837744813258128813244320054728212074996242940387940383514689024745235609788709679849443118663057823711476329561496502677585040409983922173465548933470115693881875187949263293305550990474707927418829293921789975521629379919745960701928775680382588075689872436378761046949352215646016413204492441751479210754537686057510394763599038451441501465304124555836028841648268236798737879430654732801196465129937573671569616998886026635657064550208169473502598538344394185781174277978653814013059081796677994747566294562370453037442590277253101008249867252407245399248428146433823580564721995941848753274019331463712638798822394401919244745407963498964307555767827805573116800317800392710293022572853226095651425099487143479691499953421954345870285029434126786166646704775945028568317753272853398883671300606383911412014198000051607421063141439385704392965638055955698855774803437814781577147168054814222413497287667463318352823088239016857457791476274383729239191310684409972494526569923347807275584671493617463872361665216357176755866164705183958917656224207462654905031901272062073708476916889320507832662398571780499214827843676075174414557828572099990170875570190321095384226401709552891329645881984166677463931048249523637786289905778532055921133211645364636071559364625274516947308939024224417055198622918636324996209437898303601630738628642240589330247984059842676101410873068222317784287590518686054710369571465166586231672434945779273018513082038467430648548351301287574015346639856968863383959687639849526842182149737774889155040374839148665937081568074363528497386394146367735290049851929884889226583097910347828738693822045940573935175529565412843013064891225164770523850557025875428111690058725209535158082854201387345550925574609310890593773218594832688837868511434966156132194275354941123046717846816685416947741959300269387572968641139780211886228267354422454965711663627644994372809441497768187707369227738613512792237071251946047503674644027439551713599477336466265152006089814325905253416319146890119893679512471935593848922284313187835855881902900127610730226367753104171426152322778850591023795063448287236537521128811890800860582013671167658292654788177815984567292334074325617707997321773913041247528546653589870165007948230732890944466886682931137415998342199928920434412180156950445137482905689482606924595408430250023043535883794874444997008656401374330260096498968295861277001395843277967597465902867248451742089566293581610849202547999186080580555261991676885640331110047252474061269356082233883712981781083247952293802126699179762342156907307501458094575318118527926689323672329101289183086908594238612647697368445265443084682503032582932072779362797545678410871495534312169284770232228154229991984661490030816508977193847422359653605321319858933700632477123064702203464133308574935132199494789441793437588298127925178089618209066419109923274597053433983914366041775458202093126543030511316236817629297088238068215265557999511554843040119840730561482851922231268422543432227864108154781581854105437695572064533139925689192234963194163183291461371074756132884564767829959053483010320240824726580385710511960414726055792646634614997137933439486376473029515175940579187736623317084935391452718197389902592939774179236296820420055592796242987483918815325511801134722717108876653531623010031022164079967960138885099863198679640941401363459683362708644910913213270459215975692856150392204934887121233640753254007907061323967847606725757928091159344840945071615669435012851075495204623366820730935894558588718227719483580704437112271222702648654833207826134520681117387962451584398141480890356228855212093862587885844744460616547239872935940021732361757764034785271661237393373429844441910047364624417975340815478532952010694995585585848450108878276364427472307513599692215310843940295122048968911192473429631221256486822228930599286275827151095493665764410895322512217907340359407377995608628650560788406486395974369047181815388112227358263120904925907781940715479896213710247444071081948900049446209409798989101055626859762849833857569068645692309790534721060389570062558751006462193995621795989091064548648872182402451088633719877774689584250250299156486928798464131875505875222207763719696497869998425801142921059135695199785791116093305295666229889039987369175818375877601820011238245990282849775912718391259574163626327258707861394271731065525598009724142658911647533499082711435729215179509563063514882086694118156681384946898951759560361956720239661989210423295769302648282793910438736912451249600582098935866236938140999921693766677061234920895929702082552266586818996034534255356793119512844212574860801612469169286265026286660057826331947469888259789939616316048535093686401028923768712282985338143615846706033141072553441515066437719382690718003014379908936957603618577367927146107990651292415439502900837615536405036942464883595680306092985025009715458955466244763296858870423697966798249233823499396180130900570224795287431971279849313381910688077870518935386688277728832026532119511683237192456056886133428687456459349959896370820727911432721080231165116818332539925709792474413416897430145073373008023498700341363583646492666490230539094920287541482709926929857211333446097141849785303685023464143669753259241213882783440362885901459240825331711604293471520319803937361795256460195780809709367091971113237037001095929728979081763044723015804217448845560407724594619830685208174314211844215014567373788925812891963802688737349441115934865548324215008555331880148069770694682174215675723142124262031002807020441032766423823345551872777470246679613872055780818631045321159551032870911278767687767941946496689436139664186051931194624393820002365462893203390604452338123383934605830316190313760903229714342501117896510707357647040643100583669126229804125466239180803122801164874559673011078971370690389479634350720091722511293076133004115010252416223301748158511773339391481341261697806683887594468612873841866042716614043846066272676963238967276937554778913014691812851656749568919899073538528126957108146361478680922492998028441873689124719479040065270377817996290441205967612962314776806608953383224415281907953881755546130874500795994826888932780277284030507296414393118681585198242924272154484476631410669600930895917704801259229734631423473698865966099506605418056692123145461105057423254449190776891791528595871294207669017833030382227977964380094969226369937798000196569421178311618591253310706011699652875662090414961978397068781274023580164646700227120439803647852458281451838357524925656676149254847001319319114385495239885884004498725105626677857263494909105287674871271737543614614810456607377107821434020566571832460234991021135142784201403405471690642984423301683213003586878528706229176698702734855379816813342675040196344486233583100750230860195940113643229052848427269351177679852519870753301271556150284838859075131362903427392184710093772027266903608171798552773610669700514890106793742809334465081872815622267960213204528169394056719305433745406462091590408656102900971633267465231138229368272652208570874549571050036592853400519566471116601515642027152111987093570493465330504366476771979109498256975523249722764934166516959450519009444709259705121620193231384874009488660723536979360268440782556289809188850309159577499784126060060708677189986465159151433975471493721408904092682224097121162005178406740001729307521090294737450507257998364150335211668865799707236550283203688078506787355892503402209714936907825634768922440008811778081803690519954542050650988472500154934259197431070363004683553177485261690936677801410913776848003842027938098783683447288149863566514067604935328174658026193812622486490399161894393033636092282505222703222637681115938558665746447469487281599841234697286400744447142027122269744339106790801647249941555728185997716786649820610156301907827841751046590289578613779963933247622596309729860254903853556246848168752657067349255093500158344567940181381963469879989751381320688513536748371089714622342795022025088117660935870429778515901157459350090419147255894119891486290848973447292023984434498375143690746175727307236907617585849769434986861520585761257466485390799929108751812350231833506641515277920788863635882682610275410126346289345283234146068871563000947551018522540689196598472978063934944346965374175867212165694773140795891527821848664516865346273985361018641922417090603773031528834468159853652897923027126165734705042111881920750308811974103771715216275339335074285512090452721651163616207343774985199605940161876972947614244254171548289020931879838539533857633155584017456553046678854969659707894129351159858206192421299399318003777553051628709277529202509562429863977384523590591834317179485030342508164696333616558580066092677104536860927865351715325109813561939929181127212220250911282083037711448548142869636113557320483418328619148158625400954160035841230881024494012785966513220640536557666314897873225466645745423760523727215974081478511978060911113991354809940293277554086707490266154220114788745744564750316930500229231975684093923663070351987507980573361626151083062011926776684737105237965877207994668893146367908120134347517777735280487081927048809776229606330169454652487924398556584182799855297397677878834456029184589650545317122779265342544800939840894288627155287233446817431410804978890020507462315902008372609961579585938872827261716072410285829404979414584422892162033823848686766659021546164267945635664536011245481205716008251674845624419248695085650615238753679995452147346473870595457095966529783697906775383447410390739745203323912290158893681924673495850644085919483661667589956715415922072475340712988704254085430200716493201702148315335888214004623412509751044592651326632224547034309132942133033682173264327979129231117667359754644568553468488536942193550069257266401178588670406598015761854153688350067458091981628611193621066306797368213703175410497868379415333296320619919707297291165925999739732816044209599848265526593354874582776948166999937178602903882196527857026420675239929264066224677252495107591322178749690013480469071109168318266202283984548312735989012779284485908812045692292474343133935784623412837575942124000734959539246899903540488147228346205744520937400255365565227733421743667236113657023029086726791345913265113381231841245970901340727938453975455388243963810431587882127617677552570389899837594781096495977061733436941647491643743237121537612175083474137217576658483778266760037130020721505952589042211857631187410408163754226590774571402438207034750246713448295152002056357487745035535441605561501353051409012257698856088676303596160145798801194306728074762761200125723495875572256116022446691359280115109990282406093524802010758143810084854463746805210569461793996254650391571362814290292273065016153840535369273809799179646766983226404382063454019356635821396996666230821396640014708008652273260988832538977716112234818113372683078178593732926543694767164674296105639813193213916401340184312767753755555902296251444467752137554475633103215110674559177589805049574049656187370822270982673479166114227939371158475147484790908530295181256871710872823201714240827278997240905457821276354938316627638233690982327605948206991257459717125981987381606606378367636050126372953787490113440892596018084300353284545418349118422490147557496909998814087278564027300270083573945712793039931326991709972978048376068338469767873776353896345266112613547478644900827574393002659089500093520382015696488917493759348144597900960056742636366483999845838795954192482391043836877370948487174721075894523138860087540152419451316789634403877951121790123305740165232972714348707748448429415273312126024640736924296321024828224821897428548549271733487594222234715094360522342425334542521181087264046085988855081048043418802508833451041051362300323358829956672963674272727316086973875737469308091075097725944733281637693969401345216595469210079227596127583024774456889567115730864706291077563683501759323996512779088713049980089083274272236011438142321220356727833962501302877084445561283961691622462622632913496309382158551865038469275505858092862653938569577294260033786291616283347538448198579751209524240149662736202311936570518120545776570673084247473307557715044576376700962584225320026215450418618101496054541428217996427746456003738081312351423387830934483986060980891298962247669419975839211701488300968429744395802997048066620232320276710383748031133655944943233008250935558164135136160222109761103039755958061801781380245727089223594734995627691315285807197129893688513199533435958541731234367842976294571635570850783941565478574368658788329603922787474926718944237953416722180253806696859121596485913455022989679187361570983923739691244452840192061886508532111037825970773881638434111901537996972470800744688984210941874207432008859174899550277647909601936039095596733754591134265339865104142244629499319189415694447530136952808547108920251753784346181632141764737255198481015336001953168968444774598830873297459398631683580452031965370428226542499296432118400377885714026223420942296494978999779210700248229740738200342600279546219156432195316024501129889152660622261915541882141777373544491860414086436964909766008394073932404729342485289638446339691769445238259241984168060588033865835449026872068104362320003147533414039970353816910281384510775442382118279535215447626281408285865447591857334682939117017658425141056326333688572177405789631395299937344608006878452145422961065680554717283126603602139890173768947630029273602465126711093692185761151401390866529593782770320770148325237426002727707234657923684326418455139471803603894165818466594992299700858934748353826355546753303764851751214501363606947028926110241010523844527965598783615048393895248668810980546790449544537347292110827325760648787136744828461776638822521621001376803085808895194109070039204438983781278984622563539319795206877031766703062707500955764854434228003448886688800053787843126562378855506475516708541092813471523940640756603702727622581890668978553670552277212209610583246718735126923801800980861469784202335220816230535883829174436957986770308531455319069103222659692357645453692560310126718928276206810914804117539003636292131465897566259733717682787567926997252467112668346475932123749082178425572520826725894804384823144469162181112643656480692825255855052650664072986924532281418960500644920619814652131756894795439245450304203780121752221260254228515090035717581502974891658150040342344900960509905720428835287733747800025568957984532272662342212682057224064615265588397939233271495988835460546158790185162471756266370238941698970163371144222373265426818871684793818607014888703960416642381647424319813092156384348870240810469247896102697366163131622624171491443592521491071208045160921491726344053519757991819838410163228069183996720445115983330109811147183222818112582665777291494770816958969587501740065245786314773917180174178871376104479498562395384213100606574649120475203558646788125464765463281112790171188622116389269824538485471656632537554635254943909053139507972319877958960219632829018329673342858166641725521028526904075474926915972322831434654146856388014289274280308135185769965508962354265205651775202725705639921934515317108023497248396176758565369715698562927162996293169760794523265314880577415470871039116605102143947800246053354319840628964858952817202638248817366080323615655446416438556696864478784355850036086894764504367814288718517375622844368005936343585203029937480405178380166913949038579077771722854485173959616105048482238018799540232073503975724589551279620440450955533400501182626870199543980962829221234676651399383662454897761024006983320446675207420782812907894698552624615292195189583883431971669064021397603660461361367812995936776068359619273748635426384607524506493706679223931357228008275097715267930150989044508398847058116921741187465275787243292470147170263272367613179394885320984226736702531851258378169000124817178485222034660918877286441136532329773893748145996148346746126644254928601158147978705464883488311807506478280943010485291357736874841908045587334139714515404056175092709078930618746760292805172941944976499063254994781175535785176333525223267980811014862412972183609546467593901245143210899163632572005412482939220092454568041338299471527729943420968394026250127983929494216460654393683079945107219484712295028252254852497496651170913472763152079877477609574336807776631588645773660021736295364522685268368019032952120248349213017848632685065141937807274152439657117068785479594807385794753467812212220970055453175071100413142053063709996057500269339030675234475177077456244055206315056953002070200156388791488073985560317940340833251470055111819410537100678710423536360340143611584408630274875676858874375691330304589355037071487506173310615524560491592791448751787361533167806739985189395086910152141363992370069807397017473302473460857507167218144628108994782121193933019961609197325647254704654285609885319278603875037031900489159043861810613727515415817726513259217158042238036741803604177681588037542199434278059511416930605558981918781556601817659191848745286190189862157559135192759017134043086420008610136234338700478620909129192696170003828439306682624714865616376191049288951466523959315322587014906109140756149325641346125315715827591926014347821476536302685801895284257920854334382721413668095416365109653167589300296684896546803813646277112140398648881684841913709550595730757618399990747254874343555093599134150659285157268711123448318586905840209540470118362518170850906954762337756066793584204778510880468337672787468421854753147688848291449243093059982008120656418142234072189256939022765522021365496208829951575350444821259748691246470683028053188730330194736920198521943958825147840140565739124019307792135374444835218694987783078931196261268248055899422175551711417245354822742003828398211593124092368826888181559634270575088879400793528601992881517312637428580353962628044693622431814988822751622462411553932144713267058919581968875502305678728865034526611956004470282766750608430351701210957340431124272101027673978388274850941426469629306858505534014209945369020686548322375432702372396118917387451082380307300506632812517309939081050465705539051060326757395519253130020338048030427041292527980468871845551279564832634244573513183024594813077423159509505421637539138330884207215070851952166996850336580719231523944522623588385238124929585718539792302976223406768052044102500809460711663283298771074815637325666368000842768818314424683202712552561476315659845520035401958999021882197150629525918154012493552333945807578477388472055771026636855935732557228911463587007232226558519166345515525079436172671545487274819118606280846724351601595330221279466941737618708096030849215122410017734733145841662683368608942879075301543673328646735563766959874557089756883203738556777773131727925368162827019912069419171970409052395137143568719011471741346356466679817306602289713842968201616264571448565104760313436382605553034213109445126748189578378022990110170842597570238998433539635236951974071845867505775928734226333091901399574403799703749515949547806387712886369596309780096650218995908086475966619261914711145212115248149795129442943645697090440805723915515612442852538891326998203615349841183015226809447054092163732579594875078034758539128569901142764931109051210704982058848703795237166232413778276582936360190757721928043180063545152216164617795889192865041515434837557345506659310904651954003398955695485198895869762247439378888885578116980053212651930142025651351511389188824627496049240741772103731051602172742766737429415575490459959238104302900234035668821659339358897993970998975830904446679898523362053984116169248101828225432497612887170560603983988342113733258083359308398688746498875457738906325344368778502353568886618752346013836034712613477860385316695062200243855407963765253731242243980165650153352907375870177910780666368399183218635539285828547351294605177857817014732409647014856763968647247786194659113218088085629561673011100516069830908340128561146230898065542389234606514709763798962833659197186730649050475811847500650533814052873450931071889354854896256637710837748015207504351138353684647230447530074539226586973006726154626306693864760977242497802405190874095181855788057689164384442210053018277452561927281777982892650315183952332740232425244438387665728131957892465082353450823809872313116213540744676568935997858126908100599289141927873606258683586699143441064869556909691290960141713392294282865605785475416348122153858292923016074274226122479224908542779654519926890859300034951623130481295696919733544448843135582153126114692168780702564474868385007415082725495620670481273980614049870639177555717881412384440773638964234253350382806323100312482249120055388843554357937854748872111644159882018352429378354756842002896694011435272731473088276175047517993172329191454709498438965798430796740515376297042505270713553377601046451888622144385086863050677271752703020238773762878934168091672730863891242869176434639053751296710450902010649490517830804621847653230914067102453347949932819210730208986745344892542129302326943722317095974113108090495026854119999868368168665231902447336584269740925609220810255690724632071019925726275213811126667212160037310331826846294551277760895904933695333923428913523130865786643457314341935960078482043076580846233959690205891283235480258594171050354446042291413433969803470966909236865353434801396883299765667374127467683163873859701927554352043316263328682044778093801272579393286989920223475093035108572748778134516413493529650035961198811374864122451714408033037546849321777083050584353690477128011628861705794634504848957898554835817601224284602022343180552136441181209150000988207154161118260357402075108457674572576458836617948244883956912544272269538498215137934129527181405309253690759942411510880738033200215260326569560932776180636711017915207420224558637496269547284748727415337338172992100042122673598727054605462629062911757032361200994846126259351373354965778990901410079374374717216049578953543505083099300803523101073865055281704893004262553151099261935616699572278972538039715653103506540787667312922946827227770586334154719203735037519690275454155192455623449635777070946681984141384465108811416878670053234446270146418325156386429699396167380864221813055314623744303734424272846722167640137091937058929928170853882189278465125272878166409667362720387755464689057949165630523504088405117689122386117260883425592229495170809944114139524889239727771158235003221384500115096588988992668908663467857863021804425978939855473920100723361405439357986049320583404913311738340248377609631747238259660706032916445680489041692349964672156825074411275994194952918839914694704607036551993201480868370990825095932873238383289052620771900501763111907449812786927475543054403932897444909487230784226829564198624181363062102760390873983614919291622640662942922105433171288950641736700580233956533370980794930816335312345605221990502427167906220506459677006573066738994441421052178614762931844562074777228200927738323830325623406723915050283964236369556869281818240630528171799631248510055150775591816759228445717820944246537365863018571085013743449345999882784695823217929923202208488802551212556499843788972633258280158119824574301041301516419021619986479970560803201235284013569864966189679157259610477406359409437618461226704225058093103988693596839445403678427646699856504951312400055030018967971489938736264789580006886174537942212704597452700066275062688677725045774947283881575258784122495503644319663839665776833698950566233926210838581050690223916040496574430913220247791814088688537713355261053324669489744981641741521188494513841161708325513056673875559609999008865849779373579373751381444938903263139849368999155605668558147820414111831454457875406734940865723962718543949825443117739024107049555883510391418511213518309893762931536435155267120866757701845076107802970279927626863609819262533351704603098839799209451558570120546150618523831038998671449374272634998607259840626951750335188933606177115369049405540377079775301954480832174986256972087779546336030283454405829311142992507775768032534010712837464761552691986905771381851015569564624568896467787472319545853909748990273253896574790447027731636567725037386827848261886642584677731335569304938845911765292414274165034116178432217788095278104640129417294041041856618129296754390811670990725216360104011291888529790122426885501321419662933070123146688480640684578662467162609837232098114942059255062143907579739661429292882240002033484360841448809314383855388977919869031020193650701774405386864402174798074728186124312606781096270269578731263085975233484779215391992905737609217365189424371597105197498976709195381503420287864630153559261766242354762528542965069927495044716639117189017574693163483665079343312139022676754847614741521581448863144387227089406145582778402249910693035946980019343208029813959661109885637349596422421738469404173888151135976913517232703964763560162035551938455838878600527209915380810571556208321824906734183859631593238398346292157290557233168209702688014208851556804949935767552956277886071877025777345885838351578722786699607830039265377403480008525822710708467934481839952769519636901972385259565812379435202913182830680420620679473521034361457219487659088310582551984235972081510510879588982565985597055863444333283666441999238608046219375344471613406971558268672838169248368320581304461263719551393717524754254566643348200694363371671444061046977558347668840765119022560890046595939087403491639407204252217508647389317074376987883333783677360281225282714141302486054216294542164804290817163686749506625090505312442821012904000455885283153567890946703118554106812753127078728861610989601470224969515502041804494904156439415909574194484902240227388074600561241545139766937634312865846596428704487730625621595347376841631701469830324030480977201942268512019507905631719287175800000799517706890667983432479360057558951756676127314200396502809546627293482159165775711735140078709437358462322629790737801452041969979514736085883399713633356669712163870874982507775201265872319212386717772256088163843923200994677430171246590020036880627372880927829465847051655497468778994526542187061029894673459015649350461182589909718391622685987524580432584239604752084509736031856280559543199687749992905998742461312199115246043388870162941087444192227362445200075705897331445498026673889127058213045497020593000136289700739123877705618095225211697639874956706134856945146529740597826748050391840131449315712295894538982073348675534287198879755518931862589309643492332226075047467514163429979930658777946476386614357835355003811852137106188207461873829573733736491037413807048714853127087743652573553290983233483323459814449035732968640763550591093653553433356307999107413279992706700406743388421773941751585886057587730751668591558079443164234528498123824898347860041766349037912030885074177237272328637500403096211281727990959943450425068578459235502718272111342552420232042940776688169234374531306078717571093045850626347213785853712285671980302657407528917638662165828787485111768009167526706724685004371971173094086671131852675440556873262544280372020119989905487942994541163436576087814706909732838452827443101122452706483923689278809223784969198186830011401623581995181945464338012734174549193557038816954560876155468843552522531918432314839443390262267562036542007439882858686584315348689462924798343122811761247029748370727406352607211899931487795518240005632723317082790541516675339695776595285658010617322825921632548069482984119660852438285007529056035669620581937373796802848858678660515412355819419009315365412855800573441568078791961749743983391666275001741357283242257852125550047992790903342976931334479105810532634767744656070206217478556644107941755688074185908631442155896734226091103238848054142859325203764458396792908940232632678228764304994323267831398678821932130691975749412837669802576614913126668859464250806549328708959038886901601392012619470940569474545766120590726678871325293004336774800962388082519243837679094489924755461799340543922317152303859013138738631170694756394488261425253360601906714752745833169958009210279176131781590260544655509251576649111794320965944886206773670298880916315430563668908948147757973590195940523816472477069115402689066941686151497708446974592074675772911470343845662154250644422792703912271399686676287573052262517440918038192151834709193498687984324934216032508666209039193827027178956343078899076162839682415297439647190465442085392684757687373551023868251171876130722549353652938908890797363784294623876198965164284874752513509594153819131481871545405375616156902905185698584513265470676698727359074542681794676743438239970907362484147796320085462197864610611473841376952160018634398072220832176772500337607642888660602051749560500568185033491732974321636717619923905785664931159449043143201534085777608033619361817620434854991349590968047226293683055185436122345253845483597051619119615120640376513328883011075662374476487020049545579106156910282086396402812964235608997246588102657943426939593199211975904281358948608546109829551136765125623986597381352696164221400822844217134533102934257560196322555966462605916176972558595846518384173694932687810671903374970845633120754431421462147662608400146740967953677449699713497189194621062405771065267886545268344862991349771768156916448786528775791058174127184160681995367615565157404457132710509473753891049267167156016797454095242345903793886137437147897533761841174373159002284121282131643672293578122720038826589637546177977264853550533638226352453907895451538555155943623551772895288782084783842785081419610064247211298397324614264531398874124879088313256269006455921108850177880298038710705745197574128719416677027895551363704482618753669085546135242382880564818056543817360104507851683183520659984415167786369595680258911238154505808875003951842155673424714298927369051823584536538861326329345565636736612981884276459323022390546623521323233845685883579449313596765649458793168903428664058341734748268331433360296373934286305829663237104080879978222319163699792560921112445786925745196479929780269934613779673367370629282738640058915821969698524480442291108893698166159165935402909800896597799702063877692422768371531384716412811186269242649727722491870986874354145396586468198131265251814538804157763255374239912277713471529344055323311770883898334552437925375039946532248135145100943215574269377291581638947120176905334097209459076662819882743063241120506146949719392926682118040894237834449315991194741378737222893887284423789282657655340840118032966032766524870614985715763191323510902891351631073547179420235541795992988585014233939600871389092241705995545943993921813621462966956937314265945830729408831513640629938959627093850482124911346515302816094591927864614470570127658555443727308635192377990402490490072915929051856220193874707366623356557855947403332781929375366745444797033515851675296726398732817073084244947797226006101664080543999182495111865076008143476430732909649798959843019906715840505669834959217561362877104458072543002017663085826385173254596737014316602225512445442688875314303804156706473483889278818729778212540649911998684736590650374417703077517535039246547903007276089219204594802054046264792013772854875184991514344887202290205984001716507895015327150659837862873694561744495317756211585511312157884532960715350411337397256327260451679579805865911045374315188020093783320504694721814753422587543873881363109293674518076221311780513612888406569283175842579038640112735400102668104868487195769187061020324423549901069431547786092661010904481482018539158830589898847746809417193220610330342990548356286810051959528643721363101343263113965263554946166444243917705556864414572341992157895607017962297773607265082252644278975678104833956030673827281644178459385846734402194184231248263168020518250021238085034287279030678445387905030370430699252046872439007347877615194630743324855569755160486007944672308364469875213467299648858884255884072487210922507519137765472384342561097772172306817083651091144283758767592636357001147473439804594521983463738928702833454069120986731701679618879198986209990523128658853029482338646565761339832576828717368641807535467528600768091651134780436619439312167160771381646886612322563380349874889930421508762248995249150243304770873980628740267686096373614747968120930559595563373426580253419410311004942194297462608824530817293296326529882611037129240637307672949870758416796235537652106107695435086093523884899830661011665608832286851267229605883993624380254300924584401801729612220659447915614805758202889866168281293774814202547311125177194140931690450772431336980277176068977556794766841694677986271478135986395059470540782113627172700807345305716696293142138601818782857444915607203374869245066070385759177996898248453681537787999403656605424042543643981893526953171343931677189584142313441711331937183890783182422729223705767361857223073732586592954472082676338068311319868254828859205915854813934588490665414686205871263970407998410963288219735073565919033250918426283994234283375668114868693471750615630048581363729769010645542467136554040208028397343612044538629322235506894435799933683970418643978553592608394604072983883452224087010788407322250440646637334368725427362346187287530522374299645204770892030705165962173567955858982511793220421835748540884963536618522178385118852293677019741840809786849111091046682412528225990495435424174553372251168318204551803231396519944509416397870969065456795325013228687023731730335698740650344208086762124586081871653272368036258992169439172466769801897310436851648821844747700535689300373948509760768293794427219571064849194530605646998977806680252817214191506772984014262537354334034279079745645072851769443922666452042216560926325889245263751806770972267014698322397169520279390947875000944361949783676492921893602532703749063967868042663795746729691058694223741009600268658983445282524316085145956247954094692125022339804954489618206832408868211442964718159312226269174383422257632510844689876358949514490969758033696481628465518455062071553393342127471738486266484619809947112344942389756504729004322121833730675744882491894666613128235658271936009477551861291095960030349968558768147171171675024018436132670033716678587117617624022790600555834708326885360889120724135122157769858782641395255152403825701090422476781729005393973543310350354130579712981941486908061673469469473008718781420891948680440518370117645556088089515008424817230607049753786758808215304800557428755278660444425387475191297393782726010740785746172397264391692648031367681290095183346642652876555775687030963334132060328550509881190482998714623607103807780578828967398299294189686956442603993852367773753519203721473579650174181096496781921177633279189007293554297297321417859394359985289134448125827379205167557981381958412155467056124980805941262717270296358772557466405296424720118539885871710211402698968501211007055820573939103512526053237513357919268858869677931887686632647255036098704260871346667616541317832672785000771024833067252670151081910054396960208549555029425577056502803294885977145524131585690959829107910010244438650183146558718031217528331331714233135764851389625203776705430524480304058897998231448923905928872275147319022701010163619591628744278277357488957066873160377303589276717950937376778255031657321350998617459147514982035303193266581162999428825100915469461566361520426642793928099801885672489675527154993879113482541128861170483013384729734290462671845832130314907579511526845194982641583294958356042676325032324592647742864798846121627370493107327699314052671705782048957887384095273219840898994727122127829978942845035626959635970529011579517954488158395760740411641936730425901232789062091937399841232329155205515307751630000349521570393218238083644352243703081959135527303540901651892393541089873916727058325425286403421031759915856285386298306727503074118536565129462974022872590962861719739783768320619941050172660479018824389644499006531483732010159579604686897145380678535767661840467683199704058171015388286534664539412567421220397605497186765747734026455496984833817862188943778060817581436153302589476984320061745970795754599300922585873591704124570158037108692460013445305303294556636688137431010546682031931070492538788296832787190901701296008577458384223943489528152068711079320999147905390836528413523198511715832738792529745516617427532132721895586109960429606809014409716994478109505375972700361226042540281960552061784982406637949013979443090001191943929627918506310379046379436680890286834221109110865141910328264050217690743994236453554461525843496214171333103276246783306011224838322071015817767640308076998134875650456402181984087890194063401515352727830536478333671255256410584105783250132120509198350989943394828097410299619063331460495223132683567541290837653258922960919123761218226931511861537814917449249461490999599708133530436040868561077519848703315274447736900261334928842803193258702055443994723058564254412758713974792305968226572997891624331211053374716106155175309057260219289527117938872601753780197594113801228753663975590113424331143346830707847970260312501956143641547598714523298004467431277391622681528448209117442520964905777823614327226438565523440636258330142113234588234119714508298568646995195028275835461673980186584993613535601740682251816816276652342234563411445983278789217175339430738468528577685109994641849123909524719773332795018276835049635134358956035563069146522534120100306768075497032478736546553054911203438853645783135701519328438529170532339267452870457589715284401196593829565897732990571488310075564899721110121077781745241424836630464817633218348838714626409169224179631905162469950768293948173567984821401195436174263074166811541506078634330556125441471544726595588856042311842410627241488433964196626929794386301258081521851600745890233926829851873728972196986585176362671933200187628646139024820433526597727922781394982364797920431037054772641810274448662376232265193543930478618016392739200646265262491262507124676766686752992224864509885729238530638355196255254505333326489814025999448746006239174633208617631332633266632274322220871493276211443986582350536459277656941374612815269210831475655846367795808123983591608986825360184092460743757297964698508868396765009505995559247284657488338631312316183599647423355604979921467136982343017893773895685082748686092858798552252969467520457433614269447486748573828799071278625506130758534997328382024679541335160700643118475621656647952338470124181642455442387148347262859976485273026231481274728712095802316887892526793773254846461053946215492217840259312742790496523295862165148654262873338181695100534072926025492502741808649487846396041930113084181292225177487258561009491353244175244470259303818659711575469600998616993829599111527700229785856998464435975506782291727879469494492841401794444307508882642986316625795937751437540557737038297647440197667014293731895917159018010066203659695664303895902555255371633584185236369655015545007390728355038950685705991170391696794215560941355016018368464776285049369353243899620874517867846567624385672547906682436391986762287800013392954212661562823325527659954048661779420081442604879688860912616470727856781980370619109253572338500994263228832546440018157263744670760534896128087912207811705681161162571462001082140508715170279348631592599424405538039779237332158873286529352080725117097257662953722730626301547472741735637975684580024194815341760389006870108390088043565200989021923551543376811976276743665748411931384962886202412442296107766041526746210026306636704971654404144978877063134063649171927992005890278672393000691510015303272805725582919189862709352157892694401615566551774352914694266928068763809842912944236652502426357930130645224333107206226765748607869208241924501068082996010963794300251178692522766245828545580406688773626506393757119316065226290672404960570393716323628124922348769616674948082445972962919340079267817850232479096103967053281369173699111543867602899333116619552351861374125359856837044304384164917412080395709651488884190119050409384093172336267884691096627422198263513199213484224742458865622130316502363960015937598792479048285600848192401991715204820447347177644234471102859575163471476429946543776888569456250820129622176418555946955048009823531018311864496595544119681010192501320232527958219165374826192334605096397214868981804344955145404103058930433587853968740377601550542695377540886174230852167481833158702007615023564487318997840744084642179423254686939686579987046451267886458633912242644890120832009200485369252773984691293170323082514809565740492796225797800355948240037702620387084892121294884557161685921467764492080492954263993285028996363690748933307286588658969122583302994447520907455598434080566196006940298344472216911975607692992180963507747284491968287925495168975692353142471949868600876782688851564955404901658118951046185301283341006603187262104054231994047645654443407646297036000544207667591731495124392984049026876571075655071368057512627136096540035683046133728545209819120270468440631696922779671422389543245102514585570935669065826141296012962961773662511986599190206598526683886791185500197564452541618466196643389692385860744438273275960057908394833936766541031807827477915629315765723759218066281077718322019857200544088670100300213578926771398989665932316141909079470375120607913923936052975866685174626465977499014549233404595092347978018271598927599137335020141444370837767653279169922075807760922766147863357144808588297389726937694358999980580699681222085308732863611851552115127074893240791331540592434183308246367074816358400976980845968109744575899197650945840930191783676233551791208318743295764079108348210584780846060046896779494523684848738869557381400489561390784564882468172155835441365811989402432935374208237899132539502477748552080170831312929097284278789734923586027424626414100865907626758769062026868922284965254250079920892836924112940679989295888783820301810560520966538773655282895401198715868743482612678758381063470123264684037951437324013124701423609974455966422680472055269185505479769932885414711280943447848859737320657195931581135791613043375005875305989986736604183563786376394416223311905643850629530199176872539807293039887437096460839741620227525459447834558434220925600053828071750293745940298879307549655568079397378229581268294599235999832856881838406680272185699370230677487613668351542193770700302728713777847109237034577482012836804379505600243984715096488255165128950259993938736001880554364587788687223809554128359211550998225772417975619309999111794677209322758246533534948506246600737703628426040695455227926041821414522240299045109471138731011032497341827819892334613497427423574644613606331146779286208159989195250897400183497577802638505676803807824225969256420501155279971930308933541269831921078755645257938390878813100313984204159395346449319793189506767989782284020145169358630251456070502360632904147298381092514156768363075396984032189421337379765770019505149608693165218297806552247684139573838426418661507613300109771394758533811784769334076283234583094671405809278208175063796918643778184779841484819819975231433517086755278430401776150834817013422654626244752110974458758384692800388129340764944823497723991256213017063944841905517090152358590169163576366645812161510413790929924471351289987315712359514513083329985593756239198747850652012126725459237956590286150757420874630639020371391037921078088618495440533409083292238442711767727299595963617169409919494406996393081756245352240729674814293523149405317721910252479377939476375043850589674988311598244836721968624602530145674777095304542760721377360165537528537653842155017953324360103410624987164929152622748137657634322368318627715977230890292948052002028056905930253363861361779421367566065739063243704869659139241272220399357650064902016032442737981504628906509357041994328815553870716019943121574209113660220246078198959527483338245268434233326459323451061974947371519494166896173844294923821565142173310829530505023056606707355547055504590478237560346647751928848650501910410734630181968021966164711706653800797495580776711907439071036790356546793362475703493453556830515457412885238476935140795579992752935163302761505457364482549294250611906079357252109737260205355596954893256165527963569230317132247708507324604487162305132230809892467382234212431668482716816969788113405874132514247867683763515548727211605785406829850647861094740430216512971831414548441081981155894286166843833412241829350647119989183079351710298610092437323456442867324710794695052086922350262750227989442356320173503400353774742884876308885040466848274897653089339453196354569270909774454602060361533269112496674542221376862854240462537335616772500789295804188127953955903384190721636863183477185493161799622144362126135876484902000257891095536251455707207957125079889238980310153216556989571159678116160136974606966554447316770666551728469718414324041261545570391152999513747127053521556594830533672362346514981145512288127118118754712786845181269330212439824007693318745872452185410346553210228280693234801694799183281432128867133005617326606029030332531490566951488258493809794070425056968054268038725333305275762123362866541835916979841672755584389260324900643273068248628583639066213752403107567915070288600696361578486493875154598353277543784810827304838670190059422939640104290800594883390794458080763136411464021759086171020560989596671935719958445460856597146364002884410512948832973150866646561504989476927319666012835892190216611276024131876351767804823191828788499933614932040297312371503712206974664363404171132575071623628007822609155951552415195843333051781704081387284639533181749054321764705587575265399469936607065807001968343809967685812023303155761283649837418656901025758423903347265115099735264712120237086890239699587375222877424446833812922698867339299777848341101009735664464817943568657072840744107227202278767424306426245661807454463189778393565186718486617078811707765498084934203735092604117651153426574256317867903625308869947476829434076604918946876691861960325294173011725328409818211919291213093516104920930607121088672802219457870654215413832624299800856841016030651243513050597552528449413780836350534982527530377406867920178238986484422437900601028885160587551639026411887376347094439785871984374111093711393356519121972085293105057789764606000441510658671862586878598370644840238010171102761755749103633395676993427400927456863403580490807011168198650616144438278663246045565953702714778897328723935176708517938846264010177157822977437072802037821609225102659064335699085339228826536637685976403769138658635902162175270198870029810354090945802790458502892836167013813194473363748874749308926233808353601679017601182928959798350648972262589241275415859467390384519998031108805367537239188814340764867588407242976332219981392202785001995059713415086478499436321375416698723732212919467321389171222352423858318073146910520752354833303648979199472511803616260297380532760956546196329102929195939063001693484481639203826440468566327179171379759757206507810430933001718539358039511869851152918449532499600019639221737100708589923780935959829314027325669552282331505115682101027577905321015103076505794896866991044731218289689273169602510194497977891265658582923873288998595309495328144419205856543943056634623723618161677738825788780246343502992175400741148281593751864384482295300979364619806928440693303105736557944219515294719478200845151131132846569085188800096177011545395431782040957045137116887077751253199111458864416489727445676119698927779867794472568568374169681068378375352136956314246512336987576427147038697305836678565593502668592630365050918329253273074325956671385161641138410320291540981023924401929797583228280117124458108405265844257736147276821724663123825036360599819454917960664435848137758872501282377767250419947818971782225261056128043467574533424202120738662050470665790551330631627773486111592068365210632426966793319333571029715031490672827146420576794153364645656217955468050530611653392202022496224488058423387544559173144490373314712918168488128268856949363201804118995121430332517949608680686104232628471094255169342564608875536483945416218005240168637909500701556809021953834659322140799631650054558665599046198646782040586112775793711238703722363539920748983139080286076629256416876733457263155252567058722990520925744138920559141118476734625669760898517589225578287197400441207984782632339132104269756487834180878905482023617966476875373009630995520309551920379444503266257177738181863624622128388572453879132459290950207309683613412482921829175956151278029144898507778960145917747488409660655792783747270879948782357086068480627730869609304419334353056165508371200945826912539965816666811634378177275713542025407868163036884805280271405092562924571201455193446852524527015272467244757224559666581965663048231291663935795344747825825962748772803169537283430234459279966907863134250666143196580228291409959647336025133728412196195417145714187421635110183338815780934999538290094716416587963045155600786281112596009198633080660326622001775180839951253071209071895452779063570995318198038172624569703444349973305358130922660071505392646091484081063601020103402380625390753002372917851005761905107356604313446340429796021478090763260131763944952086874730065766408068527800410683469324322499915066093822761233744754088007502698319695065461837583661690219261187496090343052115289285665255896824169831062686940958820004106152992363258131872764554439718544434723136068457893596706927625115714642771612765455135746426395631206090114821170490033342812652176626731078611563443693032920407110432575899947961907348483651295492082765113756464378917024568295617945699317471107964943302854817244218643846345847582261559682133841768152222287592512171699689173460499251517816252384834779197692533321144662354809711945488637977644669880438263449690376720585251455537730390757040017207829498262202324466862223249215811859095609008265782242572400900234893715406997139932779503843303104622825892611232142229479526499928451398149876579339112026734345125938459384181780645990197264464652150624081592851839368373887279616122661345749886789584304792894089497329328282642413622157660947628375988958967446358823602810112322524533944241431029933823074648302816156181585511272704031235046125128474377817296755771878769367033916564610021365796163219617544808474191792410478902058660899309259017039400793334887194023930653932077128908035439703301237898716894221255076433665760422854203597627413785997638853620639833916404758017464747907700183586567627526696659732654690784724978842487467282422549236846321307276451555943866157122201426671314679614118135470777348246027605199855439107340593823499241193149134715375705583406569309486334701327322690624558380616384653385764397246623959206722365121599811267678959654617736786055918756360254254151109123719697493843484826977362310351110778879313691648411804348877741172265002336903794105987244426612449383066796130979571629448959811424047126034841427352283124379058234035862683976121435282896477886896325314293637044720529256407621299291620501666951310639686961642691798125290518681897901680502124253159151493602231655563926639072974516630669638145563946615369639940973325054761344759100443147147484939812093061165288977147046940037414229285495895699555284089507499951586050759471920407145358625976007729473822090851463931501328025452369674987233534302734972514933376882480851139250032303759095662231758390569634760997315227007846771403339944445477240148389403446252277932089208514498050735587117820776501452188638879838823944233317708215733247721159140335001907613713070611313928524822596319580071046156100616648542704769745556116581111297675077035521447721607162028124467234188511174892990001417101987158335586031090261355056342538572880305609694268621307414390938883419365691149357359362333922874375597490086927079961592627338413308755484198341818465356082484630262011897451012025225860852825640929390939199699230501510141133759016386603548593301595628222617844877234961128644965090824422392198251958992527995627059707481894286835855451866805205544792626342898983375019198792337987105704172167422737075845610733708384348555858167376937709578501512187465934319731939575493365033829441274763190659807136074938678353163559564516439809639197013013723873263821665890129130801323031830543560088297832123345409324828480799484519465672572996306674352696310457709357193647950542397045057699158608298902396591691989008424507216884835010210831223793133198296214944163258475124840999410927517210252983622828547346011281457495203444638625106979147658692446434144440654266618625634183810571695824411735684078982096060597535864995924670680533169041159177103853590699245744323470069353075935783575832649100213324933737183469675858667820987108306297889052426231283421520084849949686987398115050667936971056591807124044878456974085169403524946674688718953431841793435446643720553908029588333909090233149822974463494206001953064689656331322461907417124321810691409407551925941087876568705667782618113800178837776313084335268084555385671910623184005277684761967587627813767879356449050104924992426332558255288045433018885779488398054511563590392720708220789157965372677657114463407422601123415283596919930626287337801369943164489383663958423524577089648536378626537589486408530213351346134237181612669481918346179193218509816994488099143939053445140883062612415322491876849794182952344336753182821582852216980151105694500184319177907827110069410054888671890016401477308608554808614750085903839452087025058302132915982802248031208295853391796986163648806278913956155835096643895898867360819928194732913418653818444859377505336797565895711510358492152628895617370819262755629305072983217451247408384772025835101586925256307825945912426751481576789937925620494110291671233170040824901395337172606700954197282750128372471613180662757042482512719647643661195052892843060856130611061163011294488222538523745558858869249623511808248362669798180386142236649497008347893261205672247762005841645361405674920978880835505917795298147535333785789712661410240825375179947673749073836784871974056026237212465977766372929822755698694760903076024729837395807966190787276824137765473168922121522933460524981129245981756203278770509730001774563275598257667844714614212789814127358302605283768014515610285636319949205952943006617853485122338245651447565921667648015247151084055008221873154030976469140081114999085122991804255606499441101266468371115926597024976627191339827933386013426583098776516606609482885897598237335481161332294837431004730929300688262633574740051287420447769510977861466655752071321079958691313488597385645882989935939938465667408405859294006542882590726170783588589548441943235844408940972379460445558490531067511606956330348996239094914110665211047296073784481513298551404591305087586785325311979055331139671739016146729795644584821902128217969392180664135577249459490489951838924674203646112546851579880854309816873103509565160098486053978082463950976716946111728069151491376474595462244716387163399398457734162957352836205135830585082646519796459165158287709068729549009740956880272343822584169438520239027156108275124184687389487395709240844096548719146754032222782357583330012027926278965207519829582867984557065192556444163341392901522305565936231395462865052141470417648896191944512131763146260134366169479544891285179747719465951715457773326376831814290402515379052223323425709369352588495683758760716946330336002547296072197421997290176593485267138078929196813358248793434357550581263412946253592149783802241344057083129274468474706239919516136574016760946665437085263552791176140488836528018610421548990908726643887418456526603344577701923010874130295961860398311830738176016013553787215942116675828744419078315760302939282257559855101576574378612552303233069255661417292679021929496321640267233951982410989591412863561216308548490694817892906414825648504387342670249133857600971453024763127780886941259136355861757944164198392491508980502902523650893056843223146167851979202649406537917704392593407926680447983091773440127172079043776154616552473272724707010248490920880057980447751563455330436177825736113845909863854136278041455071334325726568567057995911079143239208965808606345871926322569768879871939668860309286409841739557590630081494652117442379951788566185830952067079299269285287506445179391880478593903828690257528741798547604999032931780419166158024454324943458225116981298291973938511426045040753586488385676454802343706067239645801128390193253967682676604359023550523021164799958433472514702023412265347691166215220584549416536568538108008769743697063398808879248599244200492139995140447887529848399591647531225627866277877981769216930365880215340289911579204720463694167895766985252203301411413513874879922407835001834578637037373224277796724237538840697244184254919732094589041139080063798307305568430174715801881936885146900233887669676242853114518242381883391147231535952085259073177909706177868959350911668275780848508436011996746162974455259352603749150704525772574629549789833767871037089192371380881867449654268162811647070372169254641980994357775226584638949982617230069424721969348681399762908356689248482645774935665958708379066658364989570441442467748014596402918470819969378743528568922172823421284428367090660719189375274222505852964478813816935948149753578879061763859228643098532938865897666154175949427338980766168157375117459631826600431785828367579990277375656267185050920799736012297693276003307186107534053123336095125100797521896613982405477797014836117034959958536093658127516078764637415236490596591305994985960967127663693837391838461229122580366374384094672344690762040373214797752449112382980234945521624380232814633054493236151990231420330161480220955027997879383253536083501202593471706295927481879601450139663924263328923091513822434381296462540595886423179796110295149054586331279002469100796441469546505682181006852374943780944710390749745388179433665461754336158236019120191322233821387512078979203407328783662959415023837243598643988789761628858461155275104048774960480596400487424035365440939083578369255702519404804463981186457165388067105243803807889601725139368590557663799456375641578710326123377703704334333730758729668907416723947143390009339513902131248139841366402913339854145963124140993427092396544495089633925178326910635439620544706078904787142496352446163959766846256380273996699867793811842100092873796822509929989078611109396116957873997237662251748223063617764936662013679555378600256001455068353092742252829574160352326178123948619666511629256813057057524831177913145870320962240345062893173730425990935640708237349562418893315589177889151114802620613297258490785947400166189023994627538327589359341292123706497721232534519356779891334643044597785062714762598713772789184756693142271586289493403590316987468845433404767168969135739159932522679028563354379079327458515607816227227065843227675833461981645301023008541843606238793569857193197078521598210487827171712167404208894592069850019155265120945030502782901036898774116050600074664439956690849445359429520637467964131136527983676452600425624612597897274769954876781272418134498129656405513162482706527964122455415648035714310783760015510041180050528790545071171620338844040769539537858910476438857768124940730124560983566779210060210159469236944250011743505757823442057172058955003004837149925035805861594337354046447033565241005002591462249934242792805151352618513803263031416421911884011033226856219669781159782180858043010607349080117886448558806003113561694281633280472041313973692956620824072511357303116059085266303938319076685877388647727342579979164536328339620430327994834131500394515803494820791852527691067645130299545151228246100141403244995714291504600065041862352266965136566112436733613281024444486269232126578731096635736601011861518276436758450247492361417477534482493785285893907104023167544359766553779138571935480518302367626498978341856495178084878507274812124087031356662499986122508922726977432436890479947524677803400414473887396406093373245588527306199227238070297055340427244835294923468699461377180069172546751396364661027034323052681137121446223758983390234633644905092745877394621321302714705370986473382830819419288082309462923882400713061776730965288641183281255927457513847344235538864984473567855036160661158011042593570287785031321460624843975836775655165796094307670292151821829807916101268259542422528206151193309359911177244354816995274465695046788116842092855410738363302041891720649908218817900126619878089927706791883141718663444340201036715815429011908231705370642138813227840424384066881013266151728906194631911327507803371895567906648172781194872824404460413184867785111841825354362018452054907435471858143469978877631582125236286184196851122936948086801029259171850487231373046010364328179701160964111275943393203866419951441673926594607112454492721018709301547951409504403406413012949785178679385274367067749071335331300378025523250385444653431689150107594407909530684157864666762779192581149075084465481047235646464861779437951339184641701221242673584638792388560260581060054635062011592871593596100439861646759226646995486924028108117983612238220648356646084285510501127496501166571750147003488519500089242763247082494307354499838921037079930534978850927966509449123678482449917517936796442758390829562954902275953615179619634881671063826061625590210326548800037159786000627401991578222405639752030778676355730685672904073389958236251266822914560075811312086748354191476467239420678555152668102508740434053266984476802986094966424565134863796417779407987948786576965464237808243338063186049999055356833974929769826376835020044869432971198136993886493406073947326987629555346624817242303902483524137056363280840436330961490645428626989973258970263242959062640131523883051475189598739560084246703893312516739310100381774017194539037774958675453515620793544926183340333264731171932927053622133994730869508655243097562554773943406530032444144644762170063270972301045995535560295123275095828420402803923939691793850403327411763609870510992583013504788315107807491299759810210416480600140227076300719817219031585068358878818682817989302116333707804902153858432240295804548119493604862121378041940809650097995053461692597616599386151740702816180924477426270803558609986644951251663082276463693087559897243466042900139049190534619101479630147460671244229594581866193502011379394903940048915895985501598872197517060276581588269505239429359444428754234946723860737560820998492302329581206911308132886081395130511474117645408097302607547141773415670947645155158523896058784716966515127506642139334023128004456250642076230385066492058256462095809514998099558212179294812568307970134347149806412562796138351922653306245492955212954688890296346214263730920851078773397474394541768952714837836495832496752887835361914354434916917390281861397970639840650465225420669559405579851859635864643962958030757294447628548623306845500835294230217640253446188113117066287644038285101615098287451474049714700128354522204376250720021891469010836349270714972295189236797523874444070895666175411704646957315390606028561881430229459089671284277928970882744567226717308526874250039233993365778110513484362532569903144439418279067268206855161257829679879024855795423696104027514561210646304244361377968486449755397468498634248176712293647649833636485827959099262632342213383234643174255277181060830437111912594464445855013322208421027985075158731226293679744515613941119765372098603010887722478247472199918832555114989351037143105898455860418451803978873233497514528182006419981120628593824941639501225646987111808729476198722800878625343343167739076521438543505642500535285586832116619587974566163819210432463502854433440425341303675076642854409601297374009970084556128352016670762455319595336168801442844583680663445873301448395789601493027832923105995293307947553937458630718261944208127583167527652205497504490533104674149799271182199298955152809957855876283637550861948993654375074412320848875247799704236956355109684163797963798113111942369960098750702820898291631913520701573013073356487784808140079325856310100652645970456447735100889125227361422900341322493549339989489563409498247538504949798582857296526090413855107219963896743748816125228337093458730247113467862764671105246038549878648797130061160101991761364886820346402515156514424482111063563701013307973526023263939897211013559552744164907393630810564876503240175611809122929664336273096967981607840407134989340286502024491933573076443709317773017858040231700354986470190700571266385482384239640865864443199853085819694713174925102342882382586622763143061666170453876525177024861989782138358237906282436725458663274190322209587236197385102170810968391583497622681269463484263077572103673245287976647304003943894774183258751070637474586113531402447669268731956972266238485957838524347295446016301500122580412339851247545741939868575279869197949435723951541421201672115899273651058147909351361455268938712930192172152858079937874620989220881967033527215040352428118640512069077229557865366723353100729300528326911344626280493885997662473619399007189023109535256457690036120453020984320517150842192948672414058517633274378610998919415781428496856459567531765116873881912621043754467454492913064803199362269574912314540225644865475276389260116446069483479644073895554793287942541930663950362087521682481079043697410849204485162644371853093233246649772083779710982381829569002576446007942442299683468867165638565560147596881298517255037582941242102401133568683413697220943346230788655591512903371385341647795619945236664669263439018755967934985090217924268975827497957761679137012428353540594605497465677507596079448140257776337684076667105865755834229894476488695353007924665886477384473604959352429806315933603292089199582779911987791935789391817309466090236159046988538569543499792187426669605664448824127577672936174281366729784746549019103247203510441360228631521302756615882005186871049602315718286798272134318383311012267441310590979001575509418684460305673753031864943141854657679641465817015808008523273344325848753943582882248646422926662784028453984252579479074895957616121341463466436278974473561145359567320321534672836521793836805756287517300255896861805441142330263043571206069180808695662873353015704956567312062124112379118518509879167951565651710814239714228775009208783646046888289222930552464737667373140797081665370982258607912569441860621123856446671153367682473854941837613402151402684831060684403353561951212763708285944956452502883980538190394460520877258314727289981528789883534013966475652075010476827847422397986859206946743654068407955661980765405887360054533792775550312520186131834848587380163154766769954309631807062565833657493766608296013144629508016456411947685929355389545682853840359254580208820460448003126876856574468419977010977188513931535923202226386596458118754336133667043145856402410574858377043135209835078548759830009372128122015136891465190258154497376307720304949873857274532487528892747993164832685976341109943410439127014835246911546187487378793716299005354552250406318032768656010056979694161338379206941734278958223520533871275547949523792418673291295385167297705030023221815705226445878199528693202737425557993975581546691034974033080871596269539193329076380718203886897533698532361710232248786576296666796360178377618216823983051746975922223759008690080141512458808338860522195207585404605482436248051643216587250074469182154092504440382239160006751152948186368030177818118831143141009289173507972504492902473204856083283580272330414766719300598047691269560843082279468848625280971101882635862573139816835909107650770552543397368793239482599221412451218506013819908809171081749508134527287939653153268585922033884032900119190219521486943912684993389002070188070182459076546098093484461614895776774446355183197630257750111660740084295643604150410673883405452149401574934931602341576946215866976080977909572421192480078561969368512600617467399680923999489217044590372376241480871565501276579920720283204906080994051960512788018635079675881934822834763507123377309958658095215970672011426898042667657002422022792505769931575913995466571164817571935473799802097955966698656629089244483903528379973890168491804624139755736207568612584583615774021078042985229564749918106853491194589145645116161495759610872199068404412407922514914003208554889909868243704834246237589147013737971531449594960084375566036383929098647172370907267148058117839249229595579724311352653447119330376682091796318181413736479228612425988867018410820169776293455022724617927030848985377566038536842061741341730852260582909522873164591427341464564581589105190132854194691376682170108211284315553017247549922942966568671058573308214112971590856423304694515893819571424769867859564508900585770621753510988142596635825404273589869974286937982774973829995573709749301708011210431042884612976768820445824853771526902717157130943103800156325046455606155188432822905363503658037059749001630762215530484108690535550997671523961893370229121469157194655687773784629409406317849769280735464577841127769812794595514504168357480262869996047091125156618000018034799746219792838043864295770734016593388432442688406808334738938605441458306370059364326612793082396416203145127824294651965446031414038244524647262315086489457072236495955113350679005647821277341685192398205713134408238825719087974194502542123829088872301935668815479828424916994858301612466029199451904809368256175449157493399808535271189939496083153123526436282554963998938074878026699357099877772005640078978273980903983228678456823274311213979449432653358174962325561532778633140745541437029136093629759561777815420649670529571741613707225894539122686082780059679106187767939181062160095530105957300003833838882844805397966096410468015777308280079121420132407825549261778982462207897251878045298081417612864976721239738776352418585552892276195833731176432762854323253762305818508722068057182793030533196419194273011732277386880216865511352565057465523553247898084112370744472258431065535668885942170103245488086674596360082478590185073095009014259904400753104993662673660305579652034090584132345437756338793267329116088916021624752772021987461749691816633923707424191717522123826689120812020444712290417130448194733433902807702134186171416533369661424723109641389886017072438762764723593567096008072778010652423056167694631916246071701112131884940110274993563187753832271298150663513129507693609524621412804649894109624127840656332398072060941749989410400544049487044180919714924242816439786234273417157560740272326817198682044955865914409617604225943099397362460535958553864914294537460094701866842140680014808618402319484742435019886383608751056794426803966216703071691288649207136074640391607017393152263809097730209405257444988477203784540297479401005709287246606925359647932472547377421110132026543183944468543797124696169075543144610083539490201725837291222387054330711253554031206278244629305148883578870529570981348872217150425261633961478971555070211391633226255230079893340580911214787213796545202433107027991717053779856273964820834713171598937748683576024583282494895689066985349035531014452551562327880012941391143004800143839080093908323678912545435827975663049388712695913136429695799996298762348608436915727793768798327522832294054559373524895983680535254597720737692570813499014009815837056325175485835760100243223136930024541888342737386939434696047531215708804918398994197562074947956437297341729963507197264900675545623782502796450498641343689154817185313325116650718681922535259612764367517431417066641651615866876936042931584644778521299915095251978202442306515304116574814227635186965279936842403791539715240586323011466581950752215734654976575977136392494979793481995220746527332023980922820241833347718323062281772221578164013402314583759307290781104465521099940282576615900249372408721438996186280700818617410415530784164841639901567917302323266751776052794897041283975601374878102605425352984790226574269122836274110008563562325787745308747726099032313406511466554626996471618606299954343379489134445664990614818241919162613270677760728619136873224722685334345284585973691064168697973970780315253810862145489629739559465071397564128306681008719519713370715507726559130364896167807739004213217290049711403726413050642131347024995196825227125371134461806514388855710824155516001089206455468994605559066693659587591392744322179768572528107806417722491265714492128743590619812598047049393710953564580468952906099579881596561095856540941174548325871876628426770763295114770784430754899927884874425973672478435698257812739844286440818513940332264673032164746905951859768877279352771532843349854796831551853694108569382736785520315017426458630114641602574626716340287476180048447111614587851553216272267099891476305551266553060584234816118739335269993964559481390118591996828114563577698093173879873412191699239305071552129999732975327423050382284015075611809798827268526682789951302768036711007040144666517492549751304548049037349882404289657724592444333512628887916180363540083111530659891233627433704687774829725508795704647977397180844467718088141281393272103462239834039657548930381283449014165048428692494314700408633305641282468760137901465914714652014957734829868401076997810436957643726766092235521744449841676319567184820170610215684414779971154440239445785074618306617286473556979118791276339852398062216566436100390155654613644853462959337764995766192403333363710295825019858859067421039250906024090059871671545068517387725521904294859703489021682395967653216263219021697325841104867611885095756724539583899521050632725403982410926230248898759044666174977504557781922373436256563642949340277109645873558767230361028721564025837142918802917106619352137421137887621145871063193325073404563472905041018866625231603569543686981239947181707517264110147953991595399286515008222330841331945045045096563456349570228986299205781025446833498298171436752637761971685736332257527700046559350333280481290506116851077224667144522248899506465661328993464161323175104848407250358412362169199533974280129865101165068965001993109561559279808372907508754650571069334331006516624597064281224056936711450415441820720710749491274970521422065355955483141778649771403252112346781382035731918459493486781866936749318223505486068988379472078977951013877839653061906036401929426907681727245367210642235011350352491184787352351390033451546229557173720451083358423537527905601400735670641371077150817715978661129723585073722782752223801087983932644812473810285846501282303788957794233893048981864554093143676572140669671817430753476190590317372084980020640030048210146212624829986986506426072498416160233274061395717868734199275453190557896343822020800029598287866302880945350683097196532505184901159515498220972403719530056870888866575107444173769087517100844668119429413060723877002343010202463171899539186873761121870781015582016130082570057194510798455805703428631969061489945000168313395231991115673046811159742376650493999178253615313160497175293954023028684495620604438193427892134401812516940770317951530322920370829806753964617798383195794224816387267760122630077140928642779856313027610432276531733458626604378623096175361533351879807145280691048635220295116177772030348157591188489288288694219324876234507428890400587504220703941519963159051381170140074049758928607040850786173591003404456662882201626956516735759585758164683729125123600752934373687622074737965880832567817221070048685401413546869326002640500298585793471680850736627135927725462197125281063998065317364416463495760894107519394630195342002730388154365103515087987745428628158662976435884082210397712366927186262665646174637307515704383595422326195010958285304252342832074198374190904654249974523762483168862401513664636258960860788469486774815236220693228585729066802915275676793947032168824282187692065545107975332807720195918737608219109682813707241382908143498638008432871292978986492579833344576818058617701375139828817059734225749968541029172382530685618734371227562782730790317117226019424324304147676922189839380370648052011216708704289948733436471026392941619458577772639312135937268140924596097938843108373340096364398978800820942639316847445550444687651373066829313751021641339636933013640478265774349080776292784782315175592384123072292762830963252202369799265983569789932032193251529375326168599641223413815270063332108465013060945303825416907200676900557126478655696763022094725815878417803506090888338769246769620294792781888341352525309297987812455284888923905938455968498631230047718568783749894399421331096414721415281370405836037300931997472156405397168943270555781537585973201469242686736016344996872247054610834282423530568510538195934390699625193424382027776402474434258718898415742219170200782443260074022862620987059601071070888088420182405625530833668190585491363946955627954825411370921984580452074183511122127324194530695400534569034132797070344850233397319309859315890894804618673940790884950351665025088555858061057871667687470291178964532512824226339757446118736256236181850360355291100097414925541326711724582093120884025171848531181081552486960448461952594019431665383453263405795171901990055365699021545869707976614848163410336862588270965514961530329011167528162403931170645644140474311927828850683214652281803006841691076425936748884957865577575161716969464723959230558221518314243953765942654681236800400997220855166611565936270276493118378340231220975336755138136274627509954801565649801121290498158304812414169943825232753452075749189452754461461215976384545274796790214982989712302812742168419598544260522253913817775150969586637948301613055299083124037399494305305139227811097712065185527069466768048894555990213380586711833227399006007758175875731080566234293389664963990353305725025103182147923238556744410042787521521126154390974017798852326326280677109021417208911747630071762124568943453631524488177619634528181271640670923600127612842351134306481363845189418536586956508212616956436270487937018310944604510508662333671232701775527590120511563466675330947885515669242003748605953883457725694829712968037808033822987194010063417294165851915917303843638086366247225246102182252148145019199318264999693801530502213500184463845789845960664905674250588356195992367290897515476607007124022642474808145954258486205942313340406511282749244858529411627641794487675746152718919611728989005102557151595568283646237981908827771368019612608018033927430262067697835298518029224013153976285644477163484490704093680437199065404291412802222224393803872449866793949858384365041410498247420470896080285384105828088534988189323150868156884645252028242940133059771319641670021899031956472571208520225951708213692354368501645438085501818994504319312445998597484491995726326662536996970148442213026653571417255091784481066080496561008571876882659853686778218189163652371606314988259842794203235095977767014531451850258687774757553184777807490179458588058520034211259210829224227198951391153515133319336274757648594079157764286872309964593278257833996115018862530254620047938169817171880226650898022553715735536163614096445969582558292982901419398262056960183591432797807517775757448393319523981461858658279705525567459061868802363180695853841172491394198889531336113292407064528004229002500671813854608244536036670839521905101977769280015703480920931792465782821935895125384799789920930244346675062118290821725579965230881429036001100801739734052704196293883796135063575902393227856770066675723809476763730972803711056373243901580008394337295642663433299623161776338110212176494364439524534835213172849000582468667405417072401670413044368674242979183807562365385839147399656755711681725984784483134489542939408791829762605177068246421885458778998504348431847841189455982592613646526712460918571508300149059568401285275004779483551335817318660285446467465716997411094611457865777204291534809136420602525352351930211530817422324603485339230902861524716136324029967911251906739579283044245936418587789611012421645472420061222686521630587237714309459783880542285484132336972116500487138404559244352862510138094299760545960825718723625112421960328433815946600485460586684886127646844481816328937102009789307430916005695981084597620531831695136452224162615818019621012660978503003663395831442703316347477081489768992146756096234571459917040212182120266540493851129094027836403634605016975274981405071881207360373673384215330361207530155396018079985326149953329471434928803758926090329894684821837184586818943356964033306875807398323535101195331991061439023402213648277930586662015064887747398566544653528195410785064153967114901141437730716227460385883264649192189114807933974508155262342384972331882988670288083943336628345691525969734821759659567706300296207609112982471447496405881124136291957468553556642945993165225041176719814956763909206456585432699869592656739940818976828600157305983437222240604093929642723421809507835572047860913667390332290042826123735100713765374208643703395703214380624240011926137727126147116758864840313843380774678144239291637158477348321020301412080854109730984388076456683976123229926578048004806887519368532930444759281818349523894049848356235073781581701584479734367401362265960547328200062846345951319922627396759605907519991984317755809070271505784167735590416755604041590157829948441854805604492753218102137647975531914182150407649860890012490779474304215093889847437201352600624788105856054132627638790097694349878024691432876705195030695794246129599126407530663633433896976822858743062966352870798598903374785158111900782330180055335842473880157710455321868499753202122485177554026022074324107760415554408365785253260719068750583805707210113573843575958816683133917763390461264573579520161498257765569011472520105122706866627252315915850519630915026926499953131658159313550149264444798797704136721181350098023352684095297921035033474858313000885655114959424417955381610343683566393169862705465390156888409624646096304113122026868877489127406195556944523816487012627838018364547919791758808218346195403933315324539093446738997721503222079457030834657584925299906452775412417746457595368935144685593522586616407340939320086659034341736907131205706074599070408585765579333333901907246776285344212620391726186492630981732894053449281528606382179148842726135007343504367523235588135065542501416522710401124385072593059925624012998525773459895627949244526302271194790837742802739910728922042617420071117913915806806464665154797032057443155665475463638046671250839999384298828396729382892543827406591593291285298432996219643160003249474372211703280761942109068423261214543757247043391362388195760409791303709664785534100179257707863220366771359005346100681144669796137306903191358394711678587494791599081925792510353306843460836989757849240377587561664543340354607656954281114200293407741108782245768306105383134113672334830120656439589611707938263289265396381476563116631205879947290245098502728524201850089492470930485852096475257082998257213350443222173005322354938069874559046022936739626295330136892660580462111949003711354988207365651945929014674207261408898046438716035925077123334169376748948493012502467340755541474389460380647790259439200325055380235029984181373998985317151311652236955654716851602152000463385110884363785633970504148333229184247022824516990105167177221948869948937307923016736103939669037823233282657464998722862168245627048897707458191506616403065435401183945852327966278295351803375237158418454408022538830252301606519456136738401214593019635702899305430017819764859165303545021484691356727982043278984734965778657882073116824553274765038942475936690486583692371573806986162718836718241466316941995752157772403015195475884204146768905116447967780960047100286917267475638923560354278865157978424482536037414845637179045961301636191621309968627463521184749787657197973457770721567886571736762606549152397781832903685645304663863014484664267663346927051664750063465236800356395549798313476904314060744949978292641899737621903587152133436401637929194832044770217439515676590001677579393014439089390530118531717573272912109517169535841459762584720539458960639515050718898830782313102989934536617460576434463545884162777274303294200902210842070765135256287635050306782859596601293014981954762233765354047350883065519950658515227819168789423262658134161762533310288536820848837234364028666654176510777131791838837575921391393587173492756715340645293931464111506109123946916903358275039477558627834127052792188051903087254455361874571985871756433294608040310195062810891288497963699155156512606331101808566531594121574467530195065471934736088440057634634676229073139534139582837985394749229603308106834717153246719035399682499168202601389212975210893890657367743207412981120417421837030207182808563976380721397865104396647831953565596471620831169132627569149024416798096279784495037167107908466801129475964457252835054792963524263356277266087081939813507640356686595017188264686317454592635538622331519977974350796771458344759437065542207581539867611149642415268681317828232911305873646376035662443726633516315946861895975154634839932824133860672705930019203961016852049622770058918015677291449805836250728650749271743080279564247544050916597447492612355051563357919699922908015729497644827202058292824379804991104979458838046685046367817207905715599701055054600620526523718341840405246007527008604052638897193702227128557235142326030179149646435254130963269131483847073765895797331907853504657330879515846131342201406407419942125464133999007630557531894477185036699179906886549021121676854988743490765619988330820316555372641836822314928655685291019268695639346622296880178003923852112894369236410014291889096523996566539495199929500682428252189633413288440599295488002953333743045342548113646897758806627185668837637920332711693223265433362575660319663446289353956026711317097360975840621432780216242638690696397099170328326229141423786541609751052982910457506539775226388961877357349763586581629527630223755571373870182707745139853720982628033663154731077448820901856330801236287134168226792484297244768830349792345190990679272369715473695740580099369207527795199492287310276114794602430584587581652748721406356918837883362125420155637017423309545510462647212484964781784224888622155947075036375303095604801255257047641215499391603335863888230067980327646427732943403559404654820707142742547863633510989702321906068358140488510513456076648261844757580658770095433272615341789292570302517645942117376236455420655926767560502167284536460750611054360712333265108347460718765743682124633287264110404006466664285305663290066450879810115465264232107193717841301582373240501691601638241230767442424915882683703984289136110569856458459564710533506360442011619647281443186537292664381914301360834939294939865996504770786413225013716399329563045880959562312371127700615788325717426981970306330751357196215228502597321265216483448774010527613291190868141824812721048890007406613193630521363122211082738615284903628561883246451393036830690547297679046669951553053679726188278880012078608455807050354370233477886325889884636137890804513827128189415824823504713802793560699585688360751521650970898298248703980526758866336148123295043163729410091820042343074081073944886233209246097109653042154174653669869319189603080000918370213923753047438393758987141931132441516588142671550495031113622855941977704579353263669581954996795611886546147949314314656471702062263934979469789617269169001410946532598503991945804410343935284033297726714920808593585568628822368958051383842841924484401985637965888915985588620214000129024707632493881632652996663059088781674521947516564466492944520571371381146207541613795115749570234457762263890256250731843070199739575200509214319022120947103999354859231845643730538999544231643525980690579358412387383964581861508205662377238238509735161386090749033391561454425542524547714148224884264636263512987059580519070501873568468225697897798337700223967131581085729309765338722209921909711122256659713880842773508302971343826816693244018902635935352730782223775667981314353772180894042070054932291769697081864601057684766230323096467041453185122746762739215898907237289020756525867183053951975297995706266108856391445350421096001224102625388099340415147404491329201017578984932797089403706389942676485309059766975468848269022167984202174880516089749064579228935456954000771407858080656837014061249472173500771190416052213449058140401546568876492826899035500737712469001028122089414698080262126782119619308880595347493208990228976635790283612039391008864344350891149055212355138164727723922211765892213865945326934431985555372296463870605313212186441347353704187272808416784901054959640398042672225865299622822930205181928602832113280204848238313284286911489808018628318510407739064973347882669599535865682791938752346009968118630296426469009344846605458547514584970947571758420571093651441736265753596841550943896142763589038988152345352122673849226954208842364810430626116118339883769734876809467184270084048557870977136346149112776188140736793512314569834472951346306134902781937048007363148829461273779922400739148753462443245387152767776141389215621090058171801125147005816048024120256743269768113174470230752439466988337348834112727673945940158051378559197484566644246692030532536088789515280427280778029102423271792808117644925276092657368620679775487972076302725355751965183967957213462581226370283870344290822094755789181512155007154941108334713667095923791498886701614398371767214817897979944961217772995310060548778690703364406699712499551093973131463650963955063869596157383607555710912438284438848631058896335263660623604462627677667613864849658705384069694391657531951757565737103917254569518842259950147505575971081790070044366477608488564034483098450220502439120569823979399440679403965484300423439082914108550611232332066055650282968647791813245694315338934916012066042653694977671803946704705759843833061719404132283167528131714462475317164037362295510859884466151438633105512849660443840226771313462666711359945791397315649647920808700058638694714480637546558225776044229702213267749832342064536807125080073390084845548719446804585715098702377883139942342534028583407967252213691421515764816126911381783218987866139854779572885094746495181056489153842439274745017144057621510042034519521557328560157058606467595630441239899740692082943120764056180636861971648202917287600273831572347644721140842150016111435414639314438414575852288980304648246808002882455182829119043801832990586798938854144345091771564754926316343180638548668053979811015390353025042845110681119190702011542503338570280950484522810036675175823340802512942061833887367066468723486207336333684198054463233961506177988497189334476992262654616162348923046278561715602371257732443862057973945209887772728275621468675946514973603641519760805660860493346057470709955888136171476183836859135120991339074406569102644714574027588074379916642302329863710022451895702435059859896146106085316670340030789202664488354245947160327581223509398960712195496485856425770600095073797498424254304908788173506465956919375333580210651519645081282354326077911678859654718992494431940980310954652949536196566453729946952915364234388738037358878591804397952555016672647982291757269866316534299355368399315172884855823827450728117377727473692411669653852093750528523799224959137792787080759935235569413437139641093995711683709136515938898272965389791620442730724592211499693860430988677367334063355578589771427017777109327030433679886316407268439224578020370126852775031173469955449074891302316897505575828082837223617784748838976635572410753165356974666056522263397889085694968205345232211049960202763303106299346685460003757753591106299665233106097380035364759067710292265998942807605916258617399020599283095818627854794721736868330556855093432920558260329110937876347855934055902389269972990004863379934969678501996154426599232768268617736031716653329209136528477891656045524497799986968481550619880971477817306737181616710581135276498372329576777660732624414448068962819077562708861517360545567167299400553002913935085411844812355880945014659283395339583629942932201622838149392665118361725634063573937687996875414743173198310174716750168271214036482055617364120762869722431710768811013241679515063168826468136815039894647951815040140091448255257004588389102764126543937961975608601054869372611687577112497394526289096432015155336497563049455839816726960118005616396670140338951774886304916673791009921669310695820578757342918703415619817365983992320653060738873401362362994637936230103804646057882882880238079940118306830848593904627829530711181574620256977992188877532749039918294622734655327260800002161888077003265358413277923078778629222629126632540204070825031616062972947363694968582312861870494644209833601262050205717767119666195581119901501805196228703708697705015259754317403170347987655560043632546877561212113193601156234187924586955276764282216799292556866235822740951685413220906824515454584709037290278777019725563393135172284628102336844285134805496227089077613998720047281592451010928051228695265583772748800443430273625941441308081673674135440879071546511071973205343523402842986112911388899209737889739192491444896770675833394224724840939227173114811517220826927339653213420943249248275677781553089588468183131369511085323284666411314256614179474756488939032694540990941637690147646857215794795095404797814989579148020435624173670695059414064257330623003727607516551675194738780779562628051337799163712044407498225742125132798082840559989573431507730591517678570188192341207925227325439906780981229868675631031465579120963264123066833984473211390312352536534503345325119309451036209533304870447713954134871950866975996595191937179741201794854606376148108555544283314672637235086130247186484286940103906219591526088828004917313265827647987785187591605570043037223775435266665255738060955807842210048435505573224139919778839246833739992679823875780897603391049774313392932626544606273400342191397802835719884067506015227313570050252558635131665295401526870022997655135011217226463976525086701159001874060067643445461536220745742198664183337208540163230251949356459246795816558822911778669320167127298124864652555758070585204706515826627573309420996535998498785951104955353806244170392923903586083146622997170052902571935791265048768734165355352398367891463725945928623800500359825141470979975714840231908492287253189011288892208587791023217030649337347607298242204853239404733189026220005747198599436208355264349081146547220414076551148982450691207987822804698638413514529326192248721834236127706360425303613928155661081213326103740792497095975858052822889328189288203971629006310850136439513546741529208194554365473298280468900135073353673529993539987069350214498539475632908618739142962302811649807638465288245284453696853569696822577042114163240411946732210230382050404303331387316130369620853029655634516964830977467251613235390641264590998928911391824514235394417589134978962887405443520269939365810512507425258353044556556117196534506178577331866242107506080117741279082539463954629012679040647533161314632361468054108785831497126882364376825449090867536170723299026111180723183099068257142173499725189729420071631062367356411569237010538222149902668618472943526578623817645166376089903693223453454494497683770886292697152952450403682947613340125131684938469141864569034625415682959364830714769514495113488538609650621637215975387693200122146926497756730430386190132905468002296638240453064405402821447877954930239167227083171054767258387266438505412657167583602777405649254623766636283712998786516620044434344170910144717601233593926882643846610370846030035256443127641705454568233907976571442444236458938215410060776981439054505464545243040299868241070996125119405873437375598196289850805435778551118645332257158123417364423598934520296138200555892529773885498482600564333135994006545254313419285595765921666591486577564073138612768988043696877200712520612733360794185648980434587899356680595740577285429664041711577211306268379709808331002692649212195330872555915300537102769169891735797839172512157871668854387705684088438640437273007294020634505984555398149327041944914539953169588632491543807648130812708836139222563698089513765522935769601812260315480541585538933820049135375083751827733462706633171623228828956295776319174384510845674761051625884644504880889987375720223931450394268240947370956405287174072173784501971015259132879843419716980942251424144341432376070635171747969614096858832077294801744763947565465570404509138910489249019561972972553082285009089168188820994827885238498816325987724002476123770604777597292341926150214014029009578828104490531172282770537797860723495609774999423123310533178849862857100369745946581386123830848517079950285057383495244621845983151995566100415175790904982282035137515690546941142877507747951699802368748362749432896863284769202808674894563728946125144778089947447417835365203788232518891670064918016814037641885187239963377414823825042124386450585223832270090136038601240435215948089968771873741936441624524724608103136795622853775994573240198868169772801516225348985800003252264020690909262223245078566906689022620945078040389264249159385586353372338794498143475520098686512151228568785555340330491922133344859784413786684625181958193563520189217535426126196123475808207206245852656752990971481093696420358784062694221733548136190339863674579938384387027128929035173820910111418883933660529021531915152826793306790480759282994278017359227702256118674629197339546967103112586439197908223449648303341753756890870685317128647982530905622760594881865568702504072766602274840744446676851393979966820125111083699093124110471034746035982772313971136097213132258425009368326941885595350703633463964094947296223693326451515429851423790384338706401386963481305665433340887901172341306538272168614067626123044516408829453787130705945339187661977552242046408553094223716658094863894326558690153413403440215257248835004793042825712250648452216069651773850987029298347625752533572745772128786275285137193529842375409060128490631686997642626442568245747071577874741673293141531638873063176418689342463531779835790563534895153639991289472353588530592665359852489173305575543694588292760137909307850898218780284797600911057912150966376438991106636570769644466339610320633684006780080468519146593108017782847027402025912617819283425379963028499281806255863817698369323784715590467944724480844746154131595489409683286934683208034298431645929912568439678520163793036435410729219836119258312031075313402551194695205330655847610119646135226004878606377387023820343513444590711730441954622604854028523826270974181610815489413373694453715132863765508602476283585893265219784503790343709033704024596247107802744806821622871640513586891012121656755688517250648591342296933161383008413952803055171504217198724077462273852563475038616525084389876605917961867033575057807845712022905324647002641512270863202602730265228275195901180268449809170130302062267055168562127579710318443194224010744926124589983999089057167491443964977866982992721369258046832945956644965221670396299720005151105726185951031047943516661007252870949832549798046952161216904738177600564330530895451349849976813945939332832882347543191841297637827028752596981554543670384507028458179546086583703829879878651606547055157515253080236436169158791238460841259566146811725149868954181931010219990209116517473689470999540863406402888166785494430044867465123314322874885081929691856067773264756068496032905403967843536950520878967684504778115675898872792155734906025687366924750991780687546093411250113782984515196846662399384182479328823367151422999769698291771209992788192587744110849922073946463722692270562963900049157217607004663920444105159225653507347449460979877802076861273876553758756013247859236907769211519964994555084731261266215643152871658188760081735556048889558047899281718435569656296718329213062077184699777104841840069924748839819088420215474722916878213376292609610065621961498716633708492091354116133523693154828463831199899611050301500074741692249337528738926127210301987195731212207955345646060488579044007498446800260341595410853909577171076128713569451836308999770651963783270264430198176991646022236763912079953621883283765828632671660626082682176869164989331786573640621500229758443540856483620191479033163360614556599320675002271586312551208414614758150131390044511408222648165100469349379703027621190776632671823196167826380006067288454593628454516117602473537005536780104745123172202228224020506831735100424416810944775601996856287390165208390840851360155721765593419875652847411102379668104202993087652827949856610367324194885254497122002509324446810624446915889010814910151024916090339679471045620344454802277849136102903592546953452720499177289643004627797933374602885489694993979745118316336474261414624719877657008039716931638270252631041605407641154763717839677470977052178721105010989890871829856008880037979706944988482335339791205095030305977206933093732643225183179018767535846523671641640393468177993328507970009497532386288676573333638096202744615062228564457150975289352207405983688507698993937298345086847080910468884495333498813009688661752993815820468675349691201150035122438798327062466712767532138644153803116019463457739537537581583959435989434756280353892589884139613907347581745966917575698392179592511254588754689662304749428998138375635602284977359400621067615636719585157244402104295218913132218701770836517619876337711252941631105329091895955228042285746647430701886575015824538293662858024716629872711710607015769106318750009832007900470995100044562033910393512860939324849820433947255397795502839645333548752830770975821010095764875987991960297624322649447392039124014555903513764902085394950451773795475938968130662988399754610513756067736080544629263287631854470560903863343698847322106681874693043066067019870658207020052476393508925768053890893831815311700467129817169933639713797357299337187829275816142550334222593975069724814031952432862042952842592406410184763072059286992782409722483481890963835526412035466641866783152734971196425231438475739884368996644622778312911103248806500394934394036143195581698159648201789084188240881616189732795817355953843618246067032825609405721482422033888552492130599775912878979919005559824847308355315638783155893855740959588209800212938474231331532081445132212384019591556793756312080038183747249666567083734130270690101549162877060740669983405320448060887204823342870686558612385735625971311591042494971640196484880824499014150031838934968070254211082888333412133906934083915252499169965392047544607937191980735477959451866962686381180126933175676421712076409982318934769725893482553866471056608902880973466774585641025171797059102772901197033730657776159717256041475198999325257259704184387414604495581431147509423049811941254498785367140396708818616345230890903699231221880432715402770806886937746031767663058280478040733973818654822102019608554965469680176228056676576057118211211574840688844327276563799649720319542182838409408268786728179618110623742865916627585906200905987566730488008979747476073660377742883278880733164815438118772926135822738048823662833480409902345815128332876780664629240917761405213742717891749623958399537154803991039266657793068876504867717629024695114221306678961736159006633474072761409378260005986521505526419091695127471300954242226394668425227499063558438915508436603689553762933967798065211647298855999140199455044926129805464452645793417885416042372485992410683623667102983011548720728941132594868325546193189897277967555804088104359801572580377611604224531007560088413848078889958603774973658944725656941770590819743578774223430196530144637370140731408755068841597991669273762940916772065601651050084832799747120989884419115148311834003084801215007938260938710432885216843267113827694174505410178147111722353060748751520041626410942221916012082831408662623122593127653364309184971781917818202968754941800862518625361108906037248436008440613559950511715724809181204380391455693200826606602819437710231996570553971780122743880911993396748447764402205149182987106780756910884435817311850113606254301666649524827797791308811845131543545383729964987410597803140610733182488053485839546336262988781334374080634001202974499976506417739001823340479826546361966031295126462094215734223611660915619666660148219828823803119191757514393307821906431716750239569217284785523758801976692785502862728831317644620176078850296209157512797633346111654583394816527808403110146068472865181172991233574723256390395124580544984119828519728731392446594884103994698290727539874184829570738205401129858626237433466320995634674356752372751419815424597464715631120244306520549706133723995351400751371296976957649931197315162687786511506938965739356230650212471673952147374256085923149050137684684491994132032836903281279451498894265017519739759741204177913250096357166325027178082813106494451318757575715173103670349156703263077191021354025574144801597416688388559522253662280833809843811393139357856842379336766263527727126671427363902280016640950380098603363966030457506966094578700900319129104294417321151237643213406693737992370081081172548749300711181350799280465516332922974713936471600254110943907837838797450451326728644058190227448781406680956221651284792993853742456144343284664164318417304068744208201484782913549448036743634954735276052064494273253717527238833550970917026293505287894045999469697535615735251189912902430951615257378021801109081947452714059535205941502109284304736546750102532637956012897350570138689940944860947394168748122502458005171839566512343873027086553744721927495060897541702704363412175356838702532141948216867428392104661668816521833516742685062600287801567778652909650703621430790929223061996414988353087062082076701472130566328443265418343480592880290311501161332325252474665089720900489027683613754705164655467091815995148409917620238114720159436518137261023424654662571146301971060309741620296473845909834639641756763747358571581738600592454633664826152986395560517610737546738380149339730627124489489557202158979630595920654692005174031891811184097262650815922332824527420511439286615587077356684498257783215900128844010649613509995395633419624961795982797949674593121652335050892352116010453397829388079453712358093825322472378063335616970995702984422759664302150680756595392897911006507806558921201715162567205905148631079310233135273089267069862958269686918012921245561665382420377052891121825317892839750460462082513580643158711086414942509019078265938438892350250376590684639650712472715180043347083277222815463115543938178442688782415063739077046195709407868260871794375294911371915014563649703910547012406369348530036850740265791188152000580407449910186167200501235739519117112183371134314377859598301753042575299717676919412010337204501483092230629909752422207716658889159616635333420136501329162131275918149769711001222234069280109252793017202953611384473075570722223270657388230882132375585201195699842377071850788545488405381978723792190445377704104590866197912552962118291219673734350951306872721023107110446159639664671807522439686288272151731154388953053569509677498615041073516311534051710963321019194734530956721449581345774579098456104136088701140970969182513523863735433202509930119407767004636656496069133359704070257295136230901918531482458476342119742242199684620397780099919625442367943655561016392519839230898022172554134666087225749290743928182416086317079774442355128220966734447943418863265288179549338294699448479676146361697111330193786652377668750034122338631847951244368215690201859724640626591097408270937160182882237837765946965856541152268190588891252137349905440740022458342915860393198637383662161891030098720342341632804052597663245157027356028333283849108277454784432524926131717415171850506819390870182024295548160983468660939105810820266550802955414080339744654847802384605139475238565096907196825361700171506575732413836514725116652565996544726327612480549350308876169590914426857416727993799348499620940168242936733624286988691191278791480017994132239447113763394953118553060150545265069825206496368188285884217264505726676298629633967150936617466488715243818339360397442564577839256005432451934229896424979423285766159990671012828695464630400180249118154357365356576087565879223035691607569958644379835831279882649995364509449042833599513233548315200391071219352197409380327960992916675157867918402771113984032400955090981210469148623629262211452295850365114979149662102672867895859683196223722090506414178367927505109649994824695448739393329037950845261487477206059629286574063091402030394932242979994511445165583717144898237933227484796466873077794682635856504448252257399999341312469533731625574380155919921464080100226345111972184020859253187639229341436859778911933017711463546464091875696380293061909877701994666599741679128563474418106411555215019527298929309463267302277173448121932655009019578816147492822462770669426525660615484948091756923581759376821298461536917087912599965894113892708833310145195254352311367620098898089947516901549032309746497140554807077819673956339050448518602956415755192937435276846778338490549879858627365968825680196426374405750806884991054077839697499855700936575802318539356109396775225826442290562007172981536020187831313627895251805855071717254293768254292778078271696856478634650838124460002352863633716425083177240377511483675886882460557716161305324406605508893324532833123335143236186579596197057788288200968414173837133304431024429988748826500753771117650218761448539518192559508910142459079982310659728277027511149672356612857282225328994104754160165887965116766264390523284160716040003272644615386472114039605652354514799219070512537333291350575727703321156666916764275673828784216966252932901165916358632912779111147972493246316895183105159618134581065551817894753325169381071598374576876561144751113592508818720480410775676304742271011198202434820435101801569447234738634134063604436246956704398585071896550694235736458820792298270908790512460624658088605323581059979833694513065763659048963759999720350627001407968020473643918659923582947988739551788066629933640667656144995739348442697789338218076227393420134821449547985959430293412007119326787894551914979753208171810961226908564024832565577144821129747656589952392580701778243406535481016255012688999652045099939018784878698382998309175689992868247387365363822022396714128714254635774156869907037941216249125854468501198396756572984598239112020276083569037679488123447329722367482312570714664292405463687829207161421868796841849295944453748079168247544567234083989243022696326672007988800177477126022748039674569052244446240793333888022842240037085602404912028748215797652561881387978998088905579374862013575549816617488250665869168518946401378223025479607173223731965474612331113757213754494485243326257783648625168939238781917678128812596601207113948790184767108496384496709952065379383698239760731062350823714233218537246094431967177900779735828878992321739727630676638333692753813598318248023638458980302881452769262682204511870568107549068039681433911575759796342925832444861153393431679759632587969090124327803987471083238396214588750499029199066221896589102502237189555571109798810728425299887233757186624511925321163778971558423415685548714797481148282578054238740939496287829156751065310014972127184779727589427704924948475593729111920173315357549254886072327883103945935131731794307499285643592445180870031828573691210105307904251811260960020069823276706280627050618387358235007094374290783248262379667707940374600455515508054647103358068657863055290309800948404118556367632244573342238926503660586415738474945756192894939751481172165129354951879592706721200867907573959105407412698632441074842247183504513133820227148379020210248249503579148701002607474117028748792158424251791785014397779375992997213564733456912934692647919539420859602172983732501243104081492086540607293196579537292705073868615753730720321468418580975245062796688612184074115571307357583352469681322717384781199213829833518012071196808089763320783975225005713274012946290773792324249844886432232354502450960485054530929428474261526664772989419762373241264236048767674461234186533109609213441890595499651889518929286613039482485187410512627687546011186632888662998602995552590533039943546617867336960498092767550834141000392842722920712915287470819941871359156231659348944770682197095998780254753616810423507552755940458956767522147554797500052708718865475326609195101866589283556812543770681803734148470000273680866586568789396331886502134199796967481829302698627184410761112880626900106695954121114162897134172583634957823532187993462327532047988773772268696390579267325836905417006178979690747718281978118463699141925485671622875912735675106511917013100427891497411649685910643816424508488830379397927881315470332747013680506690082777487843596908635167185076193282918385088340471693865408006838682976330126027871393902434326209905659320210748369728795501144716313563276141987819907207617310316253156204128901683710380778735500841355398322680690943539876913173281691562879027848145349852291418632370426594842975553219902223231144065523493645875486333292382870819985171029193894967764333850328716409927186095102655575095207986676829952430212100203120202785056696030117252685704119008179670255391959498945071581762476027694044798823455026951652885728077563564511455634209968470484507326535469420034416044442757167807479755451162335783322230580582362903495228337859375658944540843377615326101005135331838673959988048077424677758618000302986286281485897316076996110398145731698247289839874809440348931610161833757176197602259702701357510868607802327529310842482213229843350586901168375337992354349405489851303329909068655407159029894789183645591777538047135022997761719330818259450238063774680251332296490733574340844400437719285195381221253392632037440483585901787248363397285097722238179820752267610207827510281250539338925206686543947166306284288156614636337648797221283860945572360099393478936205255432709007012775904943012112146490879209450082191282450683721672249595567201498473649020682145763522916599091903721049126519678738113847080039615456315249384120394885480102582053545416031124597074372750848166520800232172476911652685042750844245091155067449001236563206464434350207987931428357135519594441564887366401429305028706502007817504235838800596730042275631728031289016676150542384665218976882559640854475640651500658338283196999277829408409658027515104280073114704189796324942276045935483905123136378133082521949461941665964813164961850215594128376205435719834084294206308948398198657632827553712747399373693059845348517946978332376076329897585452443332122165502438789785511788644675557656377153794587071562278777326754777863142109447515177750454187146281096808116940328828935541749860542689882072074508047824032196816746782388364325122305003072103889665599897183314065236949774599021358187165042756816762089031763468695177440694428086929458343240726249570648487553319129917458598003338292900202345449511652512698566812853114688922257409785559148960466405015496826696633029202890022162839243173112557779957502497568617308633762729606355447594922910022627280373989776218493979011802875596277118377719858467854366677433970191653629413633208992235930729642626871323246840555711318538910947257542044565042728115612366846987523971504522996684424686924896786407697143732046978198253711075171125919814047992581893981327868957438200157843905815518454717979346159979509590992346545949847370779367140600555903301471127569681573245657584081580409009796174438526832547450777766828419569716575272274241362047860566083445886531841558640927878437604211641382277115485924291017263166405616273871524886489301787352873534855284425346190000623730173151730985095375949908754645002166540202814653707840327862760172693210800223259650751750410403410081043506720479255395536592371839603230136991956794146732352498503981382124598757579512879153903710220887268338641189116942438896603348045235668493187965399695731508046595017302597272591114777586240090425576953583894549878736821154592137793541866106297924110508029164539020931203841095281373465562454758282846148208454936767255295600581801553177089301087547605183325873549070735199495384612129069178812304627074094175760857505912826118226510530475156368298906815283821728934481775144919751792692905351984328858497622467638752498907623097515203074928714530079714126886989371637220747851070987103930868289573071445264509962223631681194743777062583891859219980290579551666193274021845551424792944415221686289856723671131940031741524876932324738457515775917255616285372686520699479457735371231138799355735736026805564665734492446631960633028831807061720133238603220978769549895339193316766847636736319470866530762523038667325374260052028037570138010595820058883100507430756228230500477793150795989856762343791363669237196650520714003205033998282184597523692391701314600419984356778718999047515257469060341462633066812066210938951019741064254285711958552093824531611785423670205139763262140202656300055993717360065168709625841002550065785411852471117814048582751338947956579015949228969507687059629286508262067249499152515904442778107147424112702532305953525369980821167249628139312012838704076291357019653665090031111625842115568174139283811027769443567280933450462502755338656878821649074847474202657461581273531656624365493696774978325371559329930003538174428754364861976651502890795857689120714594871080517007564379787136415422615118610690483566076293943241137603004582334329110802244225289887894419799969658693254056271136350889922611980684657173415067582195746317384182193617643022862472269276004827219029236423607032998619236123997011705680830974926261955722079430876212115589969015389363259770428323185311004280859272498804081933056574818914891128210813707520019401459334440136582065096630025633651253974011660010648306826796430265115723774805584289332743789658169908041776568084285239924327249304357686712117555649440133457007700832306904087487356337892190664797742298385028283163591545586085608224411230891037175561760897685969024506496470115514044534553328382048977255873592070364571686422912054420186922331083803932397054117886939699532199623288060174187338979129369670136860492913641022596727449006046905246586809148741524201337648032038189486140134484375991256777852474979369081384980752328576350572159786338447530016135526500549641842897754147441877516712614057993956700753192392474833333763367052756404969388389819069813728554857835720660179018521191966990798632548290053225985844434885054180707260799309425212155977508479678087913400370616662690562846052171909517761221881992525947043223557170964512298931091961634355025739388348978835039846335291316276834945707092199401171655227370928556796203205831046187444082529905930565530223684270536739985508222718456447216385290847166186798866578405249948433901384948782432205077919533031333694529023979890378409313595917450620713264384128436368690206582854595487076744443529303657279195335555459624759984763794401611881827092988083592213131471012837846306752025568629948587966383139254209033594397512004415588523033084487140066563228220771115334885043869605398763114336491290432266015927413215511109136686852167955213821555263203609316315144864245050281407718758025442397928561989301461119716372196768327786197188139816269454975698074877839776050500630922075695838555986171245799964059175514060275035277506396229299412357710807247959149735463914737139290426453547522429658686061082625179208383648344484286336369985286962371825518761040257955775919479614154445146468756205365132460684072208866694821497560515885585988179147024285702720759301005809623536090583591892723697523322155915528083033009201119338538490563734700154221124046414599351840274842342549900064692215248330755573027696230120091404204397907181640480930142464454844489713966719653253157851241218331646981368509757529399984014177658123617785502997078020460039909277131842370256728349950146366583302636839656441810048402986992172390651114893975901304832928386146888246894102868331904849411998730552410308418048626797034359579367699194420031748261095170271806678641348846989541205911811538730273316287491065047182986360751892978404284935778152089121167857979151385242680501654277892232028855578267785123289234949792430038734322520950348171861301257159618631227157300723852477872547186003712589406076971366038167830398990683201513562929506883352900857009580329281446045706132562682844263314421147519630559053899211902312615988440309450257747647761294256347189892458426233275437830428988714705380799864902682131651026466576329342398928987177063542433752306959513291040784147866083072517679701710701975321266424190418917714780282385229046593874556644120639862919987958930814097514401935771745933214803454292416398513242928935043372712701427622160812459635769344679597157347312658532339648733989706327444561195940940851894373897399996820885340035641991397174725238763460787568352466747057350552049398677766867273449462289186610466652864737543974362341247840855122850091783630126096317338277002524162448512894371323721254138186248745816185139678799490941007710011684030518684720936527353720268951667372953606272384697753353722766056775409687332464355687862953447179417613757037272847495343559158396669303717370970694114594848317121784094099802129478872410272006304854839309118688540593101624979317966570450308286418304027578392454651811138845108076841618793895137412760981907597309046709112698262311983016979868308475651843197987780760418980185948184489522580917037560194514156875276244770208284598591182030055841771689744365961769646264611664443879902505931386310420719905959891308639109459902362724070050456231659281200401318665858881811886059307646309912004383520500330873432560597260558604533893611093882946748233078822433676678124758098959160550166322236975541063910616414342374595220507805655378740575933694656760305472402789804146812599994516771382054013629966807836645147381648390257167045860014528193470398393683400755004648943599829590828801432697324188865003598599810779539379583663159975841813131270378577316887074866551574241768798071577820819279202221009442283662386343118951510908845919587960044152330167619446816061099691606858738452645262567797783943606650010815084575672268698310352102699210555259392639338503033416555929825665227183702994791241794803967942088053212313057716634657607595867726911470269675215737666085784011607184078687371080749451109660249149285529685937371374941588530596388909550919071500649576472611787178979801487465134880936960183661873003517751748562204180168354521893966839159589702124337426160306283379045053108789465214938757441810678548558054633110805111118437171887370422903705343350611500363559017541493026785946360403561378410241842274377613743766251543181453794986703766344346069598267603699674236937251727796223650931202435972058838933134908583380641366182921528533924036648664986624696915721828950107947389816009573467081133997779132185129790470452362786638714466008218876995760161040126451821075101855855117173498901683753681689955612626129609009819848181010914098967546202149119309309045955364192137759947829955743566243816417281781493067903680952744475997460699594273673236144860685259217616975864871075380533452225812302410474979595147775678686538166143440415070273672913670915455869920431121937427730768996107985991345835142192553445155277578874935818292327593941202254778517790496996477519067279127743771622995784355766881226143940015891682663995666906482519381848070181603454923728483994883005410547042467186928916821923966766927896072456592573459158697359508594276221174884240289793188472002851386245924773653482484950444949517506773405906105873039998221482138008895287180549008120781288552313140651034458463314759676991044754513260088358906403239449825034938838251528934893255498750996491142875793135975578595464538756536244990326066290977320577039117314403202478901345046465949253708180967784778110324616023222559746698003235447904265256036894667067892607247959858037328196251190942674671405585528585095783817632969124728313538916519160226157729743543496213335434082900436976140345940584091142758466551931519634063356377334388246272479099613639601800265579636174165807006399681230210393476083219195684403423268989247344582888175618637647830691562966722964251520567434787769548750713789457352082709254493019788461286439610804484244453657969715700161837966033863406597924321512158554758883640550975437348396084202442025404617059710961586998528095660874288508830557297586290040728391937222364051776595318044455103339901819629255795511731785007098974460299989070510954393095797035758129420073232533847063311701381570480338105564278419725363433315745984502567821664350488338887280790551983898442676998048735517190801895179130772368357012696290683308548871159671335851760533781291834318563921966798726693557228086172020295007018329084894150516715068838390454942924253737668315471023739711380910412094618243505852003303533516195388751158513714756730786527262882081914440665970633077292176894888978552122367343882545008196927329082686404715267287912854226734323303620378069254214925095178995426541481365620394250070405757480227301407397366001916746805197488732088429107666292034260589644816911462358599458998772703238632571700450743542266440035680432315021056954186706473006305027697068850549366014802027599631772946296250598776237945861649903934058569498691209129395861418405679585579231864380801811186442296435291562992222241088342636788068485314862585520246041319694953770398657311702774558438407874534795094848067860551496953102859694615241091372677467109413194324328416559805702127419005100472890957268266409598596697411273905347816339041528865736533353364022096990719242868692964546095825418358082729063854721497962694863954318510686849856652390634739229867672160098494433095734962786894532653763999031288411227059882588529546434800453050215394910172726306155532842662372506860924952605714431886678806625601438110781046475909933236915366104320825500299080396480109334076803796895959414436262696907087898337295916028121991751477248314381389831732869997299587737614080105547522412300335654253284102809017321273982918521317486795136175448489138703293469130151386234041248292561636663489470580388203346465699505360903995592247174504152648444799339438906007964302119032119545680604802579564878314665137131151654555260460870743586738327116238380978331180118793095814036365480657209893507447517995468117628186112987400353520532732807170353117890401084847586379046268295071763716345372260173171534028972707024641985850155068181999439449128643455114281742081781347826017191984243650687784533492298797647659999436098287327430038301136975284192732380476578072114713569985672825050095547373302603774142371646734376446032281949850698563892533281207705096635966314368856229610980732143374902659959992529670718308844294682723753167462632028326907628254265215473407414550914759418126224343491054933645099553188498237686826610443115571555321912086686988069787286953985329949288029922147718669044685160752872758327616473354964067409167463173710981697219295383378594675706417072692213539179638176468598924568785312805012680194716017691546258910605493786700867371304153486962438352359589661151341125326460693231368529376360891760681248573472685073764600142132483016935228774391174284290424558665206843206564363709145982539497200074746480462253510322728496883579202311485657362419299195685966447533228548122229560843957094787950511672194543523999123978599862444523595906278739968021685473934227964739588881397924033025277342815525327534422609491561340193257511079221203879197259405939743324219720820594908275428008788140550858282997991744649462794770633818382114592151735499458737965300533447291493065176831636221839982208962579872362463265772621576190123409029658584224037647776830589536456450169190709303705206236958433719768943385905345572750391657831584821516310342059556537278052579470056949658580759755886683316297313679780223052244743392306355508667101924025654971323332324121927995960775645878594759212192316132057303618515647928961021061987464121649629671733961940267330789749261853427354893282431461318697533616652919420794014936062049180294521510266133615843924685548220527385353705864747183874498510522044753278912966723068990722244934294170782366686015309645499017078955288766053411617889145916711424516030438203679891844197128963786329198885516513009655251062388347651289330047850724317337817248262584673183803830503533558365485080434307820288830440422900875074250350138305753842128130925292562226804761168785407030872182936130861153791449412332031345891397600111040231091325431082934452984619375984568399370111369608552948792262732296990807212704450560830849935984099580382106910902302679800750044902257624463299042047078599140049614905465818116996912543057109154814551375542136947533467857053506508546238260848441615604322996851355535569398304472710591237217007455110266074511071513219479846095104873829348063643029070290528680249539404500219381465595238315646584153192801411328851532744652431256521575175337484813832774478229480236050087690599708452217590928010323550879358143542630431425590767332178894779209195208821239093932969206622882204681811467273239743045604074296587381019465920037571329162115869889924606831434593280911012158128752369197880335325429528041161874789244528670181127958742870525957052098283538812467799287343543224406330551947450665779139601492804517394691419354992052036080836641767845371243114660261316230860297866096713372782116201289988498597159163358018154427455022989951458671686209455683701809762911806364982918224120066387813387318255945002843336123927262326559255066731135895869708308027844033851783668927024895154306791816432843498354315064166006557445260106363902436626889265868149116192139641629921720863366419873804470984138235677017837568152199951795319589095325833370248011506192243720267025957803350297258904442614166547654211155221681690188374138602964267629526015254122370476970889369615208610794143774572496193389239445747008166451241336399782994225679583346570155124418059941515409152558858488408350089041379156106155483025105104155506951097182640757917062174817937286562676298347686850296463418573395811698789330497453601714021720319795582782202679111870482574935317422293838133776860164306785343679901411047857283398205624611118012746030953843580611063112444928115966986100144679826349737954483802633119964112522875025469041769168808924620188938632316491246891798957884393696612216088161359565473513829270628036115191591874761064308702051119746610336618217822500183875153245776109623596729183132797688615814603933901031229200704288547868488799566061006966950339828050366503053020805967716611502296054212558237417848260672392772783828527101359203919208419240725082058980399042718960105709592674265036265030128577386531303167531134974547278017418394621080820446189023109140589771347890382027392944558416570558661579003207255021473455839153909641020198997414061289193473361257461344697479900760869402103709620644968645035415083042789769835965722724470543833737708176900865458884631713978253110629658115617132550347044733633054590011967631251305982917456801603210994125703899439736918825566158901995593772136191634468960855453007039765509219757561988123319050103466403792850062401762293778614328383628553973688275890231847223450279536311957206548092141317149628685646567018694737310881260717700908867052335135966204961502259454053628412179584904661518799964388636696759689232017545982104120524570925812869980215692958047130645638754480929473153928978108267417292606943376724318150884610914341691590666991313481160315767095687659581097705516833551386777837111238142969261271253390686641439385283187557977410416801113634777997108036386978521086222249336586803179458551575679394182671778201662453436584598417303619496494183029391944294246217028944749412514436173038688930354395388041366451936005820375169916239816410361113252018749131974412936630221482820348799910114356403284845751133383592562773708478152468607274216463380155071990588157870856599848384233505544733795472628788134937028075486699805729485760608990913223198973692181265358467304820805117840211937298166954438600815298500628824428853378409378383416143565580898276425525082785643175333842519209919333531743954582505269222847429109005256012425890137922206242113367145725746029642552968189711427758204021862262753096163004142738042816387048886867659765561593330474622474134308578510555611258534268184466121116464977031827857880505043653049123670566807197717886693339316445739717355002180071248442738634300000895765954573582980660387156838973030382602080651864360459495014260835703284463181162015483601835356018146119609180255311044317021841724245525807809642181501686408124648676662631475227285364060592308018668857233785465302232132868278106093642578642030749455565463341553552680667456708031374857056490517584825107827495110945867435018598167757742664116232970972018290407828545864665998933597084974229892809861181138040566629271829668513856801273007587953299092530539129024765197444403200154581354182463809500396626201720849288711756829467453158098347560683251351235224160468871082594470407660805890621258762527088190994913940962853203956565240027980229431308268429891604606942838208444182334556006273737969792144627097180144984458030141504632737429206571029327769130985480817445869797755849463441750272092753050984917396850340003968957946157771521175114498522491130206403766328086870137756388603879087744189209141436400469788927253128867228581655415110652426433112696260886438263304593634983201848656467416975510513085173483588954363794056674584707874907604803498842356561567111737653682482939607767129521829949203674136667891763302371393326140441472119296933057450607665463062519727868156721871688817254370285258827164166863115162825457721610201507028336899471409798108241013166729441805974767827774836853492223502478061877964068911566969807174658089709097541519897589785300826348033932281141454965886539124942643891006003487041796165920638826742006455989828291097674946307874338590941136709278424505296791657213752498411665885113230107272234456721180154505511019230608966330343969422284373903040934917917935278172437233460552372337635022294720728049248508574232967030433088003755571568986674869215180890483351333387570261282423182167457947253357432795163764485375004097503444484770964500813107810960943889138124051406531443171288146099975039713938168663178477470205529226684399284257226589939115906174622388378560444297326602466585395832887222560805732266193390087959974606307871099861620616186213653186377342650934268243471534717515299483085334394976036298961419446448150487286951522022258289007395195522386887159014644742662710878405320815269859480841762240309638677774555429177997267804842352591457443336621396113483715761802871017936232011292021105889455783448210993951826160824006135871954089749913678236441949684226219648814540960340970935040613248720750865631126797134644045424131739269175674682115546299819331284337559179548613340776723758087363116189514547986065200859231884319248668045161779244803091108846457192006536128771531899733468073852460416756034231487745943267380725179861412889241112774721991053728718463054699661277356952314784586535002980174544984906686811085814434214025312681009815410956236425744127566818087640234174209795183284503216829137510124023772062142769678823532736464292506608789276992895634017786673896306100391001156915668070265074760862160049987809292859394187056663091731448361716175334926618936768662601446015452928942909809948790900982766099536240663316960884170135625489806892429521516512624009157999664085443153588716801933103506541599296656240635688678741252443857468329131939812838403164433260957846418890797550082847445871517532840380664041793694943619540956916185409811588582549261302808526859630122538103974463419899982144428717577208534846075887286777372712513162822476349977178895388984700472187637750091834265176819813197021303861844965545719021508660819914841796548665819485572743527527135729251468083178280143043207540082922007889452739396024357162305262840422103856706805305870776416961804856771440619814153576466567265226673205196363300772345937519777211700886478353514292767275639126348032099975429244033346478784585836467262156662602574307278820412575555952193433352498094923538926887017431999302072598444078343283073443784654073833394425520470175272069455601759186303131546450890402750316504139386377024228739515923201666793919397690860691282238243343188637007630188730787848204808742626032928160791509911735677628072003150363740188894857350245232576006579716043258199870992415191882876351418777205400423483262420240445400596771314740246277454858195133945965312958809683518152505114162834316655260013579453958518709644197323431401836944117762954810864630947758895046199673661138354462890666170252565041295915431977770170343757744080328336903951004332084982922015257876145717410161073845113919440995068821543186375736711957625712696703760750272601976025542483617642304307617057486260400658473043990498387056105552046535073769498364730509769333646500139790324883124319005163386221913169077489518592808196678934048763706685700193516414559699441088668913519954590272867706972025194058793840975489223270209907770441133344958445920451434726026940771157740518981710573876806482777980737027052198622536171160208472663414990679096091775610876261841126192751308814060513038445085133678502738217943471983238618511589500137269764707267474421749585434880555207901225574506993113731189615402342685654163868904684181911594035469680339067721700151765688955518036093383958321769501750700327950714270264891513506097259262469019293469232046010099816301923300615271252699852278635141866521650317235708835457284871715872574051452800568254102966015888354789070291224280331150993893316058418080522023548987043022595341106649221381541547694401745827263094667343930847602511267995724210354465431635214653173908674563034655102393389658122759425575744001212231613759868847448140041149427338424078045218813885281685095729792235919852415833697452366582190853045092147083816073939421846708828885361070694572065799579363321452900685136214249928768727564801090657998269692361597688597742052717652352885342369481620828192106046920498182934034144045801644701022931872225832116918229991918330503596211513516422448011021670883879970958025966848146700002544481786554552240136200132963568945135376321719222283178364736223603813668278482136580069787953868975435812410873482813862678662024768396686730654773827006990817833664494019541083027606172562602501312051050121907424852190615421122166855239754436518880242639411647220967744789337382018924543896806159292189689831307987580708520417535593925217657892597743744365125089154752605393238427081040235787309335601817495773386880142010198933798702510190724747193732937337681913007407240691753638246754277927256065082768712921167396916700865420932810487190541447438441021667161724824178670928480945245653128105066609183437219410451165445559621847567296421211096360402848705007799600858067717445755603165130574953520811867033338844649826689009219614129552044176477335155042206395079923815860304783619779060331470246123280184973201578587478401896654420175372523498379747994401645589011957710124074531261119463384417443781006012807707953494707707403362682071708685151573765792511247565929124510463238431059125869165968123153050872496090256918438541481018932361793237701749772550294918859821707115855743669208951177218947886912641755807831330212086848393157849881245240758171750591286792688130036149997608132084162523060230982997672588632214064970654276004683929146828616939710468983591457674382994231155770271975309152825316566073158768288488941802098005757220477981799975988738613803107512665059515343008232779975957720769323231848754799009127596944657043465581752564794212900443283343307255966940507541047588579449993993579540461858775120577725309307503900998715863508908205744056432418183482587384778292973640507883503112456711042016395638226180629831148907424824702951432332520040307572189595827580179431811991567005209333154042627818940692093152062624017985813233625597882364896719982156382631072873167797557405933110021783004548109636729330134425833508797100748433806491435896972327745128948501504926676681515711435009623751223961340799203039256886487221561732348349572601912753325048964571452481579659377756389077121872612599924156524946923783071353016524944228131449327544658052422889339854311777093463015373838303970190340900092140060250672507274899317918008480166011957756083668015254467333248908626180821759118598188767826186526150441179891967439822046270871639180610532730462980598729568611878693936235040608695807650599695498591509476457569428972311037507085178829562862282278378619326355283724770733004997571342103946558003739174366193202172289135552393856647648119157117315679506406923808873649885715207446580317430658555641217093769258315977784343728710851589904197529220704903351425438134796266002421986294561151269553703438633976373266133792682931049586589295055144890871513107603299703359855773512902913475591499808357861734900892128618878532906090858963074027977917791697480347137554165362744354565242111343358782690229134461664872333606620898931694687040799151986566626907405401770826501842479884063208108835902134945736120210697416262697232269246508814018322389198502430065427684890594421093917310243208606311591971141994515031588688254492865272551983787339992058525563153104791849911735022625452598413638538605003451997232788324207294474289623175660797413371302287435077146493403666275312338612505482572355109816740964674277444426345091611016279032417684284344155255915422779451052982653066990535707845907035284232058271950246688350350937731325334211846762547393451720499159827657342564125942413450051039758234440521507635916644984713818782584719526854605888507987623890266403441596522990702359196933880085337497521932075154308668315779398537022076382825085884193776709058934369855151577311142082920392145095038571147077464755184175651380088185727153335944836635215052979360665468629107105145136890486597018571052670060537219212743452906425764760949583178497966700902508065625233437069375692228698752002811938357283720834073289389324243141350941886811700861566272777543546131524591892648993518470517023857592063854321475948693946059569059944637543421636919332026327104382617191697474153464280885609182191902239417021214351974910376959431617470360214748789384258207896285221077445644020707863780794065413354861560021293949099262874838752802134316112336049303315143021644856297986441638972522800564279678181282322094086666846896544309023895601223714002845734024500306414094050412093909460019433608344573303593232043504586071981322157849922717776676463980813398589054591361372056728308180064762889137457971017070739313675272473984971239513689488982281494350972771765400246658778576641672130066884576423327780874760010476850107536051245989935180878182297248529991544248387504424655919944798559979396904885621147057730055308680293763939346704050551582558541925896005647768281812389496131960645177673156590785244116563594890379600716306637107197085380346472353229220087040973332614393550500184931609273361506749428481614500294793322065190918452070626771091693800343797168951397237421558090005995477563545618676741269178472599685096392185798425200725043849862565459899853499885694884996577216466355017861866107735271338666334373732696978722654074853639487459909950727588805501921812976443679901134411823732615679841691731394285384257465894161448482194265258880080616008538002866984305643633390217398347101024421451233938178196582659317024816225008810854180600132960596404594297368404112903030577928030901896317169186260335600904741379109816925908865818797904993542326315934305942822681630708889770956992251181461354406143592781011331004085455868019896128330028351505977368593665066217433705251573722430534598959692881763025319424222729495890946052969732560770832977887042594504854769474537777823651791420180855381351478216088121188526442381276930452856813464937729740097492263259455741326861296287346655393729564797542181099988392367901871796588740263283232277522487641393833091769126733773442478283993427086471355755048675183800799890611188993146570589731708861679374927260049809827469666477676982325755767603921738804064779152453853744232223105535220816174566703344193121930089441792105155209407903497348164297325336300565860509943376578700625556594516722297806316160888210601182794252520505888321440171819119778537902287780163812907447001083987065752950813979541948755265621125230978314048461979560602184704160373780834255965691666756802361688877069849040974020968420727404256964193450694630068651922609116514068891347389839877430266709069572979816058232713458773808523786712178724454993033432051017803766241783966418842102773675629382804216503036684346164946084852273048262127369623197520960015372438932091121269103273356710706042992890763226346130475491318637355126730543011469253734650729942982429289414949114169044373174760056155446909051194797390985343085128319027952351305913826813370777993357622712557868091823198532441194340064525683354684439343381113424775281747586370812526351512320336265090013234329586297332858336458975092156860335458226446401120849048273810252659620517477203498957037453401592081149741070533855626747893846022155226066877922956861989543216756927245561917269563955230958252037857706231153629263473745816270124655815622270648700241823583839523317593699402356135047055118959400926141104168650923148166675543177408894558973390614326061882069763219400176858997155798521736429268603100300804458127259836409807243188867863365377208334786041786103263671912082930190558666317444544627647678522202310638199829009018313141325877400924426340603840756173168395658596574423030253587813043797269720918479821719830534207728557746794500480235644360976100343832162416868364141243743978801939919989410316193235255550529819516142335702640228920374228954197109922381232361764796201734963550844393811284827339046452482033045715221431612488220113794394248244476397241281910924824834844629171250300450659425049719865716473911133129238435096145780697335773107980722194860394315960087154330435166747975430132905779265530057202067769827734688932663189173863677323695180747538377385966792563346177463912469018135521250031072118638627001132180998388833268631286436436835793286674552498954790975513680295338915549356672259350735392674007411776982317774587041956798771135259460930488918569842103778186876674812949234397101846145180148080491638651831740999318194180376003721146906567960388846490567036228567169280331420198307165459093910434930328554662861915230080200311120871070689318451243231052307074785027877724232324579462711969447305155411842355666494892685635103070656328439307419850471170462090839747815667188089651397892270555856105081276418193533247316368875947778545204709701288143372375267860715718889154189852322370727099185444616797313669587691412922578906735819658597357478760075748950652941742293666896583014566311641507962174929219834524432396466727066647759688374553096559543332070421008863164226446092456449563125736834236892680238279267706796033888613675220475680376882685602802501537345330191252586850675568754620548892666820862745500962360754609570175983302311310096062994299316565802361764641259967777601640229512314148527116355428789343058699321607225956582650076691473155637140859932873711926488645496851348208070920172235223914413445570740226143961251402999529481761606969327801550063792038874679792257134865152114545515349491071095967285118989995236560297645484751308779589557005227576335491305049886784891850308370939121420244394203462933553229408154498113734454356749081078531287526281202717245492272918111503740166644411947325883799152607168966767494915452552699982538977814359316654998176790254837077580608846467982758524055468191398125032004811370211570425931241243065461622290581419637546544601887622968787253129565714066578058405154748050259948395311305916851004474193987563881595085374675486814856899322677619302735702464712893942092258973830549219740241453461162611591183766938526523573287347566052659964396653375048433522991271711328980816278317128690028176954127286429760452167826922438553675425924646574373980490131286569018352971648014210991515330097436740831011968893659282411012647886792686964989980184851252921713070693526893159867211372663652820898376110237386901098263719157101263745796910190880800952251214855809392252384492786446899425197789691527269215049451238986249669105520112951611390646924809340988445577826939093478533046663793542114533477550643161532282105999160770892875018367623487816462813861313796448811437014169019974241790437694393219242004948976761631776493383047531865702152818069161502914441847751920874805430387040782014002492948811597546522124921490247310196827220928963623574454148540684411635980716891143835790234126363851645046838294950446160817787477049859682492249064872931416862152440318254906492190396992558796071827670035211897576372476247822451512297020131780636782862946013480272450939660235899676535062928376249824598040730166935473858941230438248429256068669035440010010763220252357664147508086638232227203946977787652257833990539853579693185612386651205346790982216583018748687796994434539027841075045626523348777130298915052099628567398908472190760128005409211377883207021118557302414987442775857598240280688834639408879404501719144157741231328787101243202018997743732404381212012183079796576015160039649849068166915955566705601885148417328321982697384166035606295250150685051006109843136994454745142834796337915261591130407968903784240515288183191071385101924716925150427521150860360492694408937184254451585642036110941098081413256215455568453005356574650673148976680586485246336070036463556600145648909648730636869026687984431367860827512804680899345517837596590427725013158209392959452636080851109086735729442563347373220413419505451599680525618464334096112283569323614108178671321758467856793412849401510768742599558347306878896721678928860611367648927621253679231649239084829635744121464563115629494186764508553437870291035272582519184627203816846670687679599271787010390793607337427892798118775632975822436003979649966040585356316073557605358719492535171618040159038244969563527450658534917075923142879226404273754506642566108301067086021374340583696774894117451994013354320383687864711229464689415045398757243553943983002061241995329837233450247892123687494920459868803347368516275480165257265621128280751659116775097698738962674156491490333989632604858236910905783910623627477895518442630687702647106244919567064643803904732846451586271884578145800083768586433196955300688606488737548402643291866677835499853142090454777285106910313820920342154205185777528063677428181707790792394346701358161640094005524010735074462279633785648061636754251225915135464989271541076713706140008494395866013798853068366032935478792870427777705300192326288665717174448602697696773536866705174824255302496922200943653488871429959924661121272700304546699677504509861587260906776813733086862341729090667542792847405987167056801253118281278409110260731113379139894909032240350396323776500291993939483826004575254175577208866015784449420393812243387265455800065395644460033986599787022818052528085342048323801920852297588659521973160101571050225974891758290951719726557615610668258671173965254563401954327034717205288700842668556518686278093848509450970269858322941134340906621897172668418825324789863794742930535973186986949122630164286959828688191047805042331880895303420835904468919005132344416561799775064907813555294963345195574601894177994385251103020269713930695901644056531821499342990934003749426790635425918257996470974656946665195339769671352419532436519408735840088723971510967949254369834165366041860051784329346592999713521114418778943217199206592169863153906824135551937055951841173851294361695742715193982127754204867037214988816031052534366741312949390300166691472884102567727580023987251746728883594575277129951810124212387516393730629090400308129760783142257134778548361002337022024223775322147433238046977314034518813595582874960205690424476848705319252922756272022925857572113878820445644728523583460781349898321316933719718775157178708016844776329104534391342952829098950185140059625938756747430750392876132957601006520224486102492829144291616504300579930086334923153905685491111194872715314475383476914617019302980016573615795396831527660303310434678970385144974709647358207582343643112659750101446190715916928597807534786153142814413755062083023119233447123903922264105737525616057178914397779695355288224486246955331182193396470412869176472066093305116721245861001510377152760485481882185144240726677705102748726297075860050677645412641549467364050504295771583536238661740280605361532467365631475783426508438668338082111404983229879041851370090687584038865737191407626630222642032000164739654162715397245374271705056006337766970566670809541205718364798059322407211389118956391534385424878683674485973766340354466842064747119654428313608597745144268587643459979718346053331725069076365367250996083808876076747173564940779436366134716112881005510284736993922096908932118558495148767701790696772739679596073838633591644596842944752513275733302999623435590489950666023323170674202793150803558938324789799614478934940074926319141952750769567190393184386059477133231074279659534687714019453369662432493998741162699516536365089235013206876831516595485737857809739663553810400479816904529259841501963219462720216318353622481275383535371900963447766604604733247096863051152465099853680827011537187059734928290306576085978436409388886296261738540827672789084561991940119900586159706104367706173989725059838039108924997974751052583322514251825280432487179002684415168391683842772726773831696699294930366452759082260867620263152427618757104752915535143752050715379341132693168912340960088197629774913583838028325848455290421535009193512240387749634860735543901268168945390248786960909154188090062742202364897609008180452242810223293711939916508550997511073468672221177723077904884936351249307649230076894816040430748030818219002328835566732004970815353476918824578783173257518321225006570340866237416668929495255972535412590779208667080113624713848833388824435404700100915172461005093234862260198906150552599893298054785450083158491569678793484609418927107686527049016163364370734843724744573764520667076775402894420506960475495027705732684668709153323325851090431859489003680247720732150917812806385550781172053454276417416971799742644686353276608504963911736531918567615863745391143943814064225980021037167541734776667450937005312293809754531688298603252674753378671056784357330163836470409157555233831973778434333257313242574350125940567377757419077632456891142279903845004153164810760935080231029176021576316673260132154742325438769953731221269856601837922258164700803351640529163278239760173376062472147790728902065585304259243496504202073318732263803106163518394859763510261192406188080748270995132380158070155225755445858257953172949865536519501427841346394211393406085134965579693950390546630294215360697890148285704498185096547999358599125170574967559242160450589260163829048901733783754986437654712182181573115658957353849546999542720703466553991248093582936637114013692753039938876978946686200909599329077614942172675821440404945865572651168554801810605010493299511134345332144867299294195900132259583989122639317554707508918651279121225947204148388827421219134743384704323545904307552749976360948835537407056980181093442053492003662570983362738205212754951921555132192341420916203768331751786464245476878699996073971851749362107299464324530497091055607852064367668642824640866274602464595322258953816547211023627045005361629482023267067288650617406152836638260332065102785775479212947495982021573498711517916982409608656096291968940323359574938236323800333814564199762395178173498255447688685894936885859200872532459343597169224694970699520510450048758831088291255955878294475633815455489763893367491429557753888248752548959968630882913384973434926454418770475270218801575805665043469043405033543294554754875872065386687734724684050667855352563161836988868956330164974494895740759256787547248722753049361959829959166989233554330200942348365432759691718303734387498511493490064802899080649483176509741114507267632461529644163689570834891158860444128126200493768074190908773745761824480891540757767395177807784067369123562286539716876559700456032566499699616092575334504457602185363166750226995020595890340144368778925313545748268136170655109763486673405818844884824875404439038989044648898033475394091545673085817427329238254691354302132800016030623272095058995190085888478936792092473100758389842233590860583362833394785524631324708426589003451183696351623553984337610592907939249725003165171981204239896290655954810180863038503965661118757232665760437071715936354280773306918414260430866805247424567843010968711379870417179889362256482851362301825244430681967353106728829471933504307889943458985860408729143939274244933862261938688965057235903062742725501362869889116282029052531541625280036010699012187847663742781797764922035534800242009055098164814497367189750735682599806592486016899401628899876081285937233477827142561621060902417768375537039000797846153238592671553955759019958576058917946467331265813360837308000711778377867922345111514984215167192045850504351033481751707938208783194194495680898044000880148761724768057786077854925203418064454450686982227611436469849667294736824776737779677027751149602849413771576406398955197794319278494219720106602107001762145862276767654082369798712294611448153925603960735587301850400092420460594689838968227639742267271871492900858138841037909530911689748400847319911682560432849035802556743593864166839989313697708732702330040436412790982725528454502525734384641201538938211438047754105817112436361223338626213472440284170031852639442453336818360713672302824249007931162498905173117459606842807242830203406940242620971389301120671007334991554528173479084830158812115024720950308356325612982255898874433165122268559277536382811007121408714411086997575833152366845184480352608554203862993450633794978456169675716578757799990102917840760832806608552316778803335729954389600188613293620149912215673668629840247694639834092236419705709571191408840111184120193715817850739947924886141480006801890385008074417403371842169920807204793835133527914255966621990846587264124501977943072073865781186345746906229741016512940487224252730034425967861126850992110294793044891502797246859925285989318027406458956235469666906817166526540074808285983617275258853086593051808305322319624147797811271862880325197908004580692479759105618867167970650749753061297357312733755024422694040294249644310119204043402955320783602326220099213138975267239394629352012998241308733268134399551769494057776081898034410230177551223281517729270608924586499978049416302741070656377853846098809704116604713403546029483510290016680971576087367307190319655703465197297091419796179135151102572653948140098053217247016435732723653712126428469828505348427022639628296062785869506454013729080142403087875049803183062604787014141761939056769872654031356205725969899057742218529089337128424955043299736853695017873964067473335770892049277468395079569716835998249140431663172756117003643050898063823007956261058875957339703732046227765266961048734896519528186510712890949439599023676082280465969148437253961765534535859268413444566680482376651518983923344606859484670753248602526832082185163085036903572187334145844986925552903207747250410551002728511465638862620983432241498388634685043830689217552694890124078634518261222380618107716405438801410574059655581596211651873274016482621490710057516411321749704912685730905421432843828440362390449214862375286124919983667598446432454197721025070333239171823530256019092816853610840776437292469330619845066800344231653684481467260441844495582554059955817369843146366222414864792092261798073314749534714270565145422259802264311083031004550293377197059205502901886815957919957359744129770418786038953306557564950912314955605859067812163139833695585100430748313178896389134670498995452958662635061949962613641462208810161387979533122124600746057089607809328915322939700788096237013803293437801983938064843950512849967023973823430207461775052219592653296998573994235920263257477924799240369908660349950143493370544944068910770446353335272908441032805422113562420247191001691548904427637600350735753288477746074551642065612032643086898099338905777639330745434163505330547984599173953344006491409120271606543313554791908336651133494347774052385898471289066293010017248365979612924078793869214215564264467915956472879794597634787393389532263417325084215705047858714625209413855442452284582520129665775736935402383474716523935962876529704197857652692181956669547868680520446097910401011785929008428570789052227828950156442470096355419378475587732543678411964514839542459131996077866325734645584348018103263811937022051707452510137016009215266726166158856191419937775190056856086057433079203439569775215285675060376692160223947712796849190734075219847513623798444862485784762712800766492866125151165470090405187764916814715675392330872098076186956723502933739194352238692407707480667803098120805681844064797336920908872136023318063757389560614058689583802738262351388309787197599836954882559487596609032085176215488747314156190904394281857791638917944264090737270297273637945092415945863610461991233508901324478700910487861129296915034717540296380564909368468272640812753659343577978627158157487360027758878849627420630652059191176255351007981607434295547654380694437798966621636654327956995153412295533452554450798238249375641536545441135618523963043831142819554744808699373592230530679165399536971638792185866515278573505262609600082706954648039725901756903419758244737610535574110198959437753491339481594512966707532933527762283235285818653477021322569693756096528881552098984726017862418578901387860262398814294531323006895485772108807847662752631748596765495427881706306196487826780107945004739237158558416932668871947943421139444171750272478338444337797930735910382225173041671423134005615052139233372914976368052845023041261431762663570802703618789140492567249335898116778774275567422915625744439474148738578452590867966552907781696762006808452858648210768643594971892150879824167599479514349338338638600745871329584108565114185138758342702340983321460208249897701401254034471816077907161092607913603505433028491296019851855620176057673094224710365080350680840054332238996624487446476701377270858483445477535288950902766255036645624535988191233439980415345347717487550730050480231343828853629421496973198029533486695707457559531014848220192151710224763290109968584729696652275115930410707245580351685554855423180497933755722208877683227473298676302976678709342383449839340433285895992416277271662229815996085793217438054850921933714788310956543667613682353672309861215410298917170422940373064065341018413436585541351434061797733628624119554690763263181055592971293131420695439910955340446528761172805735845310781418549597894764949120307573689817868559268157167034738324013692024865508019143775992991108772489187473126568671885005275306130263354539818731825895199483093470710207097763411047781981119821232303550572368029000402378668855226897454387517034459624752552679992028103403897373487487721974078107070172156397584868546541306348760043652072830902948761160660076173484493824055331119414428623710316459605662701691449442977068790732252899813055221451849386914963299558160239812115149622992575864694853214893234162409950850263319386494466521194883553541085054660988896189603832843383960971246408166842428656606277089300575940836222503026897047370664369214085643515063385024131349648255272649154838824526802711981385618001841584034780590709560336041070518402560381112582963053177998499775645103132414432823415443059204289876421153132562679892878500554232222124498347556117044868656255024866110057786231351519544383790145058790006014532722389478585437672223940882787607073525495228988841177448429540583698919796402289708625820282320939263206480366938586189400445654167215511873864657420905477254402636703873040015160574727595106508232093862666173770086353431450213076988159097261371649098763959006318010316167606455804261864943509195680379175821912328182036755406028059959016699954170972075872960980635506235839418534089184077795988640892100381500410906677007899534828818782017143626644927771865130158464076579509001527239104235616769921418172874820898149793863094513040319457567410418681094098027080942785976217184945455127985672522650969999560277066585010338355887379719518014030573319069024576926055672270401982578396693219275029976247037589576082562870792919284561006930236484146457316036335292262190886833684050618377909154307131275546116019239544618090508131559188524282438384260828631887601741591465814342850513262687225587538622321603974107014964277727218297342552913682888478080990563962876047251005587891527908023857311131294072944783894463702337539221472991866922937629512851717353115448501850810463351407015342202883888125697019763962280905456173656110813827522535694643378746493343273886418517370950731495489144106063699342551682667165914450052033251141458778501453506597483648214109642714808945985514530083984361575235635762850877907318190399397662161508317561439688074483506237531455999364233676043393002473839004692311301443237385850792977165994741822752489295466908661090074328023450393278469589658178229812951627616851297795591017622701467179464465668243450255961683452470564077036403492555693779262333572674873963389707542774399954999141982775671243265579683464614799626295725069751626238146311454452126193784394313204179064003235487484418400607350768648125315952403348040232877214717737986807123181192097753593785994780661172398387597463223884864973726971540064719620535185525793708978114937502987510952652282179789544593251068876988124172345599001251173660664490908230028682107104141462979345041811852855175557866330602054266505706199096670638253032265221530387825422381930494064736912978698156193795955200209248717643729718565505870305014793512772593608432748663165313643242168266303407392555284390028449630067722953118124533620380334911135876262704935190947895754328284052365962160754213532062655471356276356455632037293472627954000708191348526676022675033672814606848185811962703553419742807024609259673822329979296483583608172153734398308042694858424653981047546965992317121130452481090635821016573841648825291097104610228699229153790233795832467960496400781141410268676730276296235841014615934906249502782312708729386604268578067174435488780467713042000868209678104423608592879953238077556437494620790991570291855133232055109939581320144357279263923829655763302967984654593983225981527011789676770341462596256007340125386040379591800118436737906132511919165061022359326339093999583626346395763237886186032015723044885983981488028282135451497728172005632658591844867595632199366598359475300280752956104406970013902623580411186384009710589437320244803011875583831488276715882980259044170010098656128228563557130665755691835123662335162732592809341366803399403417445862768419031574163308244566666560514140724762315630141091077526245130838686652865508215197491023021406674246439935371566011026236669692849393899936774815168713124850905220264074833424801615216394284406144184372741813604442137514301665203450159567374889583596852602225375581331155849261154489080350012078720064233892779849635473733829180598831002691862806832206021467150612429215357443278309110902812593632120687765290502794540455642732351266854674461858043383168237636621740009929857280785991346693708276810299179386603720544849466272169811762223187584081292809888543944248065056406715789868909094703165700563893737923973260039753768283596157336563381047280866272201725903597238647448851707404344407060333180838504242263912751734624701945408435867544423188714661904565789963402568777205994941768486113357142022066013309599176802647732619153894669904063350619374729722249805560634901763137601203849962854703295363907265901614906454830361887351524390211345480117106655059874100332434475563214113703785301005242874437644015806513228799771166540992209707860095637254384479742066727673061357885555261262228424095743650364682320039343175791316106088591472042482212061055556004204660183989778148405269476761136832382661940376361723451023421894906662657868763582513517244772211354715882979871312518438394275384934443765779578156564936592701844624776491886499265222742541615050355397550862939417439377882936886266228226882403722752048476956331381193712592219625651882703427086706365286324602287975100655733643583096439187086318828566700447627857031544856175535691230923801408029396045179385220651164838985252196805038754233696467165043255402111599713557923292097707803110061036336542717618331086132623934219548650448878757698990550168552729669192218326667544652769931099007056968021593214025269875643760037195677501458046787776502474466930915096847132232388451760370280777217279620604942734586145869334094748559699025039139603283080351119577188097747716602841745273425203233369289456930294433700336416010393972897855191773659781275646585861889952908420587267029369876518099668819317533065738569097129908769432592663653148612758018797013125204353657648065276673650292751544044107279563689082378864637577468559628265942085528377501742940070122885264695288012572602259974243106455366717448099715480698037684079623768021134495541340217002952487517970844560004582870517230758985961511691199618088044773002325493855154539226111864963327752598892043271784755051134417733890790618931588509218952358469667930696559237538032028458339073506102143109362440328841155880977654877948086001046969702252320937772398750639661774746846329990100679924390855178865881977025666248553359458073518012286087647277768000259779048418559014838346443153262465817186084269891383552091483343944745717284935113597446767139261969047671659813537607659937420528292641149530540476066584719396234071961547020456925017690073312715548855646760136399749545427634042463871415977838408245950494184916531954542210642981548907625193421584405781820465499431090301875575695472962320666208281057711347063821076446392852780985672857041629636135204118773795575479803960844325512461505880625252629801114318246516780496923163638910420920895247928208652072602442166872772208592704935508140868544737187835381484666754681192864540054054533550934167653375510211050664076695936651095132573358576238178060343156543302112878874904461650150191993332193756418040142324103189455255612892423664114785518741263242323785871723579711437201445734310179772581570567616589466554775859422193550543218633624233342860141494798326158363916095967180625146679973311065390827685928715879810703207457340694659398370152939003870165959621304977296979913666935090463939451106942208545728057392430784060504635557169352477888825191339369545569052552849630103368538576861341449917170448203076433141527064039601795910679603310122923140478245496134536154959051231598059734785601585791082517901405590421174282596372758795185699848158592982151394485016086346617594666169480215140117478953613151714335217092255664658773548109572218167578195861484648146975659282588283289542323502140940446165030994256577513180745114720608478706558086850831581412121061432908797130569509648906558287911661850047845308487539593740508529130165197168842841693073159795265758104557371429503952376600419575962018760545654617468790514309957747689991102877834955121716980097051069621396084137523619181551746410886329692834570044357685018759275850639212370041951676379032844903828858131620150339371860389426928245068144140185760913628734447878116046087791031555981405561587506116464180475921023424434080102958226660808897562956901348519470421381673300435356107448446487940744083475472358830714986896537351055518893141003640915415771082139000530532543215655014389934669208631643521536307440748471864828369819029624426123040935241893473842431984809391975486997047654259945125643576933611040678001622882668707488756760356864491455447350612740390712201156522521821876584821425630770746371993645826294723665721863761344002859382848637372453188504680533923037881273492645279344820765400194535128051152838839165191668973674899573181505686234116087978724139245362778950138569065879041222279743263824396841445621617630860381792690986712727703695200428912018074334049947597465882309651536191647413035958284475471723239475560691290367748637884992404628196568340043743219531360795383534701262579827075950436414447105589709954329630246334689019006940266560046122685284193327688166307290870381020520042667185703650704097041666921834134412351402706603449614839424461358861847220551189803024223645807028058295316335256282146865910781258278765351764090354755150516378150686463913964109753713399432782444467400454339229603215669191096754772345070211199327354224721462289233861618183277287338952987650319077590856804501177212214775106369630471870508956573411691103440731915666341723560988642440463578698040885040370137713316299741494958405534691063795384172201904529588619326080242851146199000118506216900958447721874545274986768244399103780275438831770020226978998208220879093272282086442531956672160259122209214094922131313231646265182893407833967540079383278455103648331974203562855289246859632522270736070303028891179132681395631242479700825999952382188672481440957626935376232553035465462164279130234567489415681784704638503740710176740213707924486404952917493058655743995753930779490998852996810632836629877391630362212229559168853454466662412170075837752584749938604269634223939503414733175413365332174686651925735639640576154492343895222039732259301900970002520866016269327218382397896911086226285717940993354705476495349972587283110270569862472015048860454734795137816854725073753872841127689149937425608607568804318212277795709378863848419474966511894843313084039076418322799502498294920009882390078274661203811589090251846925191734152550368268089594358098288061741920680532833171023777551650200810924074293320266289291669207886607719402085634090147320044705696668318407344410149648650040434528064501277674170905347266376720834135041409904845564736458344098240060571112008879179278304969329135420206401701448904002358890358155081102883348840582337981232740032213533946157558742307835222040562270242947078372374683315458990102989443568825181908193865830164274058140425977983964226240696286260528459145743206482217644577333998967549825756459867527160250568093194468128974349322204469980629918338179164728812160734274865810880596367509032993477300451356443768116248823567239238172772085057654192530342845220725261024434668096760762638874245912292505104423103615309191120816694409311102298149009336335699303925181721040715545538844220483786940076065894954547797388483723931681778613578695398157353135104701471352396880355305073167051648198840706011061686614206039325717760856424539321538364296800800894258210278044429423157993992127261818514377372589575461674806249732757739494038033568244344458588626176751766274892002860891059214329570295566030360228163184063363341419960938601111474367512536050009111096789192543299676729900716439764232624654157035227592677129860754573923004714120486780417000519907961622504598274837711026566713317934669909984306966373958203816471425114282318635023390021655920144442810844490515041196805755571048385126923480364803837543515413303690584371789191294190385454133455151312811606857863046172171253789425344413973893894483190524658317696726292400062427957063654686733142456677855336042967459089543162706247321992922938256637898989955442583061674956110395204856295399182227277163161280600928887093395607804703599768472308193084894131658308562744935741811915472097676610698003705540045622825259092455588003338861920395131978942002625347815784588772586575442906464991274072108737783043559161839124305452254203019953839152187700360460326217899622207281872023867564794342268491893808972935785038960067679445355334622121948509066543253059381100073365618803933376846382381850081348258622287652721918910372532797060504570300817916378003251700590730033877253198132369670028103687727748718697704976234983541964908063109869254295248639920654950600734932242901388216369345588656843562745608040051687811298757772955967338632054857091475091580986705661652168416785654037904706758320273856689127951104792550295220663637937551503043096527918102402075642084902548808617652093878495964956217338052968459948425186136103107910624597892556557888427976720736421851583906449542289864892674373552005544647091125645342897587192286464829613547773244698014523279492281457896641832205795589617861289535673671045669108825214488677937843806136982365816835460502910071685346125476072632494892468871618045239855918209622633825786955054724787897274054889806290873989722470844084746866586704500040333765605985849533310440372420933918422307567108450509070157279855368424341302756985313925781601136252889007734999548613048877896378330259290683338464159974167963005380712136479129004346167944074090349536562721057228858378313015922404090384477226156323092018349962991433885420189425253678040361358176037475401974659117715853868511864404380740960577729261680234634877036498123734923433198036358149569215938026248068203865235627338393174624302766047158176321230232397255112257668195844238415257754296228863397359075204857076178587872104142365507768594528780126614033848155917412330802359355437612612749746884354193639535375428400838015686232234586952304001121596540574291864001122748637258737326398224984841259446537164824083347339188811221210711748799902539604856954381823022035987847876053070750523144965059818181380017863284536260757638271107403872803749509341208778919340574147486654078612392288024513847541194968589249141374484747905203198963513083280375414956620867637728289374031490314269107147859577283699818765621960178729426309688521402500498779817999316158076027141349176978405957730266610590865319233297002819097059315750346057669264504442370258686828023748723952515496513235119809714708292331410901219093144692178903974620389898490934467062609970123427298733754073176343497448404483312262424004257940008227069349942914732285736044630453272871728535504026784324164178861301970169994208160055895822454453794429514219853658834436760134015134296352661302703063430961104565188871090790904376332157781351993570418811406498248864710302832169074019923936600718756339585146470183423556565118737684131297715543232762954187338386730361613884490035818828254398105332255091340546680655801062894983213541879378017698660838797150882245512791243295786548559442221406384374622602274588686045903404035932295372410872944093180931413811979169645422735125841286020371766141621857462025427232184191103210806262243719149324283711616714934133279156613740328679477783874623369752054993163137728410955600910947069820581927599706467280953913127359174685085237965530489205621803234517423594075336226667660338578466633110086036523843582626290222162622144243532716513560025305453652084623118350175743448824934813613623988447140869610321225023661356749682599906349717304533707978282402584862441149030996327426743745510804729071476643134503124156401599069369160013730998479683463034266508873327049293049402533382994105980875530755466974331899741083452323605380492325990012802048544197939560312149063879786111305571035888537035062122391532591064548355719229253503895982216796439932399140562260740937105440795845833931935229424336620491658622954995338228007962892855205211246244474852461729354286521033640209907668707455636359245557164687784687999836039607350796201131622060232022505335449126311167749152607925241842568801680815938503230118609660631609718603552044758203339346218234150963606417456391448190008721464114472602665656703441527021525755730829389608987086985159822363647007159509442836127502199469234457831295886055662198550686708242603904817450113611665830519332040301609002805533777923068443459614776579429174308850416675429642153185554141387229425654563832904184897436771322912476509678652629224479666268106636888162937513736612113429319640101276971559963277272842717061057722713306281063846970849150948813926447540918115463261687167369897347988781060020252820220480310351190974287255253965712520401523167558101805550950126678992233720648749821354798130366426159113703608503981988052052344342598494741004621928587671047215114294948998804759342186661978297109009981675175628483098565928757451559119369569232709282091610049553926502600111041574053446038043518643366608302336062232240717129492047189579700645908256041288684775784925345674377345949394213595532044657127242424429746360627104441833986393298815378259155806156984719119492577766429384653397727160788110243707192561413975966000289898994828814934516970024037404059686146651627006946979235469111021007681467369794586738626568346163514191427699675322273933489011358766517806464568903906510314653899797672642076287155054342585116982598506534080048268951672389061181281419041309866588988522213701849194282909769147082890331409087292301310883920871362768312414772681305133457060512448862115433336530012450830852799725277651894952672514189325649045465657265491399224300090043050000343758397724074629132733378726268834620340942231871267067337250113337541863774272119711735189428337519802343344548150980871090273612550236900638036624766487234023968907221954413058580857574203560327024809646619828142528269067158944617284967463767854907272757991237458086606636538856080761411023302494628996580808023222033118326014734854176373447475660721733042343917775276843700396129480090651393736564783637258412575196911110724179709828291831133020369234467902162572899086035722822417880953876282722793856140843910116176207516796036357738058884703998245042147891798694994167613565428537789082617202824786475110161265641761507500270823976995717178713717391250218762315569734036522290581414118032649507397152475656523588418570199384511237577096696263727819293250647044528973769771350938940078680331258142506558257426144332268138678316696011043118202964738019557054684727481858031447601810969311073895604658454041943941965283226415114643012438819345111275394562267314670530077472847964942132616752819364705528239600403381401081674506915755259074876536373389497422412765884981454038643220418667908525809046130378353616231700186607406638246381707803331466029208903228278976517369738582691842594224790196552339941322584750726279386479604139766359067837233163021293354064145636631775706805760562226623895472694139132218888875416572216644390883509736051123621245200605039446813865006471169194735683095982910817574152473488742594097391685672331999625804871201146665433119744537373855194314646012572792596570890663077401735721982328710782210793067745907448413889684727280728008227734173332586136073918913326034627688039904007237743894671696193935635041335706672890752489261607602530714169839962741417663761833329725149920525104972442365956194434903738528828646190588295702297233980583497010075630326043738037329617741835888402386442528467761187316814687811653893303966954585553538863031798943836095239240489415084735792625589357795778795994035503206221874198274206751336001793976876042957895511128470805987959180439193496241762220653162365471075976799741653665125688446946670838374528565907881910283849842827809252191797489770690293446645425934631914049415037247560232215709339763865145102952105071822500625990772486954520144413895492510795037862406604547827670759594211103213491945241129226720576899628297080100827103776947501053620670950210515649283954377332815377815212601616644236700525890490263549518974657370692470829163324443758039394933794830680392140466753191737439182865729924411168511494349384641956961740858985552607824069630529433299698044341491236068326053411645695307652149557927881489184002193302061792498186768478004901294557130004592240027868016924242319882244499861588175559538870532930958735856734186473017786771443207379530127616374266187649988498473034033956020867141515254650918078380835735154175782166980310776217957111684570778144222804605051004466883045312556096389277415933747805735079255975291062087916009839996521678289666625159758217503679516209755434705632991668007751967861405239032192669539176676217674354876429305629610958089109781403612822830039880446793327979308438203480589286589511365829534934552073110236071987699709711885384785464159365424392418468964521652650096459456194236772205230317373095659429556620356089569473053326374449862535251181348224898618710296402720221436315107269426972892123302050262380722214607799122962570731672304744623956161730891192361032167184605296831895545431766461765892255554628844765222182808534930014320728527620311967643794541014681729130192825651935489762114202260935291177744244277587585075785018987716001695019042722357482570003315232848257121074477712501736341498181474185049387639943641441894483211194178343221352608406891073889547548384178556590762396268613380355186815337098646955114637557613826362825356517380862236317696182097099268858741269930876533410996029581195409003261648126683753795131160376872284020769612343626008379147491031169651365563291673752711678438655844746262175417852261954009066323933184002195867392597669713833941665239983083309522050332652940005731053529118121297354725009366413903002019025651980424822555308722857511556989059558381561654873573696667963485251148872582819783643758799070710509620081353685961943313036547376040652556752694484441207384247107569162796626479226509265349051807736980747137406584086288392866661156946152069204171890973594937876467123927247882834731325880392663430267119995598906309747180028851135099041735083573363574442051771808278683093868828721014454751033384086677020907266209853354551107207390652708660814948632922432116995349102258970848609830527225249022668795108015694148714704525326770611711024211206935030675008369512577040732213085863058505972666672991632410700195510458560365401490159296287698460920662041137280057369963740848060174341618537519533980432454911518303200192342824446404113803799092301027355513648733898438352530983992898759880718109488971314693564175549465214099663715105761772628436343085265646293854823485215588154939996287142710110079804008389315939659700247296019529184401239959163948180063110111738776036898476486691662346931774084551065861979705058429492712493465928374524683569521451841705386504022086794551476574541293794732428683908975890831014574697542433707347559559067403479138864524352454629617778931000337018226433821091934705775254624178069396648230993459546051528215370319096383276774267478944405419394600020469268008906468263276522820622103446403510192515471113623956351017732696699872862221708983940380221548769485812004194651984567178127501558365035725722423729737515187882839338767198668459360523983881860803295439515911466676894753712386158923493553022380735591303466382831175601693438896936149202987349401220920414576538541014125389875102395218290908068138441159798702298451134191642063731598324994940937778364662847110829358220851820366676730753927443691297535889630834683050972312085439628920223537640439480781092362145488751567263160240784295950767820375073569851774940824520599157968448431416203866623921242549320351303057843137089642292652632205682785745742767853389886153996360406836639718613287223521919078392369723602094289138722095619346941505359529552873585586974513437754742938146963576468268399007354159512749058268628663215153297396892834427190670016925679031132474940276754675216250740112615559923093768330741314757783725294616100297023417560513674237527087384457576054155118183861080972710936427397343230999087322932780778401377765520009661761686486212689881643423200379276785123054381056293987794229868946037953352918868119905442788212321355281171933099499485610148643864955267022436519447563277249807358127716668413925073332690168729736671112186383940609141528504485143521473315910956539418154806452255520164207855430468909304307176299284664302834310749935557547038953038870823899612490981898302530722655754259052924788880826937743890583832229635656506331871526910309385604992148425321689509799247601567927968357362838590147011415398168529167262816201124068283617290871511698017731698406156312842058040890370991316776902242197906506583418818087439707462808569236818036720448606756758536142340202661117942775595296014610838200078334427330381613071880717594255784320909044066789951897262703232581276784393601093627289664828727324437251139513085839934921933854987110380717865579299931562112579215973705675343774031739178252590646015350309902157440973547007367476902104197835291178836017542260351555135601678960229086159459164043649598525033366167466329207542225159435729839202923347810883525484478346175013265419035525634135104553696433795640761292267478597283650109209097711292123762488511355815263406243681922459802976098489427951277425310917852599642870342371934843804266993529895557985427566157957025505886465712993554050798052755368710739600434464323813315322176603119474154358902756594357882133195712056117176580102727853251069670283518462185003677806488005288613775392475998204831054041008620527591783006943463649175604474399330628624310866400095441691730854227217445371665306263712999355989008901940234574378670755545466218151563069398034236192985548193819672542837932871872447778328202281509356257387875365842070353855701646781181481557586529263559213842366851479723100348066722149427768551028469891848599180561095444746413453901195350997189370733049438299018235035317261179133791188695696629889090391779065669008421687450409981328240325617535956923799532236495715767311775002724157855009161706377986671953671520300401347431133734055522684839538870960718236063288132252603496427624323259476546245078912753960258169522402307457093134754108860312199127001858400014862319678454238387542370722966032980926652746231778032862809485622528797681081978208305738072378647536458388971539738588152191715554838635628645816740471652944143657688852188574047058184351763361149438329966896973743040317613564011173332552836357711169216110683216224996661302338264239609934868971150762532292691300983598262152767176417237804624803018392086935394430868994521676591833264249421638588988793245634623627579017669059609035080828797841294481653428545716394084590882326788979149970575325816029477907623747161366135323183801990485817558944538407345128530671033228793320287737175858835354479718673788377317808217555739492865564881108092231682763792580764836716307146451647593580675490337271406685696374558762156604072872166153867779497570002817082383752166274946014768602407462981855980003603784637135918679623057011282221279002792230412635692512804105077385491733285170465207194517813616530030439803559010088751519517834479001679963586839236051708914876024658531272380776696393342046317436287348335820304423445022328396157777993452081605711813636177854787784109100752001912356610974789567454474505234446482726765755202345491600046564110689715138428158205541678980515334677034938946560932414797163108185210137693920245731982937824947273546629282675836106803668189900399229799633343458715011190478964602342088407927935385268736694412148663886231146401923405256907852056904277810801683094234152217192470556429639083809995238262400633816694188720969628274578532804818309933119907878038751145369070425357628708258457776855651165134246469670622845265976784631961888629716232845415626933543522780445020387177255220279165778034041851845982784065186784754706849249816583035301857338142878089746520453467246211858394791730544330419858001794985205796965578134191173678702704689433663672370488741841105032436133255096374882395563135876421202492649170626844212350625937672737954997701820401749286985974236995786267424493244912773468512984117120469842303903284843383655891891878928199945067277703536406288064086870526388032114068585909713128324240159636717562211730350332836213137128384823422730719207045970464963040321639225378209884814116917384995611851696814622623339691616239908487155250694468422857501813727133453358849556518173445264425501303561354790039176779048049079808589837508098846102658312005085734968604884375749002461031548980006910315448592292284123117667627071623271121385768152115749482442501099198221578477751350352591904624865462205867453579398053207956573367716055424995366159891520860361617275741721073648784661036297684774462601500037789032537791917618090214015912714839468169534287569583664559199726139029113168744304535727159067901196033867325909369194225359532891468698102531850058757245580243704524152679358491131789515061295434505998290317706733497994800935343386910991784031848551222885645309351923604201343463081605882666489558429575612279222912027615443241777990040534095162594715504091805021414927759754194800005993162587345637950256134352047603364971807488013635036171385440283479586755469281742785420238547459588936483001381284505130761518190805228699105928226260698838750476548807485132645432727033683276613705178283412637619090302532084656481788355070247986433233041254762686383653557883487704709434737693957330234549779790617152361415385249623577935867094962455039155958557561502761354592192997396258204866165722806944584668978210143805137143912967992080234733825540914489606022091560977595080460805955892999542230573590985208322498500124877378645180030028572343228905736217044483690867606193373809691906596468772172861549830799810640140121815602182541772090226568904675520870873875912587749816603925473714582270123036081172447671608247907059465261999845362524459446040203261593793051939932604920105664344229511717047817595415862489823216147192637875531888326375069316637081445198506699336831369133787826057295789593309800603852060197400792993569633697016235017552565478627033308471554844719236427824303236881609178722575138919729158233180962165640709393466169709552045847772959619615790633014348211751507202302561355175076181357874700303885165458548280114510034197156072207313374183117720379633397135062098107584011655896251355342111070693584302804292288442016493968101070530594846200224989588438044529050425201674090390623400078913707430589615521164862778090336859466679505035940808321075133562559545520105480659728445314538259126399106656152703845124213295940052275441650461357536963802033080416818635818303352935593362281701730467531855733445295600887898712713961823039884684894117990125488989406492278658205489864512375468991106804403486716889104945916522037254417731353352151389107725060730161654965238689924817900063204888330561207616368455707736873041245935435477132799204988424821942743854138439711208042634942628943387088384446585259961536038577351394870334039998564388237318984131666383814779679810180168041567874424001667323832147227696322880755867274994718110280035044661223168166428922203361176975990023217363492282361796144939217050030011267679080278668826145196293289916151481228372100962989616355482790285089390118896396885756378977094390649140765641384720904293709314993266812203383734745526917746081754143324461339117421032067867283466801463160027385724274341952306909260855400491536736766852503701200292182554522365540982610566275680245222186152460663753574670309070601844494593649984278998027864982966065231940942208812787502823281649714885665610486797878961847026026878086780234762462889477998979523436505305898917015979823255679580177176120819417554594181324887916411837219467894632158662696224525946981585961912385144718199655359859963482316791972277473157881691437256034401426865887360634307823481446414318621050392688331480218032638709921844992565610034648930601402293930977724062945965528862064355519949283606921942994061673817387346182225747566275124688070214442813195699732292747920438201686674108720311666549518221167028181990837810394574160992494113868623619822552177875822372940873027375562888236298346167471374373701220560711175087919832454896596838618047610907178962631248904534225869491809500461182631838617051155968985485167153636642204649544326471814452875220829791992052782466841446134969898621282073937464149352360448620379021864393994565736301415256242963614847867372373665844648062120485614773332415044286885878648956702190334163881824938849498840117275687490904229452062830590587689325629470182517797879346806239586639638258459523306586035915255069196329793299036163266359237299747952500981822861157167126919317121025188429288800748113027214242494863178638892118974074256866685172074998002882072205672906511169753459602248255835549326215002063949761881320611926965955663671027612269241459314742345907810492878144737478546474909580753660486954738061512711503151500122499696487498796675607676107550004154092216736204997023713295428139487121743463439237402534996891604508588387801472050788415680376671481602360065791138841480461399372143074672720082418757242679302995410690494847594264183238191690533256804128094294110360398714692604719279283050581267659772588253153964838538807124991186497845676263366480098148930325895343647181640977410064430110795421546838445457446281869057311062802743378154088057291011488723749372903861190109717058797240952868859743659216518428971375843179358785531150892407520754263341390487742369374907661496659498579192643716872932580817865526780955792928805022431339441648227516931646236413793101210266018315036314717885681612055369763572640818285575200910201311430023073928987725670985514135904462889155450595500722536586567867129968034312237901991550839855001267988510111904450212863060052585157941206008257193143425309612365196604215386683944974250724385083568372057027656047769012798694692989608755177097469437141367514551487528502260876046590767741846717026050081837406022172872840552809731482181148100651123051127711136305913002099686175780772225806321544322516928258534698578953624000969043663811526638201384043771775907082961489068431630377336717861997542728865936000551322137369952076857769629763685834586010082807352982343425232703928673513647546980988869721538755724644824708237294103991559076017608096311776927044208673635180984879995561425904022694116235368623137382927689795855487932684980381040164649199408590390934243616751043053316889953234315496659309568854728562106865720237852382765577615573438358453636673072019328616781940300989127233430879696689208292789579678294388882051328517333716176296334170159527029298729973847928199139856193336619790211157012283636810081371767148569471069217026431711730512204643561959502303126669136765698368237425820525211457525550962534360902221084352120176520892912194733156672252963996071146691833622493895129717133330979281406261378660955136282348520500390019195841268896485149598537675614305720351230301852436323012096742433250208515809555021520657396021974433347631745615091855743344873270591277243551226391298433341808595608580513292240583493778275859804268846843713907906905354765593764141560465789588364885877911220692991416924889513632895563184944057313652311725418199529480049481578784222338157821579722272932495778828222467329171168134437721506795164883392460995586653174274842029623732114231537474743948054879973018005822687322128706990246560609962946154110743006817793670797001010076430004428894337145863514585071174758326528381491842549023154450833284596961502628837019875619059900691739278366333293248455890558297101905199042127985257751663847238501308825915623552431843324544154308685481324005507483163503594967107461568203316003620774130717587454169143501467639817617693552824735659354347165388286480783422930261014451603511533823318046384880740140727838926826459888759805700986152311299808029312275284528885083023358600464928205316280592543570835185658530441256115596871162460837567504936396806280811310936178312140467161950907443893940397283880692231877211554510544046428557885823235071076873468210569811452938482813054730840102074300107925935996302343009905632243466109095177536618544969111776926262397466547726253071305041933817668500801761720880653649944378460531019970007946979437425600864750487514817371768119228672049353567246413864025102300213733173854662330816691956386223715052747235768094105516888193305072105341547538673121169043664728599608699896114265812140965607768181966547169167367955566353319353190972585611057108185522443119633083611255306729530145973905277766145865402530255513582474386632346430275752007597379626697677230440175368714439504813790362249505554532399214721885377988841496728887916782427940626242641662294512778958092927504361165330198052709873022419330148289459307821452091212786941158647841103929241861768447919155488613104868638134227109515940108715481093783745417619616655472451557799022035949431337023215322153299088703698830037795522947899680234321897368841517154956224953546275301669496802040207006025090737248055082664715016859630591441051533858048884293686435501555047437073133144038667390235020471135642934377204794424415215625013387053588291299482976968192937923909402761347195291397205143085553750822179140475253046800247464057227913532279193951746090536593494937886167233987703683398856879265436639262971774891361948482858266640264979101232967325688002768702858534842898682271975204447407961564291016084075306587143416535041944546918855635393323935003917151202685699778832056665720147110027759435115451721634765522133809426470707536328857169075718368427142499039055604566010158967110036691677106938534711077470440474861649738161381031721969090764557377091714875681113607762522017400337481948725895624229980806393455840544255294256004364970440592089073906111542333899802970043469313933532067899055909601697847592044913557334337428617587572194854079711027223015603331374563396640340320154588813422597917555718262166734738013471239304782999347572682580650137663240056598301068139487711872860093572773495272042931341481242230984109938220079880576544219308676399704042991447002912390473600806379650457893127014178643213916059136795313975988563846864377767693174168603443760537405565403603540352590314455762860006591049875069590595470412658625489243635017271023915975780479033085107727102634391693494096454283726050712092034968925456085612083196938722381297384889733969315577247332631605581682602966376446955188746802556792996498258188646914965339262653165996900959927238854736856420634007916531014362743539383260464654990003602228371401463104556666261882865968324319158724867070547789140621496012521713507762337087628903775385950776976888932376524886799517970189165787334512064919513764093189117082288949303111946295858491838667114606719830207319721324557790448099731500137944567676020002394893187679457340756458057178246136594801141157656279305591856710426548405359714697894490292256389350615000566249943562433513092366921490947308162184630323278920461235089250585154398993912229637397854710412596014723679737433119952890867206915792063710037816453261396283066071765946379390341604409691852219446981789339369603453456721617415219037689812368870841199301173891919760954941546237135054494958067380722069806175467005097317799380036056719445647018511214201979889550045585790804239332888267413178322992779058882816122624738626476582522420542860680625252886663069395135731259259357509444047785181791751479834654465011384218493171939051929643192852529097300757934694497333400813590041915346445128349159360479474953682215399417291067579535979696992583979272210010065714435389964043925280033367077948223838013104707128586311491122730327424050658621600918208664022534929172373792961784300974010492524439701104495637077865270245676958747679392755712030682194358047780697313601840124139286070306178384944173203840264857929285000816025506591056624147641217839722233339685446561771167530597786184398743146650217143910031985127146724299385441937988373348643769307815079242209418061524708153541174611128087926417577328945463819889569508443220856414708867038803615085717574605935611916486853551910346794769479380443089695076974930119541989651902202829553654539984937907881199403515658091372656694715388636967430259351915979432175666213186173613497727991829287377702192799576039198608287714449677714442470011959790104556026975247346819938889757758716083447217036254712270854157013449998855887577799111460762814331181491188310310064477339295388633774185223687542748719614720386233664437073108803864528021275188846791956691489007940317691250902328037211030562555767449125050195334879374522702889370056480115478015106479431617162574451330642423497644062429299526167402608834708726523978928680835693607509991337053419224020610014959827904588935699316836811858178609602039062000728872010211280543069430333678197894761289996491294148914933499799231007435882707083864658518906140621404631314009866810171648763781759638100905855266010607593908316113117205522179678164451662227208895714396994704622400634842196574980713061632088346262344730186173507104949987036871842151788773341918241696085872152956833887546436893984269470673205604141242230168481869954301595448194960106736125205825369059915646604658730720383977286758373861319892758224047227997828171254869386756914219765782672634154343051015343452116201550572087904243532963271765750171990095433175939809048813188532667655125944871702619664639041596278747324489444741761991006267608722018703211423307875326744458919888212534457774527601319600229110265554755254062681600706434726835496021673994727592461260159927664098707698198401466103526248200592746173126239753081528959792242812285465412311025105201553548177948788323805384282317501980296723525055567069264144855374679005058786481398144136084748488587715606277741915714021846277899382636927859045690030908211826489382676242992169985473809350168787624325756274122972009669975700546686611376649646122567838817736952691043541415018360469045408871227934941887308133952148124177173039277551426964682204529244656175726070247591924909451825987107007994132640968781928619345186499813778530358650886576883913255375983763052669978540634259173027556501133303590927269829191916637485915558090122041569707476712393102192643708921626556072982289066235428698514416033421885190260283006556931900041612114100847843180178255504037839980657523684680299061532316228500530206272503333764691033034265225373532100784121654048904257774390240009660198951853683580669973866383746986911433948445810756060813706956694773192255383668865395816535015750852838920162681184176218315122897145701040223767121521072876055988325298205530207391422507339285049038844435938083312869976770790602548292433226709713397566070411987972409361499229907604866466677753960532786583230404443511002893791612721792227755717007889385351549180949509989735000639500656970278969125688719023475887646732537745955148375615111247073775402618073600751877422011117753715773206786999879013100411919537352670942169093009733763428363125051016880311710750622846025972327905975265378264802936453491558145279859413986724034267216096064723074070382915577930803877236498413926128751318965671702044780407077596445087884933185251814735874135163974233691578896778431067179284525936866681605040237233791831365182704770428245809057021340877268456372732151266146671718607663867228244963964352034514411563299451152849324712974656317327794750794918710123074935487654819428096920489853427795589186244158468262686125026623887101191930558944635748940561449911520580753033789341439995070088904918759240059935499971243225348117739132271636914387310257288764585637323046153078912742091404464050068236737469672888270795118545302165912240858851045738624405843821529654232161557883824927766804940715724325931647217947866509099360348695426310594876701354823814808003990081904297067029078832081544706307702836196047905151584906549116189533563746620791876681197437301631670802173606279526238045665015906494436549862729099612195346895318690925802607991364566164680725996441980643658081611373128519216034234550764509585753713980608249498896270661425464882855790430559398232804485831762973681836649323259556758154441080975977496610906513361727873749291973412892663348119494161769805918809821696676669298121929499334281798635319384047391742091411969755832360826249290626419766465303577057729007177687271584055081087249324415885528985515309175727944963592338426739704486625645774349224028468766117373747752691689753162158990815732997864309462881126212821885601455494875501711438836027666680825658233425961090013130487552450300797271124221257611544568666133849021862159604886575483896946309016480813233948775283948008281087717974496040203844281571821615499736867411394341847536733679955683866400878916081379509060531173294960504860122184234875867458476799741639713471682149587670611712999064031357266981294940834236880175499805889014840517297087623607214881629405129503023760158835428790531573345718896688312431158288181695575238073135583700180211778796118884782814046599053733382570509875138806157493286079278068423844491773756245654107092843772903910652350382570928441390599016822290123180783904858498427515016063968570114329640133825489112603760087111886562411552921198961238407018685764058612461485424924551836488781308464113406524667396987116931945494959490390093396300010444979630654953506477810607751094176455300941395414701891032161241486185379516722112327168793650939136363564239924765108197467625604146285238866227388278187923469707243091409719625282718619311248125316941539552114999952295160912436922257131921208092319940925944204950501385325329352647571720316987698858028462697056650803237096974975786910567484450642860311560270686414471379850298557498800032930571824028243957842185134711324621437474525376807056974334520647969631239334790914015354710163378850560336006701226383993128546657104365405411241398759104127520419536953655975810783933552288817628779998782393641505770173564650786333020351791491068555650601783093467784799283101944370624218365135153908425984270192578883559376487158462042533981748709137382031393214212162522246702532267368200283021567780809110922910801576308145360759913286526849676575397901399647801426317698938044819224238683994765120286990560887761016423925942227384155658681695905916093250369883707948283171162158095429465315645711877364884334240537913231908398343701361567135271034538380158107782567955028874592445947917826390095022151531834161356015825798200586348333893724671598020694426783767279034472341725852446652091980662044161499062582943574803573449556875617962867277380457224812873302206968930245073914518395175032744040820095034222559998909554417647150246793161193269039542419515729923310078407405336512965525599509886009553485488848169653747670024675040813341434483956156819144180111568663556536203669280858416050271492629932842672162726793303244356463407880920429678508685383797019053468663301067752156739719407970135495079614707947145171167060278500274305921177329068185668722084259959522956718890726868472898905642809856608174554471503425272446823978702682986167413804687646606166296580656891731163455042939103777408881397634352476480468505055213891391935287943382236815521072866847603600827233404921415236214014002120323545173688631616815543423150370539269354400195753997230354120625729907497463886357270291062693803268848608880670103646373049237930446465667221462796599157705928860832360569582049876750450891886199799703244044708365384208858976978989163773931538619211071267446582346429312591872977796350769900593285496193064310035701965091116113669101677075952168470409308227492420585392572880397256409416277360568502504432268193608747204243227624550339428341827640928067672891007176064795963921338367729722401534324989204178425415101879888650696012085316509778198300193739933251478302965274014201319145134758990515353837078936803486003801923214700309351247793353156985495073659627482640458235769004700086450243689353903654737224005283753380092525312604600064093212027450653008231724364215976443886951245786064590262632866215181290616655652085577906811471514600281330747594941045136977455274344645268614372706656941558966176290224430696013510720534251105305953728238402863078867048664888107649224015945390231824816506776204098468370769765221240248698870943482519239639943308086754092119992597496505652012218353670835677141956279227554063231830943640053848356590522899966881020102971757346560184939190876952095008657972003271765460856719786241075839451881586969257140980112121548049540566433197652405903208816918818868085758542512114905473596417568463264590194563513222319194191962700322132229319852809910308800880609269745539101003976183589948440511319597847385530242822393138442488158163041002607879158056427104664017404593192161753790282303676145307063203564820572113154516947845659758066762212513586573112590484465605368019766232428951411288108268086859944494850312142319750694950824081978877042842676104099928581722108975369868720109235179616272118015682707090842895243702121121018346174509990090081971500674313816496723539071304847049701615685400095376589053852858997175740998543854263025627770781827996790225071818942919146385213152340889538455219456040877110170034303366057844967396548394983592825526957866529310234053994179544253996595847781551816186063295150377101207103795815262830584453573825862653125885882085802406283556545264306678231636269263395374711888265449453971443066494346739795353000046179670431520447247611851021629195761543036199653346874300151151701465759918122266444200605272817895066842036594553091884128791475216827062453443885401415843824100718743688286537556505678633063733864071706972000371206682329412316945451836505429031322145436329687188197645802301215817031489193392009129924867678501866030805304284842156534707223384909724753146939282098200689576590379998607787515487523643022874336107441148234283667201364374511413080423415860896203000333843170362298776207709984120962209084273676309826537235736846254362023868320036536573880584001859313807613759704531457729250021037378685749351350417239314547062161492902482225599733286664746004055139795426088617735694533596512770739220822687800994318933136981844554095764018298731452383652427564775081097989573447683277342370833548007638619057390290426299424075307687160275549215304174064242399094392606148863136554803640035745062905779685014348757178291856889092011957202589061788115891331676031267894873710399132672891867609181388613816178404658505240964544466366513986731921897332140005130795509429472711179074770888349751713683560152087687152659409840404836957526141697534674069050631344504766859697946710177486504832908186977675545703533473800577722949315289704991774142579343002031184030162520736300658884895045518847131602785048541760268779146442549960539674010703436283547163542008436581094439697350071029886841049866013194536758791049664892015785648195940445696902488062765121514519588490985270180867493928896828642785400311397034437695492286845327312992574189549809688552884095184365371309255027682610073334228833758782179694243718792132473725091357069729443074050332775502794948763815525997860130477220062476068174157809662244221557161312268326521299521377118229656779664154170517545644270937786054095032738945420463478387907802229445531431734428147666334334182952962918228282358101435098137018967394395360934362495083529637792413862893507038553650080913898613622806456712275189493425573642246539376934587947882237030457878675747672697917634182896209224284813877828321244672919471528271759965114559481035717243327614634468853767953676654113470568589675669539705272976963847582342829790707127820585664571278266060086790061569817912411656110376227011552223939511585046624124145964397313378768870607282238819348726751112922714890599739718569529721518883394444131440877090624482628449761804976082732019393682611071181526797610135786069597270704391930171894055353387226282654210983792369466168200054921734029222690548275184486481037763273627374672371322064326888095806077740089873884402506752196835124258508596952652174222220812077424146920904926869808157436788686980451268002816226752890631460819261975204125160062144985375100121961867062727931388954298870415453939634089614295464295024882063526155075127460115362143650613826915974535392673970251880920687722341652433125367567254562784053156821330856220352654220190260463576626761698701642880436007585091089761269043912319430588284146930252573790147586372323813324345814888332184140866271100064664236821241178956299040550618227095478269086040756198729574672611581117082547817140881141319467972323056893729285115151206915104736315970783042151630945962820334852102846076616766098874127707701531915122456569485843168151016098633680325125293800962069098505442602869089914103028127311220844698255770606639322446805595241869928076543335338792926104172845982140701249840076496713013099297751972313962616499253170262214506569092214597656646526875912052127562592080284767513787147884730593898259988164545399735872683486604263603876719520190571898607065344196852398978352462534217318563048799956628113111693513588015910643900089859006630140122301639705833417119022143007509001572502182651066468274453651028910565626611658965513151549532910951048012745209321762843090272159237298449205618100610508417890557550932112350695349194278183607466487449119685701714060610395386653192897631629036378799222565545774977940661940112811390975725694350077145922890310835328370560448463420391377247422544003058153119181102189750810315216973698674262605661760968058427519644070974960751711429366907524922059971256504600957175898517035199450123385957943963155321281254222079864852952664376368610672705977897257908361243090403060687734568976656512210856332893219474899357525200914764697608918204440233277472317426763864342764506553278572336310822275882356453926864486193038217588387382341045924001768447955940631261382714863964349292564918601530479598285001845571116287763210184139676160421334056114917620704868085211826235763058472297934750411543391979660035054689153122917833316169585435283686449447977132182003386771191808742045798343578851432156639329068230008286820868054957631629998673953463092011844403467510594230658552885307219880627861999655981023127237769438022757888860130081156351731838083623351255850226641168205901749479549381395584713677553614271344870106985764320487642500861586405385359647315671065048583715196382065777261259511038992681215463542607773140974417632301925772107971237422505109245349786609755178808885970658927611973294383034947513378799455044937847285096251628464573691634650260452456175100880522515698383140527574461002904940592361507874324868371657583889130760709355585186225936243256667317325641755727014630373178133266044872283054429861102126375674747277203780096694922693229400347731166070500508442018228128046212866080205362544686433954531768191296874692020005666490245979677236604809802885748550009600650496944144252665483989463623638153746494711423432632343410215159466628155790357002284263446612580440762876875192499162119781418356078945652917601434195674740018617065141642883157154727472831651944541257033676055116625943567941153740708450892109042783269403738293513561886893712879863558658400910855522606376898456203121449297268073793431316181153862154779191741301869102980812448082857421809846411604769327004084000749920763378558410354375072374728683015360444208132585971687081805569193725103622025074156471278960982301410833951709877585176044523210045687926968564195233984428695049892015957793573017187651057266736796358958151512656317796757112106837348853435991360341940024023763495445623953454552203846682376631124958413619525105499014752901953159817862539871027597876275511078790754873923702692483978349749620033595866470863850676092576753455268196894182564544897984825609864971037706127490947227321999952150738880102009274164571894638054514051574311745164741293133080331543505114240308033497670275926966601800347433615026846748805500373601012512513673300951445698245960193845851515481772284120936719200313014330897405661733466741087894504927021630690714171487393336279138752893149612179077081423692634943608708290894585260387525710804809842598348360368161342884452576582769784686100669608171336947820830442757306296172509571277369584933737656110869418116196002319306498132335869999923511444435159593607376935349876702141407728997604916271344204500697488992915704300145343717271411706813190994702983145717456340173295544607393998821219666250038063333764348785293061554112170873393114844493934633425168989502780166580489972991544261747051770525962132859427812475205118549449200153188947843295382733923951902477245671925076052803699561061395551325455483029535255679300266386784004144725216341567241906260957123274253359177340893876865088995069745472424150558031369397873381745221390552085612102203142286194769347681868767546220678249990717531839124046315238624219315467860658849049258735517877047252354857395270326763999406843116163126600829670090764394275661707672862450857110760716571997634746127759748804413694879958170842213605954459194763699336282723432650460172099070755652370809107953500824703946602418833353669329467980769368950899452029193035659489632892544214049217729375276650233753282669473802687240685920781453905060474277916529326486583011968568103751212839902681686716954663995553301317633520404398946254893200997597586284525556703948012404771853816467089333247747424583527052019025759248907146432059238110711040850084024411401874265209577458337548049841868341960980936783386120832986967769542708475269599433945127410026230277047828219333768321023759695583659028642317117933825007093833213410409906375226720513301909854693286602140939410492482878045519503347825911901575173947195958392420643314846180940077350063742057807309990447327595255693533399951827710722979359055419601445796488285425546757943075895065571698028134897628973160233348566817143019332166276657756385856075085924536394665726618222127544265373820326604701406750100764953447232301871965564846300356654674539705882825127469713119114835570632469348785848815304049387163312794519755207464056925893207751766899447194440629032102513526962576555064242888615228251239631092174903508885047936766945486942854949951100258265136872355468759693589274767815741678933664115819633462339776165693943999416499543763762748424727281513425619446207638017604106690423496770217157028937436621051406934608659349683594311609108225821342822370616195109032367141991943727311550482525066171622182603410422462626987203440598464129319722756817414710348498892703923314689439079212040545599402994153227642619188981635436578095620503369385445991291452831227210158488826140373620861406837452444832771036890431945874454129675291520033887804479325025503025405797217911414244364864691213905708711471044810236192808663611027951956091811420011562548506939855504844139530304543342552380202413732291780705734345235012807946239794506805917602560691571073406474839443876555960064965168725468081188536290521890578151339277154930964398958447200273707364188289955932868346680890428528841916117139869185150244653616665291852387321376023689367648915188394779047537612749652169908895566800971843824797723317151987285902925198168102124653509993269473306383403704053590857162002024661406709699898855448772273323530061706380556349673693863522468858398593217418847236589561877552202256347310482329319771083558777986551500039703941250704765070429217353074978996601966470723254170839945652165171675370048647012454844296466945291097377869660576545041725627841843963411963962565497037691007850873792898335748169270424959834328526397561536430194836885515357004846715999966496797229385518507002750233441850644072416756148334548135431390638659747325002949585308374022099692352053568449891552106357104374410387707313096788363931807334631663583715370144992995211938804114238998896532381727290191002747091938665747268521453007897305622445018601836411173167479924253299477153276116186152391862352958593626816900142454736114895548208197906325620482023971370935387613756058260799520213556608086158477134360251506679205906749489135179666460794813311752746177580637112301623346131427733091400849219890863798650603924244950384394610519812723210799935364274663623341864118173207462880558372411214174020383983027062690472191491641982997129919332156475084751605014099430733989605070789821552772705362525744802023071793994907657193939972034571327069613019821437376920101967161692800956354551268299816470916137862266722384083363289328914123857832141511020462955088614139579484645433817663529442897707543056909304886211237125415570994807464520768398113552380803917620247870102324159120832513332675107794036504314653515841583090847859744210964871260443800867605974644444789573951383812413154160991536904261485008168931318537573929773881734115345746645256788006437792736960573273247263333494034288487940465452799021643848114166975568841905193396480695798944612211958356486059284382695936618630967562661792062398770510436538708074218361172714418501514039516514662923614896518374001042746676228453580424571638999154393941291833091861343602337826449056824728959578735640150284795406598716376572084669277926415056431994896129658034351311123623240110553318416047419688264764043975941839958578584743796901768771108181410384190050542601784006062919425436084710314678238208551008235323570418956454563356927864854765023556847763476789997645486910091764246994098279888086432452287436320441413895621150608441412121142189575169450854244690546649189741979172628429868151422789759530326632679799888984570067855605648563528158085860969646642302109537511010801955490670695034187321782887688164237026486104122400378271092721469359470245159346901731374954318136653718239721017242961379011545687977733161997730334977691227191961652624201193160955875274048153534197540867854556008723598172975761636732307962560291884681212267532735874150226293715788317589786286021725684510441923157619514578043201135641881414191221982069220350604814886188829650115969977863549471240017396402348190712543883503860875850573091797040583604205645508907845333953814489538423630592859645205612641511414363690529814055461869071840230399635235353529429923119241890781079234360971143092591204600956707771254888803337331751286336573962120524354442747032494478123395615813198005539914248033620423334379204225599991494102146838305431372692554478713276702136116393587467061170771330137392974960254566969030683808224366409004509049285785064680603266342940001447019095585986170199406880656763395673161531988233573157417094523219316683587603212039659513139403377995427146409125426466959522593313173945425883023506471838061031826917835086815829139686271600914712168789220132145192050784258584653961133678307260909717717184266171552203872195781298089590078049483400691951633542384597883076235414461701981610611202518184534677312423185104321956578823221307324404213078551336062882911239031480458737650376891170080486459281322509581254029485613655940443652043152022774372968713787677526581424494775656658825373562076528769598466823096684725903708111632503481959522253139078570398151595452604439064559223855866742821464357226545628121907512372647188965895612574073372799354435084742699748259176519992975242947730923864797326190654431758543106495793593674661740775974579077426698618588742823109442261654583877168975160241206081818255153037119331968619849113753740488257647532459174894027945303053521108582321275142780339463530064679301296360914072602100979147456115057228905521594104427184444795230863726550041217376720296186979029535403009029247213198135636970543076641408850223311855116016636398328258421954439972326314278590522182221585308891287375531764482778986535027705665641573183311725212772689896994819112860808336726278170909305047518305565996082664385433654987150493965616038582799853483472059607103514240742629649629771938924683909922518289940279918897549764683731979339439981228218969888396096270238257384982267611254022484088311870951956538405373500121972628303296559762548418354935833904643394744993986621914935928758164713887760988586099851479032060356450471811642783984573797067375639184983037438921247784900777847167265692104116220698078542634195718132530228645470609290183149260787212551264378187632212516396053601959321065247866432299051071130806377948163895325474971573362638801442401949573321020396562716070759729359486882914345615609481751806972578614829774971079609285495290577408130470272391650391838761728796962238497915988337544599888127618555869422453062554746777180701775434465852465935904114988074478598487990816506384026005215766559283111165150606529986052810865918580038389560087165672975723011030933547886855806078887182324318984454107278399501901714237069758254007761078448352198783506834630155885324238560696858810193499685418252320611278402122601204947358119903077597734986446164514349246595350514636562706636284795683422976130879464359338534196011763998946929012908041667825834249963656327977460364628516786028480536576973016008947530683297273602272531067539582932494588310759105500375595085319613203831135175768754448098391766626351860768135315062707749898742688769246790540315818082537879306699933861323152822010303525053614954519818708152862778885272104413338318970013683925812960904272677937071560226270401272186149408070590457209848398237376083087269291175574459754899410680992924011499310656465251239797278690042824890561535056095390228086596969617525811108639618716573157818861339970975691662938462287586449471349088648556299549773334992134511075280633544773130932934095976858144839495995081616793428961218413183951212266816803601709481877114193626059085713158429891946409678113727911508096209018430647709461494079784183145434350708408401749855764801777822952769731207734690350187553481414741130586596487189338698764313932978708052736645514793400497774654984222912569851825985041615270791891729562264227010867060956109656287078054977151092465846575068061013135571801052260770218028786102777527955954975893451092235768959579462195512389561902119421236486292084757605672687779974267157328379224712025463390929421515845584391023339111642800190228391469022255197953111802834293390054992411098201499919233342926435514212549082272907099592726673942950615360045810188883962900847459041989408145095667446794433042251473808599500997257913655704621922418068368558290287666953444293953961829255651251052291041491707322675372818527865209387871211994851075470110464551711950220983158015828969523451004531028562833951580093575201739278842451850150658270228439563985036399921565281862156934772114085586632785362594887846513763416727772583897983360987338322790496605188792833639510024552067115235364811429901408326228257045925377104533827442593511064014901516247855804050817153549522348690464636928928255652650375072233930813332407065433720582468505622387155887406608320008940492192009328961041737327680763859546451791963140769431525921716600480903442045041078266180785689445790794875181610077545649385982011465445426198139568546244143479754499753992582500133948615935186206046029617374860605185942539774742517758852068277310862460495831281872701752182120620908000153367887390275220877129694542777984804524927397490504770600187925547690258581275929993256813435439384771614049301890836897417389164366617173848860180384261177341902273088231043620592401752255308213832961038414079907122388335283992516876097606939102269691184979277823941739469272305029071235764236992721464906965440914363268290097392664406699509454069738455046288084728933375106827603598109368537781960817448632693301156697827967723289516273012191490507046103459742484613342464890930715979845584090030298732911154796099912814186588382338951284633046246139686022063583384350242091747611825060494718162155092121044757874151913079320266018486385703546046940281040651869104100587862619005676300418130529608315656708120022312117662024763256842989178019209289688939461790617278528022838117279729199017098074724854664813251289929870003703070133712625768586827477689209292166716130712336878154166102846595730893642277499889381619537252035555047796522203806109531267959770155462475378524307970719048515520976112911455561356987947603580022124813864848881426830818063797167478919307403647531450719693137887424024479336596117171852742832310602326713631655433355790831755874855355380666509207215924428192665503906317402333887686243686383004335238160915230837051028329308536951520920814789396660570339956558967305606818965276833445706522598373763855771760412951093617638106155343331374360154813970509768092537675640762163817470406480500373972393917650849443129924204282899854849925571740998668849838100644397927510691124906050956190888171942646003047065650388516018955393470125322371674751318889103093337364707112327314668605591015766581327041547722117112599945837647247044052645474699540564401340082420802633812677798250716448916905876947592084809088092167996474210687037391812429835766426905668615700366301089603885837561764516608109549592123756101272878652116790839640512777491796604641554461678559790029936826409625323546215487870336989324441199741250424316757440708966552412055848352849442458839419184732581395898893451560037027903384692970620927002390050685496682780842518816617356367373175723696345912314323571682682120072790659887802948493633682185912176052461488918434949541524614346601489284634541198036466327482873140629902987697027534138236258067050635340495623348704728749325571820477845994966433018616571917229764386882772394180335561084484373779457868506209331429793978184401591408893115043043160779705653179182566416055384811565995493794317209069907451952134084825702112193955871481281643172949075250566575591437828556379034915523053547219430347473604342121500749873018663426188386493334824604464608759672443570843404956676224986018021332303191598311971714802142580156461538399760629437011683087521027485620490243635404822267892277342663562149208565316160100261241932768183374774467423671701766235422596587042223149916303927756146197807285747400753976749511800296482384154385491760841883054697440952692472136817594262159765018732689925005588432985061914087933469256916511824984135821257465777403053008351541771149672358932676787210066753106832899653550945487607356141134063892900683344517997895449469786217989371279706901613130066361113533581168432693902361525374895971437130590765361107164467215841376931454582599660535196474575086056098591658213086544685095663931559291805588823612257418994180243963147874919610684305234983240529081943271884519877830333313779187773613215602076657135060233545660049524010834815838978264831695804264582802572168690802342865303688794954203656940028899952641314334792077976001500292605862530882092816087335298105201362135066103724713685278558976789273084960782221839620053757254879513784884686436996018586379480891643173439140259633459966782024207165072096829921563973200978820872498463885860354556683547451688024410128646503956500556422132427865534183673581669907347661928542077563534310237642133375958400982890360578732489554380227125205992753172858645796267573225409678249799661903570287845710864689630376828426526383273589914883996343186040477760709106397752719929193020965869935890039127179913402924356514718240230470623790617459149219802507585478772261267417202056858295951394945705040202196978998824997052208824783107656067982436429716084485737413964166157850902935049998137064057157244018660184968524341439535732591513716697024548250460247210563652300202465420691907838224394718697263394605976261186157796102085221555848766676436656696217523761800282818221170316961554639371935846134860721589800602096981239869871383803510136503852880278395517937774630640718419661370116213431646375313645523053231555168341859885811430732794179324897997448941876192960251819298622851636143832711998474588314002496233261417062319305913064394347645593324624953871201708259652797398506709823648323347698703075492195593750340698592137516101095900123039072463028671600508161467632663897353563067316832238851313491613908265857652824035409900070628769224280728424057364732903712705502720273496213512004414410505073708763255853079825682707162459029810334323532138247422168090892356316469902830064677817651434455503046161542997398375493372337879157305616433416682094959285652696078337149270226947178364091270820187312993914675516778165580395921551473421697913304846962020357879388519406877259277139608296462491757496440508374709332367945744079402790558746064806662419271044351991204146434367162552558128999676408853490655399004425444401000413602766928580905990291076982487917333838632370138169201678204783978379651498024083565579700281777489382077707973752753938523481571194061866504414220857662109636845546298291265069434388885968637058915247413024673963079889778132434068085125390197400484280720141168437456761069654849154362076390057451444386506703901528349914962537176999151456273388468916314925122609021561029959053519208761910049651623660546168383857745631406741059253093197727816434735431157892125438600352255616499147804306926991897669421260154312389644191526481592094157812096831149542167801564281698688844797540221004718895556434236771932140591342420597181486357120803789358714102788843535896514845653374578800800557191467022224798746048325288238278322676203789608292130446104450455669643258654301468958210066667025385961611389204900585492286423967141657933346727369950415437171936461264698609968701077709583971099283851619848618281849445682313828702531066940764191429647460447142045968928183624901661711546054450151989069589709805576832375207471565020256686299670289703159461246834362978024824758506288108258417620322605305158433954372243477332238450396444534483734356392596573981653895343672281133857312357405255153593226360065109749045244031355679038175502593123477981067146931747122514963704250083129181825867972324127837578211679599893938023424212480519100544529302873660599277168740284572355609842951839393723620582435987367116302177657803322829783886746117749887042168931775243289419237927921786059492744919438341288627447774023270391690021943912100413652602806242600182565261161675135859568996859423603417125209966376235940291612400234487740402880625654831255585575346687894621507114294915423684211724589894004272777630099976671565833381340709669477122761775732326717075899134064947733489689258406104347499933496471648151466072319540453885332874356314788005653877955572104119752073791354130119114522345830736055381724726281951061664250382692964698420353297596025453235412437467243881386763577263726919227714748248949029663707768092842068099076961577862855781523054439654593202985039433368011511090277555478505161798460636864804019497852276683269749303940450875132298496934384665810354166030231824868626740572449511688850651358405980804510067798402173580254696059510261321352635579156427798706026589494063705747053435367086629811339048953140642255034488966617167932978049026590292142017922841294829789303406746293790934145049774180756464720810067680164518769386462701062005958644205895394980234734925084847341188394461544821474950346093877647466202216054855606245914715096313044762857558863499177209682268586598690471449924223239372585040423848168637966821047219086499648008189064710994830695336505362185777084696199173222670772428765899433378427922720180342664116324555615187334063985703541045143993239593136869207170637292141418939877996125626166110627797731024557653038508680256663261936252747974874090582006056876208740515758935702731702809666611076280379235955221009812140403078858564082581179127641687737408131841730213050931631747211007092005251216672255277161998452655654173625871079098345930972855435915384309759124056543017987657570320048816124347769606804987087111368692507506888289611349293680809711666360652608230045521142953087787138190001544386707126539021004984749261286202603239576367257748477358343752761912431153830410908566131575418771825051485861708798108144816474560433058754267847264275959799303855877415151840959358809096676137131021552605121733916448015509456604579373490721766049855363137752074435843335488149664499320801644261897909983371011122257823335891594533577925554190884246744802093676156641392736485153715304876685013326708123833124783455211563391459699271629653421592716896697385900293547795605716975284382846272509768970170647592349086544962520218066037637082730525414970888989061531602382226911585041481340323400985685622511745349796942791949102907578374907703904540350019519857125666263131932583038843718248571970525983820775993272716165904451960068870312491766120066442735254488075296582001954031135327656250501688176955241844556812565319940609835892267080839986357710795985556803859827024806127654370412540488575576999176572302630808133283060214224350285660612525807848220833092353677174139687302875650924073549630338269649959281211642405923619810050869579282754535926758033770201804328668725235906829881929830506795274640576185755445237753889167994926085862497211668693971183535986179972993838080094452146569541877153452843791590388463521278885700664887083131801052672100455450068564870214846229604926126768981784500793433092368179711445150826169773596790627950143719897124373249809849014515885187815462593547682153620294333550923160627561249017947586381513102260347188296575171811889857004577521006482701231722985305758666651656473073983131576539842050035174039550653210692637696023450676541545975930149785721706135054946797032767149472635837555711376417326462683460657120650589456927009015515601844340954461127305745213178025990850319984137702170769609824314760299427109828669236475861354966007978603072857714313316455473793399969275652274455898927684811653546268852412177042177063819512187035645968026977462693351748842769049798419226043634264120262855947514219388885405861450479840448762965951499562342360896883102076883581755147835642620237240077306033646221932702556857806577813823202207969528656793166163453760494360224488545132759375245931664206878819829269066094496671274625509996517991532386329906563280727662693197006807351434034150138724888728376604162423706717977069668722239312371325348478719711317935087096185922798349471881148098788262087515281842955916012183516407089725533919474698595210451218469303853682058476062153490308104361133284860381050014539070471054098976391403864752639388895577684887436817752699146255006031798395243693833951947545613663900197935257584781568625755350242127363569638070648245920009088265618794988805867686958283453792779136063811118925065393210908824149395407448962174955864176074894173691258704645070006281412262288760758155622054613118242346670975885826877034992217237385475054438143389160478364355161875744690494575139105800320880175519906316381470509290336591866657925600088003613606636380102235838747590020113440883874061604484607556376400949527436578143778166291955957145088392986782691593541149855099564942035976367371423433183503653329007283261406052328494030754695130031154694459463643607023431026499121020929637727743635523010099855296683968476180941333246212356488952337126825412441610848711755509925766992974506140083321726553144791811900034919559547780134916918179967828016722102843724322814711626815087776064462988114030536527497118706866838890081378235777295547356426384729573365198166526792723514678789212972184025196686195795433991595254997590463964570043979640860035545977814380502323752114771552213026928920892286885227699870141292605412612727623980333796259671063061805056116007369720119458471180517366913038098953781517548205138901743466753057353001078790247775255178916728327914271260762788156329707654304820185415603513167360402142715266767892380150769133787957300555794322622421597189987278530990667550084644619465144044513298614903273664147416032879751409885813457037858094500020275159056322829714041840533324429853141576648504832041002565113695701080223294097098764804005857362399147273846553692590749070036710978717174497089615343656956415970196574724966091249903888628938783164601983565962318447650297373653148199020845388896271505070006933079116772116381428968313079728096086877976987073745579937986440725919646703042954815228641889194963991697960409069757060870929292246398245289793006089159521528031648329256330844538512657935918034131112047284513558788793265616278473228670694842583224588211309707233390450279818437627533172016578116368490914750218366027998408398813561189304147513014082012618313838190288568506647544061359648733459360544888367617743054314090744464179629918580387074555711023211493776770963592676348235138130795473214950536541328034899244896057675131709481586809056724610359570425436970418795098682123518620396872271531911269933436009450830631849354567098517727794807432057736393288930345089768113625443774027872969213894354678039925507089787476665923446724324504943809717964079842675547404445194612477090454283210324731025724167270945084010962737964902699285461501937346928588641000763847041154414422825881025193882424554478920751563861547137961019289212861793527462610272665345215209019875451021485971936617141809622211375650683244504597012415758967820318030173922954363412121320775940038054505369892357844307417032505208332446167227336291309608097717875009985444036877458353761229947693586987054871443595391506609639795990562056803104322267808188205872108321219559497703984852450706385057288900703501698859321463777142046727781585794995972687273902197434020625577658192180840945528233558063940829209668745888673451312950095781674174484123298626633491976598157175917774128055002031548354132497270515717278588090328562922094248734321249982901267111304443158753632147869688326836453217314451054715891775919986144933902794004655744023658446408091682429310849337808487930571151101252196381988159406499555147886070470069104676903948295122462163170225474373828339586221790056913753817383951448674667983312675701142565142953644457117807368683746803155038161000016122612914907002599253947553819274967356755115665258238434336295003575607129974570322456538294334727150515204281397351323430778031204786252169494263866129243121628590893801585075631318602940299745947976847595614693950470654585180862063049530547246695842434666547021209634005415632903575336500064814062439455207500582303158697914937553502007925846043712709150279774908841151252619923464775968886243396244436968474791133558406840916554517385422419248757786038536550421224463111816459264656917013497749162136395622371288228399591373116727195797465180776438692068004991746211738944199543124537873645675460991040500366281903851638356490452719228435333852333542252029561947713278989157679682009147994417696339032204445274248685942533595856185835641149492996620010684443130849547855797260379607260310341875157102274304770116502085483652570417408283234458770758562583096085203347932606415395724413300452010389067558646793692590248445420766316284198458624059102447829008975594688260206113198169023532456255998933798296875465160719005285610160315669666784525755763650562537159586386611261437462096399826251165199789675919462282837377979240783555115553318709189420886850960111730318198419058928523269688416000155888922352053775175536846727213258741068570646366180081241847377358565148743782950475676477565918842262702126613146736840280153199694644426892788848667387085906566825992420030348155993349748878203137681526711756653633765598816958669271458914342885490209310471134113399284034765108007209155526315951794785481920285311466643160424621694099623639575039303915366684739117972432211363443793696591504857647674642149436879955318429845858788133941622868353991649859833524384345763986844076829913516195364479410563111107959865159029823234262970364250455854535746530970251472220886861980285310899969945291928200796289962299381462719432800460154775232207894407983901749997020951072357412882754248814623507101264888495765594763255954058717040732846853434843781656323124079574685636026266982679072213742687658710627711012682476801287280248923939538594812349986964892751567568469580618336732286581646637071409198506356015562683554738941129808080115255232328112128125026159646646297724840272211188052404847956977740552034573421735949557710823782079395519334450890888006960801251569064865324713239455016955595889504613824925629512965649336296723868062913570536721308491555925080637844001530144581390710315220695556143578926371758229284780074952128156386437815521793690777251945096480387861737516859962436632132529858599236614906739617509165037165366562557241153437736018873335527548802280812609908132601694316546749813602553310375224254670756911160325269666564239411592325457021169633746866665266126389912474542660015026863412956887221795899954821889180014651574052593910678642666756344863446814373493933144301555465804325123471906633784537124649798227153522384402658343606904862603299695345677853749089018502547989107114625262745466046458010134155116284696280828123855704864329646499021835133313760848026353422550492286147798290394858441881663397445355328263708004127576299429750017002585416928769188474642101685747629694246039568583201492456149063440018268110539573038953631238998707147983957411599692427107247936421784835208884928621443133468729100819362971120449637321893060016879980691654735122687113714740052986475432595497161650881987043245117451424634301468925559431037226286354723148002727883097811641933343328436644176333623660984492280685537423475378759646614073104331754322154157745682294991615819614719121129742361290528635270147517651549677872760923414361917627715320758596227787444308421140870109437892603987900825125603889158308222965171460473824329525979710323836367454426048820244173875690329602510629351797205873948441502902225378689467063173242680996397700443775151001142122688528229990313245738120677737439122451081584147993614065615045318930119052601785780434854170366710799068869226112903549775051431917902728379567048973488482309399100402641885872668929345568881551134023147532482368793951768496821801851074506196649980444273928197717932045161363552549760043744869733826955842553065341934821761078210175102130581767667954015320312246601053613845694831157705547872089229279176614628489657236090620303326812985311827577760982065123179129257664444337735211672140246203159475015969302795760354725525101707131906652193516822172265822394169813520446635287670828179390071633597997028698830190797415026474201231306730302941806629533748342846768425103668460384007491487190083014961047233748728622151180614456845433530954464731856584472996342737155189524658964871475176801922228791238799540021941633330988276164398167667717513153457841416407606975505318482844261849262715543885229698077517311410483188079162155208164325559464230811561969241781960142725012654793851658678151875844386890192346622884176523035641756688483217999941132084636185042482516626541100764676208742764690549032594114189851769269544812142188702300520481368594209606619825069002251742030398031071564331673087761212879574896458111453382931943327668636716428182232006149677688584835513805007403088401487324382288400673823439220773612280543894919312517296664094296688394292830085268942788569883424382772163456890905593660449443164455506764074598927890954775727668515738054050692818387538544063318112028028450983761689202159891840541391914282231254667658976643245357887285959206032584267208288998024841138967032454549949103433671735628459239494117814769620793842124345361759440992380460297753175636266013170040544454435019062491781480513866985592779871749700613817272548584644023795473649175384450533418417055401072297955257899999663530258898854213894769010591766379648558468037572735539062789937153618276500786529469207690195444635050520715889730352534543410912278047374325488803169064938246950494016488290541838142147575382140835755184621792837151858270777799284341046627652607538900770319932836712938699307559630586511836115526724685587895079609990830136832603429798786386124862724606455023316697376157333798606859363532834514378650593043824713409206578419907169366878475349027380200106093915439413988528459409984848552685211430528883358396581922358562060176370442099695078938241789125130903945645259469533497145804462860925322987163425337427763554675427584777247427673745807669350032998500018745535980924644778752676058404218892345103830262627677323287650148582900567825162559822078017466437571850925781099416718183521938865853695331529395618352347393349083631941752982604465061832154050695634768190936641950727117472501551220148458744601677243897579496605514532718102339443799359666849648030817097684783333307710646842388731696767151727612229228721778446995662703994270600765666863838709948823039302551367928603908754549095038556736431715689433534928570837855744834311517414587912339713764824006724042054642496961284510225852448597675228861144999401342363733405557796344212551032673519161866712946291129176261541152362399363697179843996175084788816124737929404679781861733202140308186292613587938276467530785283933442298425493267934881591981257708956107034546309093297325026422436550390281871023160040250395354313149537030095940047995149825389390113849708502754939432765999383717116641363057902585633190271550594871581030098466510175688571268130614780027500005321894907130763305230246347659302740358393246639035633021965479829012078971182157920492271182256911339763426368287403869458137683060300313812152885395773680182880740490047303756743672622633278769623245385817293435681080410942099474867430194950032678431943378238291953893096481711346438385856664296871343635235787692441043690124752010215750711349596872065110069016985413858538023990088323156022485123359800218071234384092651000593856114193770676247554746275675072172966278995713395097731024580141023516150227110558740278936083358800730514039566047148122725024111664198390032780417075915320697068408089791897966242290175033565217611398442757803606854803091449305782504637803790653890897280770602510716534525653416954835625624466174375382301889999737332079454442725837199353580253582876257027002801684356930723144183577390582711535022673463013854993055546380887770547656291500611933073688054301194838782788290695397581402267863117448511721470712013528735572420098762356585566530300270671636018408228445685956159144694028820787852687492464119792522056360502972346901808759144551804746203419030427825223779808950673634634014783057560394693315504267341564916205941344683232365439423475952430379493641517517930294522027073806287805810563278017807392899293843074978532090566127914130473409340373277326003219943222487034442325219591709992476691702238935611586869527388957895898064815886679085051002596481285317987467316763389483544823715736582323462588910194944284751823297892271580849766271781434040968219836219565439829423507031380248952076294513948793070590359078300947369136211582624128181137121499386459983533461343714817795084680238013007306637029809627830004604303448561905228358233922498313031952044254373278198478877027549510701061123607810485606044843747982935836956392112056949455504352844415401289021982356171585711907146855637246770248806605838838940436074940116130871208789074373781661236935741020094874908827769935583264033630823463503063156045957838840376339074719599290941925020247493481099497074792038306902060831569096014432113947229101327902188182849767673351789262027009773557503438033511306153349063747309866595609649666416999428166169811952898243915158634001423423248009216395305228718957130445130525387026742760367081409451258044254107840068320472291021448256891106692920067270289122370913225046246409881845671772949830776907799793160762155998672648315128220525433552664803424412318834516790171319805759634725159785355330256619802272865247926209090659553381078957653857116052977315367640497348460426401947699085226408560628464067084726675352607489229729276335944915045800429882253195309902265562751775276446090232056929597084132679741255134286318510961637413203894234910156795473726649556938706180763449548714283240149119981558045918300527721838178977088943418923296975509882945004020090732932270413855454126672746845467505582702640603479027086954021878983921240063775855607632694021603001636694460428755521907956592169195793388684868287075494438951662233158120123312957609223184369589247446221642704520744285302678452468803075510422106165992863182056671980394370790934837917261403842165180307056779782576939188691490578368614999399922908032750658537160787053581120922018579278794484714625346296005350876151588380018709139399071470966181680820360301497941753902303208029600009780980650534592785253851287989220020802093122495460267468326764747614809657769454945368807254441981539167648176461394359052426699077813807579749028629646928020358161673154888254036812276232479600272124433306805913894408672431662297672614701640717728963371974932863275754331147272968846600804162175590427485565597475911394504376076640676423774044711483323264053701054622226653312161648801476742675377094678967045789642572536347271277874220764103220460694705433804460824476294121773773427915542922359968074237574982685294396069183663979461689057048426925120142472939029143781656829857914360554102720955739175351853737621205379047777306020339540198759471292849372892051942924586851228222179941660440046682314955485808078625332757028004501238802038314427073748142979102685160133036721576539271174275006040474266475561718321803209506605464741833424549771648552381120641734595547708217810457572554100565569759810744414107455213775676215814209979249030906979085762680469638178415812387689963352908533604015768442741560653315299047248159075883690460263859591103618241045425934473306106951824260630551697731610525663409906242051296887174055044261813218804787636914311633831774678450923506625905072285595561020239497513735974461586517501390494095440733575498800837515476148401720186481710381148107142706451191409128395300356139130151614367290437375607266667473392931585268208950336166413238334267604459971009342142873326677575046973484571106990766134971975372053054061399912746221948321750195076757778720375609417499595630172724907297813795271691466359999448598632133364321606166203352758226472982225681434569756555742591276041972939644983216044443112025551431201162231269277610572279027955717964418645447185777803737148540909294622374498089224233624551639583750600169610642977877131142510268463098027633955049568038107213637382399277963799400596836297065316546996700827832736564516560944219170898140727454879770213695409605750371405868890085826066431892360340493977216583881101350373635083508633151522680051120292486749282930600746891794690352839099635607873345041416964606431042804056743213719470584966629004535300964123928573290669792735773180142333013926095874407360440251645526112533248457492243111179577730815045735213271126207803710180612697991204033639451827880463018423533644090682172687635436696630624310448648202912078016713540799069049715692903409394402497854442124986919058195526888435840740572613594332002346598991601952542576182093953993223391729350555901156534411935132212613221404191762840047602851842734210037586510363461625141139747864146776030579197356990333912550296441623177128126756586428944489718091653463586278486795583035339244520955422809820686014638417776454249103668516826909091242423461483711823071807772555554094137439649935499926608694007236457241275524630139685421899000896393224038406321676974651889098167244218047062385022245089370393453387895372434563998179424062985310809276060438980426424737679007411729119411528497257609778899677197859970637082850226922884371685325464151262303776654643134734462988258086025424809055207732815050119893605967869440388212150169628151473877510803748505740645271676559201064982112103988583233840257929055900631601305635210506672180771284187536328709316612645839407125080941553677357449693721738579099739393083352175296507251875918204380786866270819149715871028321591167447733304156354171026132343897667761012444321513209408881618375986548054945784926575764513753761584428629415787364714948528828357021687183976639793875711805997698238749134792874883443061698006691822586699248127545112462466751384498063598844368327340070318603378386341836142359172522303477887836212582372677282412356565702039671142226630632233040531013527121872080337896511273468290440275003136231770007712045276577098417743342379172144390573430710765810443665621950020157406579502785496663604708462306859428068049698485262020210140740411426767712336369735460136932426764223786637211362636086881772849309191603340246374375207955441937068656921296483881850146682431129124595753703226117816475690766747738749379016636307551261777806631305705161755664773402039863576606363967117957809693982615939895276290040642624537977142195097662815619840593569168960687573262168310505410940348678432013037918204711814781805237805151418552517097089552050407347605940081024860002105377183196597332362908406246015982935494768674953987739122088226585773939039079228880338220464637704939586326786056920301930600960795338323080048742678692150883192057502841720149952769994220411513675772701037780078264840868913666543163760491835568187845666680402885160581727203619249781831185730833118178502713101951539117170234137265460267205532433453697816831262748650047190298788047750474701756153406614477963485153716819285937469177397579896715438893394567287271826865996847843892957735547388956214860997712232495421866504770945196312053832924082105606637105779628622842657763406580459075338601158375311424653987467166932034100167557824885716717310398601790318236980926667980479933620941243096537048647142038771575105226990518686330008488316489729153657782389004727864583306898433561917952397938117525929906236613158708176680332990621218798106766646523175866733895651531090337286647659243276649366975995208607358451250111064602516060371646790299869916558882200864213188793790930947896225858984819173396959621217103379742785196181458929109764251626671006306940617075818699038698268503828278029056519535709399954317365853904143541349710230867117944994640806701995042876688099245450811739168334655044287202392615488615487798830731100316119608766978288535159357205475624468508259091669179084064152214076568452359847275867021420206515960343096162604035206340756263719955260639603559859863798148879267779406312586262771216655978194382271676704305971569417511303743475809958332417062072928323073799507677962793961659090882038123051256746669600583976790618362988573638712778958052031064441558550413667680322665176529227779647761818330707409319275029510600170937981875307454467312213575746012019780749068804504060337500856932266612192840269956653739981846111785658837267155980665878541089295902473427505858682356522142536689815874671366464183181454645703589429617106089781670557933485089159896530968780373508829318794470412988631849765696538673662406463659324888611553836438338193343468876798547458356933189523268809521074225166379512396538481112748333370566280189517426739894664444074417156190798395032663878542891833337097808942513833625401345966594980813696854028029039802414928315824545702007779326109261009031464420107661956086007669765916271186128101151586734515164358196276174449534189609377553270360590296501034056930308477597562313466088269512558215820246391029806936414857046313744828464222548931516143984932710655251789433784010866319071157898721721522823796794737468575242066144650901777296375661589250103772979696208669496499108152228603972294444794238988410060887088254172933329245286888768097524759490167241615197968263213491241622153855274491791856266814245755781032110118485509470526196544682993127173815545300825988346620621189256676272048607010769324177290703778833867575098389854714552769142071735503531261673605999839904115540256046277161738279399317979907872490542696132991462488139064988920522592975169259848407244410240803354433264603363026787219384770423361439029294193950986012317993755982936972980189233414040895675019116636248735878947836972411338735376515465040446880822737882814007092242973023211860301949244087739616801937097600759305615131286984997148467299213677325636383529358207336892521252826753040895140118494945906101242117893523318995706142017368859196236787023884561693897227572069392748775000978855010313899449238742416469604624128094406738261108100523211796070165599205555253368644785924526469369620242827447062549741717175634165881563679093874366955815377982914291880773100962671747695605797717459205072486849330857259121993439436291853115980225265159504560044476937588779998397339495837597354983784378643317849480380072388070950325723205364301791397928580425657062529920989952959130383527971038741314228457676120952511261636112894960063663587431271658605225601892461409607617090483018503267245298308512416718293885142987032804693457150613448709087241443534881296779162799278825146290261005188522228812601198976555445924505341419530174400088231407167488761397739351229973700801563215163672535074805953939540038568382719144319366839824190602556062713704795103862824824480008782849037293318340767137211722215888003951132838520295420786351062931101731631852845646713744949292402119716495532130274374071794554391304557262330220889609490330532812932911824094291728266315246598135484578209054795356097693343929508966344476063951556706832924654947000810449394706956549472258587913762599700403417840764711878011201287910826951897291547563258990828723937388597901404855939466520450988436221771760142441261687740059425198018053630849563843042709307453718039246429065638902334566548050094639941960837856723882667264292998815852698158289192828617716354187497885610573102592625962610739138328598208561255506135770928930972815716937390574428522583686195562331339410516486642459036410945947248377776832647727630795537481037401430167024109040728322727837361634196795038141365412484038264696907851703194593965783274005517565619741975334279452018679837714010162995990424529090115722016420311426875755258080139207393822283793467434287141402394423470420456515939657587784312418638095663673757982120514495573299689809748341561276620044084913157227634045242322768117119570476269516834808126338604327832319337001339999434189581115491387403479516820950204101831082339948700888244943092434028526142863981548612317706659023238675081648966787955000796376235228064540904407875301202449263663830192818565624593699277382080749881358354510539645614266241433555464725924124545349566671846165919180783823077788053919156309184163828596212628784671858680772112951084659290425154479862220908134225242548723482507409651138883586251342792905214251722801993636580093025462262833028763900539816857875905842659100287958003233362652762214793292638049624102223842202515801706162209430437550301158447112172899550839775582894996345340248170688496086893707223076971786543336971575541777936651347315873430695990368896189726043291679062773683837389498443718369321771562678253321864669978477006755283290405941829333709689677690992058777339936778791666467759609698797080407639492523287386940013828406769812039778322628907880554931693403299093895403528515661928872505799582458303140582782871100206568679954277264756428875129769120285968474040513911474296587970590920409318485001568595201947992990252996626320670758672649766057401994621479028413198515846577027060429228151086887425549516232081961609661515485684586683824624098006033170075331608237820643219479396290355814220906246178548917589791408570425004111196515039478887814240889006361936231448452993975731247589714222744455447299332782514088147916040510969142479619762979004139448946740903106318741037707292427284665287342491124514167502070570519976311174499731053281341490919591000955418283071290342210841095726600801496417994665030539636702748116654699764993952486641044465716506293588741123452471551472123172077724148379706790993823503164608614177613460267919245739845346537647695469190461668346411754596576416928245235517660546623762801261816366354191363400471404195418785668057632161529459721073105938753017969889324134929688054714094123961155633892925546985537617090550815078845052897326493790434678385313430232216948351519229056803973273876417836966739445029525691072862521022987185928513924018922006011506445921140882037100012660434985460739583908939309481297198444210961278688713348460740589673716283813272655278590325089913680723686753232804441937498320362221979489884060367714958350794078388326262929657437862971228138327902037942142486678336962062797154425328122284039901200351337629668322694434458828672556927724497816728741790135934441772574648225340422130552053704436144656607614682556915507936043159657576911454501892499714159803515257192660186147479030583241419323052628636154700388301975194605353520880848076382439435119246326440217896196647296595803075157682671680806724801991001941159583571328031167219776661412396345978964592389547111545336298311158167458604512475907496971203541367736414797129964025745845033863560490763428008155011369609477559757140072091688591618496412879143695724176571102423648372977312693735979842578144315766476301145859105915227542283186957308574785499343120247174704703797516332621746736653356580224391898024390841932103492239912339790563999283092566881364187663408009559328223202392876517383190755118891170491331774677227997378089239954240257421130146821143122379106006042659347302623017688662858822673356590469188753130285080340397537428879585863401622573131835490660941732231829179153852845034306663955201514800290879397809129147307330819525342955067250100458787630122494348876044246595088104947370625717268515262540236144684386982378296074369962573231406961298007638561694914489156378693462793429149152433271828609202914768723253307152775472049032288963873553996596279323597506174006368459183791175509348266379437657278107879880304580655235414557775526991300375880700510855604150490381383742468581509031560227092124224704664934828555625635274796775615548936369137524011770716111673829756821802861316900029924305476756012554489377991023214795189547779704524435236834878599669010993860809997083117802795848910737487997361278113283464455788778946502860166218807745716162844583160851424222753714321570124672181173137910979867495760640654905907302077845391061212955447967493037650659679391011638970441055673066828225974326918928537863993561683455302569940759748221154525257996052440732993365117901330003063055606737137466394509533027580281555194066487172871394229190495657163403938920066070726872715706610127395385982500777434461411260602466987085340515526483929603217760312226994173441152688159014258765007131577311890538308542976607694454562402571700921293463887494590060148138753452507455663734859287070865344360701537315334160232710634514628911740660388342442335664643443671104495921316892846824025478772046929671776542758357025032276853981600658882501476805725613767266694788120429433820075994599657384279901963099882011265763780707302230374279658267777681888325710542785426464165506541383171816693121480522149196715497097569476642635816992804119860979729763946789652927594437975192063368057775794121154730105273713796215396228791260573586994677960070241572558088145168963008039286694720488318917024251917299778753391794894201897844800013343121436633182720780489983544812505958823376645506151178837072221489848659730223839748679004686380032602751319774021987594076390241656606345776534309865144117996268905634930576461662950157331411006960004076802689029324016579043306644266157232749756566641990352492590292650298849551141384009127508827728154088079782829325519369775311274768840120767055762625602261107462006598981768895553867097330791623853550228500003342967242252185378611692285342453373353220968173685364520549123769100297907798506631728705827393893104248843580090157481882352607494812289788078471935617237466440517573292462097145182062495823922152471773196119768212193187680575182241610877399266821914339317339751081220246365459157548528306150307731676571079176380670582337712204947378003355531026703049704433484097437809081826569640158950605744745316694101627226818100183206883593285924735317727562580585994594935380023538872474963916324445614858034090116686163612640237222323446901269094450234709978694226851262012987109971512325503775726445802015758173567256074843981447037048609037123467923713314384340649690705418057260725203321302985621293729258527561699950176595553809442309338359888374254725112802060230128480666619578246702472113433503863327468705924731676736968878401196004857573678060690209045202922332172777130222299431387703173188825084040472571395507229101800337234910136601818414097018160980773123700758950728564025027102907849337884971485556875568673352043287529900067510684254819233363468742976751989604681215666984575635674162068403206435307033709586389657776759357571224158306039815785883478931689634725161521246374976597909991812760007037176704110328786431102445589012207144776998409268969823184163840224225505640267400815093612418604904252866153285024993779589364617352466964847838529844014534758813064539262742734964964432848728721002374871541830623945545138530236041583541833941056637893657811070560758205371110470763952174092772067453094162670363407963539878253161929171945133585961521029944638223426981167180313189433415130496173443498175884879266032866937686091319024043984009206839344271453625276886648621822619230792191749969586313785856061564508909836493283832481995714119958697608390740390007330328130048526743115495744277429356569241242044764133428959572906506775738863672485739908716840088269406824753177207179500665861838703997464078134806034942639301882418404446631672480007665787762644036523428302769661553495088481638697615319314225602107857700599841852342108617950579792191718553530653802833451911630137040752337504659073928919628943250593020385718265519430897149869117967946113419660757216477827622652024579420827661055844734883088847546864898110174927186803028078442718424743573512438569885508088837407594341167372076177571144347219209884026943768327970773444175872403506912721684443668693909108462362438791035430155363223868931979283727921822242581293995718306379059260604931298433969992411272207921548279027542286607689447113071039256255519783851124687707075128762191055279769806003606474355637364076959346833118563688826380733760857331626447241868514500813465907792347685860015452146382841892861535844095719668229740790946495776528340985598151435462276308819579496854329075450252624981958748472236043496833095395403435246925433480652112960727369984506370784198776992018579921190998108998902191147270119919796805431999823793184628593929507218620057688509747106294420183603914754798929209820652741417795830974116290309020786089011842104870180384560494043769138533011886022757054650665619734981620834163099131616559460773642773414763169080784293221425488587068789377129741025292776314090735764801262094956311071754951247088258625151685747795838970028834855567686301034764316205064213393102766493334106424747241895816621787401052528561713294025394917689983272202511479606986807758542602652777611341467287020558495989278362816961210842306899576693456189175131522865637432461338068697422332574188879943629670613417305463485431876979536704321889919583783330970953415947457784066097826672896572430889837174708572037264481274428414130259441919651582495060047171575048286286732037984784465377998004045281654545896510196615415484559255043525878831029404141234725556374929070555183634207655396265582054885287507331171184425780452020144680827368068638418222984519080571606710988513380893727628314393799608265469155453861590016153598656191596121665129485011678810612726724186958258214062092712501239414140141258967525253016284461982334785691390038055132159884322326499271526882649740760064273306264732006555291435238711317696067669308774284281871655542974066424712579818321070727360901942727874164052585936691767714615755152383058476820122981015688847435707081653685788319630403232615142562420418708820343026038752720804067147183647484008820623923641937689539279030956231997538480926621664026002783748008749058530477395636826089128063946217304422674235371915699061630043488885982599569952973042897168826694584360602488501713423996080288694935702177455286891741984072004456150945388553219271647165050550348833231737041219471794666848997269743192948655414335690589908445140788874801643961245866382270846653568086771726626287639956783360224494338840051198796404089384495084671928017674250610102929426600732838669899445546840036798535052077756904764134991715187526699095292792802225881053843226683269684091593274768230964902958515070157939811243943440766757155960503908130060578019910738614816128102281022417729291407112194058159992895715312266638305220214667198586342154278374102795315029606311053198124206780433562394530472317675431281155600849823030166280707820232676824014646031197572809846160137496807259263206027741002494828794006716134814236533814776721024333677878882952577053744512409328325263679212459873641467959929291235032728841531150568638076260795603773539098400793949418722000777015359427560063829494046358221254690418312937978506783697533565768743509861216985700675304731258635832126618126399485160511837378421152729228207685788079153520575438184589617996564915669326155914950115524787488268425051596829281381585620009666085634863388569979070717478553852914566042465130795482512196791572147344825142649717604324642922225924473749740407136237070771804201416704633591862818390818830542107014578475130991912161328386244617631494741512854315469996438152618720142410962806076034978086973933728607033877065073771049501118955492630046628498669260799465113765398678982463322011507882582765839704167442932468676132036549370334162318472686172886479180047297259639564417518848446490759066726833058252782832731330807107950920273300372455157911144935325525406664542689600048699114989052365562279676484588711238556473726344914470173197693431805887656400107428998763742747201289383757901932994877665055975768579391960405455221309545162016303557655089587149013383468233248864006226393704709169454363361083894655240956781421378458043625471351490612683447411909986587197325896385780335863379273010918187086987092640361889163694312006432223093449201412870101946023266299582454948534966322590183785749450225368994982509499636761456513990525630016819779920053021645635863711801437069080736622225708908012915832780463524291373643223660942399709059904273125912555692959749311496379978985518203041391050104122143776796781777925894630648131515826647189063477914742238341180234706205098335897441531010493465395234539339149622241511348959671087918461829177824249184879395264131797000551829461355894239851315871201324714456424300743319312997939542765090926367883979108803103752722125856476528462322191287847364861347784700083467266727242829860913952671322683986882362623246673542657595308358052942458770904419667290778277136889084841291892665360303648420823612565309612809666552239313677297553846508483971165331670077864562124709221872417072385887863579927805700328293573464724182213414754366002982808469901293921783945642925546157309048698361251323193071699621610664079397921241427131446442239868607251244422793901593992413449991283966305081087195511079121866431092609470936278446666053609078333080255845609687467165307031530953575826778610067058790462294935726390223684018204547273352662532074896913166219635942842684146613793852046518230516374589538839145612409285177960474959755201788317543335936256235009434161463162062793752830725097013961865098458336049400296255503689652085543421736019236021651218795313039316878166317341535836846691013649526757596412504507267854154642590666724619501526385746572449757444459251117284866662096156805651889531742610937907688431434672204345233726270785805371225571609527531827487424103716653770109316682315113905473393425645637304656157430974969254004413406573830807479041079367693999564433760724358876239881012204665587319511350635395258375668843308036672841567860256942323860543406892035601717239599840893648365836574562002269906481816530130447355248625303526242465723494832158659873492064892161178715627045776002577381879331634205005076603555990563535636552504695121318083354245039616723184174343991551503721082975757354043810691539989729854787228829126047280578863106036005199914133170483441236207938690001866398190041619506658654374847914269793205187299799490598720399573367345598526642576355218297892835147254938547105398170837843280712946396175760216442064619546266131693467212857206726285357839231487248760964015946806203803098310257449966561340503220871364377948257330202767882885484570317490623821004766741648049598178196999653132176099942003380550722710863017560324587070062256387066800358182308168205360732852548588515192444929352020425328314498227243598119537187746573022831208754138068152586551110266177875714039919675821509039207779148726189528476814186845234782667490931713217279112508994466413250481052939082735457993364374793159365543798825610134351475650271983711579463467293971876697587181925187643483931612645460275065505066184699079897134306141254352299076249936331372964688527756200419854541134509748452812687826007993380933191144808736847100632899289562132449012817256610420038575066208262686505561693019235112946038538213760156821092464968153910843949863693941181478629342801744122974432427711178699158605390104901715953353434045994455541863380631084684361747204106090093653563651017288695382648951431398135873296914958919128472973653667887725650442567269428933914362385292153419960963796115822659965453009286089705238827485304673510434880143174653691374930234230749281881884947046715269522393289641264275425686646798792185641689209738519349829358088650810944635415540084182702472450893736142821895256779841455182940523345490181259334085491745938294963168107301594866744908763401277971067007559496400619905725642017525779227178408786521696163061826794691654043243080682384454745405112439124679059280721013613236554989381529286445970522141901348855891066554505616657053434185835291421260991381802167898877159046132685592140395654360710197600607714303615335111444222335059888870494080883400732512679410479215722063500927637199698253535427454736667607343053653527436239533059403011479486841409836068465595295511311430721474017008974106400988115182341977511251879153548635861167043101695324283610410930602558113945219280582725899729261614385049166056787681282689039961787822193151632798795222796572026060067344617018661696408721565306913871718245928999023330966792124545415118244026770199019587670194077991917313322271749507255604218923610580620029605737165388603370548113005320193695898677292055107569215638169278091109800477891124480967580646978931246890447120537787034107032575189782257861711179574426493079698964311328670058557719920348955774939668685436418582763491047023510509666891660666248821255492586840263198362852632375260510333360305764321995368384617913210601958400078135077833237398068056664070005884605988113149055448573693097655933933863682692077202379195718855846793695949834454848904882521562148647580340317813675714986836973735398240994355666703286693534033865259919346877945938016180774420115206532912411126799569065278390647862777564002378609891316789091532969799237762754870546028137355478668187476456562886095178205396553764523329661213055213857880852675543327261142324357258138618677297338990474706063608614797319877920578104225779069647573260589157537973228867218187187685496012268451281495021862945409955748744626802203736419669095403647467525794948729912001057631028100282160611783030821026898645337779388294599195621595762738207760622544043513132610032368182292982415185885523181762877256647144424807208036302727416837289082199539347748248235906692033809591580824443638033646781597254332754494180133712324479372053567746314230618713243220953017910612867132168954389985055961001226463509300215698915333394960088669587116221301017409980630414380614763698580126900279207104400685448691391201801879795642922796375800438917113805330342253226753283336155454390640537727951775594532333776078373813035423401513931740692534322801531577996527049776247982781286000056098127918370519997327523207610332922347599996902176506996986593574793231678858964425148014773472933994741997252407052652032260097593034868231504108926198546768287524031012495410727486284164899141552552476001806320543836052509097749620893923831280862375571152699860545621200745605154250172146050721611914177350169671659422421653234882007877575798306800730577269674809541701030995658777665079294533911258800272792485392506962829268134637749745768580110464159731290281928466867509411365081678879155423702980027323410831677735312812970395778279274604890672045124429587377496655640332466891395616720738814390951549153332413074473743445390030069322332186989992315653755542598863511144569467084113085711578645872037775295101798380240814284019987575390758961601289065163251923632860854836178182252838397772258182154318713735823718833070289789165842306490189526196422674609367027794210006893542998283342295523433399384731795717849420240074716229782296770432150346628747875670881046673438301502727792130108736458797394012567820571272930919670736318991708373297753718118387696671127238569146078031657502288632708381190678453898615506409338766552337046842574212544764596004417359046215632766501040947560581915302640285835727550540459879051186578045783831215330765907799011949052523372561680655004748923281285174431663991436950184088187283361971891659063186895367887380211173064726834828539229630084427226978899842484340096131597775100414214175537843792538960255876177913594050247644433128571193410551925558842873760510280799180456129934310064627615113690539804451943745998003748876529627640106149518975394232520218166431804649778044925319516999206521925222652723621710811968979798422489796326210471240751239248885931137958761944460464143085008518935427219703413290383199314686910816156752386791896100774294484347530776651678495997690459536484208987281025559587008766691510620313038039623152606823090343583925956894640129488847281825219144820655925172392711189601752659937062147897928568004098320083488645864294577918811410148638152561959581133615882574664005495773609151655271992915586662213205409507302045628444922667799763458265482599580371117859500837931113428376632871930670301373362369804698749820968886630130300436407593116418030974729192718814076116836803160803493645144238736604845911863563991706843439500486457149710777707202415016327426682058442696857864739658708449528345613385731276204496136293299885563781828030810486020580536434224143150249145204673909984511758295094640297136062566685344556195419653723320249285335146863530162096897605161622147751676373497489693394419619538139260897151304034674858694755575317025362658655666674889803753397518335343744481903705326734456532710469677570639059770027711180891210166550499736772176992244382322586190396944537301019984143146075094746265992476299864926086697463893083261779129289229234513940286037135231924880201704170447635851314356553805561277331497801791394166028230880739905851858180193031970867677060933415461216517890725553880842377176369373560249424937375105957994132047216465270904743164296315990821240032033233007542736789281049777855803826159285175078004628385787260002123497492940889100492189725768931490901399179865296998002348887051355462945148529068032154611610271418303017322988787822224435121066031551066998820459408126856464245396529993129100223584227615411973305496692895164343836645070952101533876731579069179000533607343662813958347171404879619419473161170003736320453863576354943361574116827486015578794434089802690746162344634919364400849661183294720411779234997896066657317015746441857993057699427892927152559134512027699341967660564134310226849632852195468559629858967201085593658220210762916990457175764370522800202955609666295719927729166979922437685274728950360914907578433533082909693012065936307846448069716267426526554837756210495423725550737239329190314093491495990723129516295706816715023227382222699379871736922444384405852416555966462423752984623133907025234653819060534991740484884362679645445313944002862989255737589936667015198446449117216436654083584261231744180006593887612712350192852423991979762455174311127232687933944777314509134245353398024291923425791583050460025010004133520512451712677183922670215278906278735066208809245578000935705238591820902757414191105337035283614988525001723843437446295608728037638868855268264537182809449020564975001444249242183781237485013691990723615662914915966985134852527789912808314264637005316443363428258325425718079880027914638480345561348570044362315502125212455298144641834892321156159692261488703626975306399594140874625357306230214666506066724448906309927963635446397825608853765039981747239059002345321496218360109241064523829909096965699630514211331458969471945880531289466011921389660217443064732309315826331436953718649103028888680195541023554445911817256349096228189158314111810332996397158714995538986940129719750738660531613319184193363881043325870418566444183079991731473306687159635899530425870874473290627945222904814396791321924916371308025511288664361685748046257706157737495392360091533578905203106310252337749323809785029711476129565213668573857690448077672335613293146252903067504354089298886023937543974933326677786670504940221164090905219542761667378158906632124364425538567076056341226358545114773998039425212800891815848943633948590902179952839330537130110073201136932468733220132666251469709344472769187431071668317302095331161984242338142766888287996897725384034234388085276040920625304606070477101855038686573112112569712192747397538789156929231694946798514272155726176376297430031708818894306590631454109961238424026308171691262537666393707331041159855410333942963091303646250162659010075146208459797600566423411733245576065330693236707001064032975051687714019806102718743479122282260119021794284412094648822587376491051784401769395168351536713578837955229445003007682280773948854584944088382906018513254938675337032672140221168442429003107389120874506312221828923719898622804067464149908529619108067162468743438156115443668831419692141268429463659217027970854602136160858201768557628197176921079152163917201060941439227122236944672397675425944467633801557637524124902596040544706259140329488464397384254790919780821014607112427607541656361500357585759364161927274843857691192045747107715167800454968758745585286585484400745543924154101795003853628773053994004231914529885756004373683231148071654213819487239186480124012993890519037417560004204811475293288247527368589957465485079938232400218587149633597928279060722217980685040284055036951260774637285231427606441218697656020619692410512743594361836269042289294903306232079327548924707088628443046249138546704279463699564030172487905275026049956038945832727615378089461709284079163859508081672238747444022287514748659675819241972744821378587375106496764733919576039757540404024084924277618762816695270535925221745128383130404122402678625783652327168658698657513622338954966818800299636807679607998713767438728461528567043576945005138915053837936530901716392876746301767153103174793226328784595986437635963776202897615362292515758125494706813056568461439451128890758803073669467822882376675137923956872629174487555904412342976298556116757079981449710976690145109132536711898784076981451464895254345094005941363200577494658133228867476205757607104016211754301634720271607937486614852925321343338114963093653751201460770784867832317706051161809863855613907256927526516317884425221649666404491913252790159747171052941043095258761595158875558217988322353173017652444646219913673103338492959978793199409489659411278170099014535967176740155780197941562048170495692978978842231124027644363038420895602733418664007528834747483505291026216882984084895878672345657317770065476293226781115407832522511881959586116580481889870505387924691054600693584913316286434034383011579009995252279729602760285682055861670794756959943566571655649875298479691684319701847597085709820669136807490808839612406526536395635459676961809826170044766262138713745948951834169479632040807482445700727002593251509078486162695224253375871036872565872908329763773922180759585441558638616129316035156809812156225955833843787837340828316385041236678112410623849249613293437244354864302580559489154050203652271172139813836675378947202087479158336829468476303277993687921847579285617328750874046995943018747056790199498445926886180994718999013598850031526522698642580930495250858885656407524288665413550358803678432306418718005398653435668824644982518438256244346569553412281928087229765633262289418332291652247854585511566041074469027343118788032128056814724486109778446282365565283088802549604311496100518554340030717444477465727792776492679578251243416602971241158779003922653973165395968383801804152511460528906698368121543278173698295440044487180593623047756147302452314779552297189185737016720736532976883139869344392113482404092799511162500205599293517129387163263479780774952598605572690828684000870793213200882788020218199520560424512708085375756343007591587046345701104574493988211697146208190708828168000443264912768790184857268636742942544604528153000035963999274019516713421094457769543096530500825916449311180820723003090187270458064858041022852464539119450908008408845720803817009219860122265270888457474733649896263956164450086257334761861591559990206989564963394657923039180320641751678987470198327451819253337617069486661730934951710296038874340196665939350396002370283881179651268811776684610792494493606808578392522726743519276283098457408137945603674215137716914513790121679874278709137322239484723039269455196798376755008154963917944250204060345179103152149378971543901552336992446703553383791537436911882628300761583626821097632621461768197193916844763034337787361036415758131831903396589580028624012680423032244746670497286147648532187799000773681112344702521830133751743504336991949346944332134567579140886916659152426143096684174481346083235571022402868808194091067150822212827726722398811206497873861220269569843467725314821972361089910050810088604397950450646322283504839182912870316051284640334574084783667672805365577430420531696634253858316574260925881144098963399123481418269126137342798232289029768650069311445443155386829146668514622686489427791718796066911174176925842927308906073054150054506834168953494762378013526772490476340251228896041116626006197860387874231163832819570894328033217618968676007365601431196106235857966336707997812385485217935121973592251188516477212530816759066540108107679010163306128651689683449783735527974305990484900888901105210412771098432025508876741228333485882146895075700115466959696968270290921742837491980359823441461110180979342680043804507208819338282594025840498002068627966904611650001526775616288016758492414049602826828715461878984179598599823263644599794425771903760730714262791963394462628150385853647964598459123630310932798718720304689947290970909266469085297611835661288570084365259959750046819282169582964125624840667242501128681115571725296066777737896367488351913993771490846671824304231802860425950561549898616275139041276908571863491302759476786815488114831771805935308900144155743759910515316769310579974250578104365204483997743780146756377648825790965106331309118256586451970150745242495174602878337329339798609656486247423842494618145079947515033084407282136177751622827890965610313654443221791279314879442523714667744657986099607926543124920941490082571606706689233924936577694742528939811310737509780488594156699519241866733708199428622248480480778519118660549943172352597597622544220711446733895396533442293901781502286199087792213116106244982237137280230282240778913659995888761315275103012716599771897087070637964145346426965672466060154485846748188137651631095904264929952474247960902493877978790943415607791844480418884019502180564231883248288193948560690517883081743694553214547070405904817531949279778611565850189714611790175175813926179902821587960348014650054346905326227445275661934174765947645335331261650718933083161392384875912712742556473558923456649545200815525605529609650322769686966760378385491433560971721496063937987337301842263065712833923029141514569862082983139374641529082497821712735824481277510559513468561018774726377844413615255948715031489840403403422970188990735974929451069547809300039264528295875225529304868300852349261746547456958012534836076881073880143289525473236276466707032981733415677417301520063869807652273199252446104101492145693288166420698728728515110440427731727795445698977872674631871768866882234569935862264066471811730590356060598191216417276490894927063180368417041198091870725711285241819815207458336945712043235833069641575677217974205951324668241120300664791038605877239305639010912093501473761692251711656997316319846129479588449471743423456897606639931358301668240248455278490289077423555582282615027825220052527362842576258043350321269581706983773954957438349601283994285065901130673726684242323911004510395409442801237873626134242014276902330193923694447595155566726503098489517422356315106902032670385179139575608301999037233126048399753486520714605749102982266697706867683125923960663818529288897055135287968992976183230825285064703173366661746141777569844560277137895386526031669223945552782145562073971952433013661375984812516682974258585819206013415202407691283685076154998343100719035703912181177710112784292853729370484036594414980244507922354448832864873120768066469762458488920662793200624173513605646299973426884598645141854675513992805627326749236911748367431035601341290418505128119297199068337800760851748925248372497605910048581940646628574891715546693010230348329127315562290418246564908289635915639331430730283701000368721391747063268861644984933478023139714289589481951708161016324273632862293532338279527168171541927091521162624333843768274207701221645137096864812805649708376974146396043235232983336297492302357490970940915306357870493558705598969929228534910900800623859586910383011795496349603856835265824425947664562860250658123873640331154365092955456254477795071210721566059694768802043211991590539434337871984804135377611117125403967096926109240647295063552994590759815936258380395301162628510094585362375352700129241954429758824425543597565365026932479729191389718553653718809668834205818595345984796616785519608877794313201305817469964871190742364096372089578890274115629520703720044088132006166469056036055679389826606487216581783038284348642302281383874432609613991266593454294628580373679199720408391547235933096800330750044195906371376554362196166726006667421299645678692761500320055870166753460475812407780353082875308361261865871598951569235292488351733465894581289155925971476095843219678329963843267295877824132945637349578036080637391182155213449776426007005732787963305139663806550639345336618152900297790082291691027380226173378221578417506213618846695141974850887047319627528349468706905865191366886011465480330271675604600245393472373313108524821395266720136973003258302737467531893175497877014866129134718303511143392867386994925975514412883201540187792979047173956701503814535025691062311033027666783643003807197516866127738120415855504953844378646580622649864676896463418657215133890014184113295719838737981753114125355165892410658372736397215132513727606333199473743120314034525873894042251494869423250123506168410961207649037185929658705957639601874188600072402424451806537100065742712072344710921634169331896848501326061041053320231913774696589420871089220073843720316834890068018308440107418521427792427047340643361796327632022648550956462569280439684335801310912844913565078954031581684741753633738387692868011915456731176743518164977960386208150221108918503822033350404629402217590708317704282399899445394973282982376742536566598609598748260918251119120448365439429527710191630946322948091027058540370985407716373817824317801251319588704223157248368540059959916666542384155021000536538405918515190434935327194482382402997127041865335792615866703705840410417348917522335343966028737455439828386840984414857160022556690008458659807181143896192948054264941340168770034339312526192969155107427459165755470291990553365306513976714336400033511879147412945217075533947118216920822409156373887435941948144335262483977974601150052433302650443733227854265217874827535456770097166420808233563667088954292809796938021050528106697634642555702142278814572963794391544017176317426689859482292696211754325632903996375711950611948691058727919482206384767406975571015984927277110236086726117213853040410148455404625294258829892789848638997652107054372941038162408033548260483002451759904672706579283723586854364027112028539578143005597308151203999618550724260120182448178311905033191921044024978455465474530613327433161964498744662774657365287635825999002626992835611988031410987780053888405539205911712307693037523359526137910950952095620562412720002887460099499507486989999894608153529223743584826783361614074421022015614350655172511369931756939665096954543803823943997742567777657369735415599579061145810707063757466988718622972318230377137761430612538190506616264354890607464971004126820787594538140701888689145064882348522801105669502422242953348977814236823256186420159215294639030447932848516763296887450138789867890208047315503813803231118074474305894752883922889296021243361942800633616631986644137483648931109947627774870801919281810625539459912167980942044698272528303906226893330478155175032578043249253552431294783877605214552237185576809983430115668012998443459006308951678875157097209261363991596330191525163236002894405650269031223430762620332294337596865738658207951696750281852507266047433877705991273855518792633405628232842793444376589152302451137921420392001758831466204217732339156677312134694297214999191025824343397978038248272058838089387648082957235198803141005696654872297286725791776250138234437349307060025894279572607003781124463407923636162125893462125394103983457088006995014199558235057404970773218489614498719515532160664726559676547641847447413593501113821203487747528083782776518688065036806877970831477557731897122308266413399387017497694793043811679520269080426690365702834248970094874779070595209318071093569318675060568861323876288333035393738539159536086186236256133550855669219771229157717721155029703269834215813553480344807071858767171922366881343887937316605460843800708591204251097860579362106970251628764463010326023106417766430684735159861536672607095703417686425914687455782615152395269061652670106898263765598673329710596384685634385498015929824089129881846628045914648931618118880587919639607254870583276701971828303227357254548891410250874984689117358613640441138245367072070583011314319130795015978498042341070163667483750836350099560650306060255269788901450475040590935676969087232319142267558526278776433658400577049749821243850157662607969487052806269069255390899053161997505858530910184698628892994413848867399144160465279550791388121234147924776936881287877154741238122460346349987181075228844433508624858217552071183554291633463801655813561906353098448024229607824983656174923236034848829927840959923036124110903237281490708829035328968984188905043409674821041369053050642966831165741343389888786802623045853688431329340692324858448303156462736572460889412611241996069455289347769472204635436592325172387926499697442970323244083570033610552997813667163043434302857083713799703977557432992050685985419891523674152250908844405440408540798960165344462559153536449980936753363714303172937274169630414707432212794721551990509650675574539446438702337179657909300009273022306269359682659520516056259013881780078357248403561316396828488321682150514356342864293790537608675085905076834233166190508081522494993528071979975551622302358875417193641419546248814490884817699753457752300074149138678007149400287105922900962877379268325777450310714907368406726604608455550960484540411733310249641784874879393360212958289137212819894970414451469967730983916702077598912337702147705676024365031282125545434761128066572276545558111624299777551180859149112433901690864368977918718261802968847885888646486211690348774841501037116573895654630119992616503466098804770777360484853026001529494010439211596446257472884433888505403597742189159857541417678324524021928479283025063078916895757819733412811139152601714404506646207529174769429458261039896589515738482785973466152433013757925601873636384460740720983860905980170662880146011822471320999843785193390372575387761795039269402269143372832088102996660513849412575246691106297026032488103688889964906083754316536087519972617455589466675901903298448364922379325272230189204899871358453795730933451612739668608499878828521881494473009446688190483758600835976782342903016255222663822466431663977032680060849298749980497548697089678837054594080119868425296515906725723432194237064167780371122135449552614767493017354764159165297151385952578735623795962929011891117801118539446478881052515515675600291733831211770387311956119820064411448380368926163897202209807060331313599159006871726473466963188869614797521482626290216124354890588500347846711936443859445375557572041299272702649931976970035596917212612375229411538342447864703615200932110095355698409591709689677533337742130914839530489505254004439129242973376763346399411258196297308265631840633291044214032376511572756706642026406019195706847140990782319913810940193849155770152437391208468342393880356030492582360691678534304463714392872934091163226572045640650037656089354180245864643974833548361125615450879929026605527769631490793812086315481198110854055205071690490134294375156252185563554622280210082143610798850868178087664176419832397864308018513652587290933353683220734655186087938595543310946438669071668720468078810859121066884185443523926510115192946226540663432075639395102179099370741320583300128114122164294175276616702906129809885907935392417123245130473624703308856688546989748851957650019658238938863458711563219447107457517761629692117517626594391677164082573927052586006079037137222363345592570174711285761158797681502733543184877277419882244038220757303495796256191285176842076147434231731955227564926223384176193489866964136249888690073033932905388336162658988232339465446653311404950969237067171513116470236424586726967790165159953478317833069244004631567868881853956787148505668624440022868578352778163521331766699590099436793472359209256961044370323477264947930852463574585857387970316483644126796804996323066074101473831742562334544354683079725389955036611561647904142331850014803426901021274860302401760783152537716712054262989231482874925750601860582052041735079475034549734421220040693885771695881012624442778135216509251510514301252964418576334887545679958011732738583163489210031620109227035261358273083387184953418710289330610224497299743334270437160562609521447031689968078882154081207887061850643859801900818987437687879728041813012509619021953565748146018410278995460201300525832672313953833838785739623761917709284941100260497048322917231578269956947764302672133368110781105464488572894517416957030610834879831473369215974122811855387016927763108644258335536876549001361250947993899826463540488564879444372093336443900965010790481514814480571850040832917253814342374860988301329967640474043460613163590035715645562852457572476687400554739456078466161016386123973246042667588486512034218818323362447616518771002225194659357957641258621300036936033340126031537897697335782678172179669061697831525639303213681102282397421861266796465118454081460235151784562305975088815949584986124762155322208420724168997892911969004479017742955922607922597985459420532882363414982706457494523030721626236821864652398715471952149154217713936933959731547988288337842959864658344315400591359964463075393892713308416861364946608444941817705643956260736407512618236329327850245436383757009412634080608009232766167620841254094208720305342551535403989270588183468792881657766912225891046130549713643818815166035892762439260384469339191183176265138432931688618502477109114033853574392769152560223826560858205905999507502524712625358520716294415486017853818613059795635358875065648666655796286872633397155830662382202983611240532140545445640451945162874588701643326482346976167688199018844927699540350167858893269223350243513632434138085410028463863693054147633471667495838483536600326320063266836054055952338325283871054664622733906861612194579762897772480080408114313831904068646178803530652463745270250912311740191269226526590100840742551810939720044964746606288387548686186596875834895272856681178544411724741080415013438010195633668631933599597422459058573175046023346723395565199971218066009197839832631261539686131721414468122221239109180476616429290694779296453574336047124410247896098066148044115557085686155547462640143536282369304948172054802081290009421866817559954910639606456522186675239366856922529912494464821481077571986144794940345455104189416836686829433195045468073590028601640078349686191369010428056772752500096677236614717301104474630509651393163409742402629159665368235685331114204066973614433074573876710666710271832546339524636888446940010290320219554737184501280571458426984934130163794048233997308061828534440422332090112760186416124267614937761349141449031690175055687391280467311473258881151112338642920682136377033116979394422864793012353577316241882681127691975159961116231527552510993516540186633291384398996165902870720194059067913589267402019557114875625632207991820332621549366115362518183029980664668619650319285053858791216702893958295103758622496634079822102147404116047696524082785170772139547342651365929658201750573794327238714023747766383227316748820076311170119609213547477875294622849389960454616881445154773169825176222336524107660724167253021609626187556215225537416817434722560795792389249878560511623033430280849662971992710297971056456761274632886956985354560689355224196930341082019912516954381526776239164349893078478203331086704644705489493713855496053965058668514028575455295380893490184335671723529869079770691039646751787928988009340223050557263518361231280876480762188889315010048642986652474938545605407462214641851026169874679851961234864793294137754264975606064821469737826760723520007387408328696253576499843821478992132335778541147762936666453284238488035831347581738819923327435010482603040188783931737012812057233133558046882523342980166625230302417578060924305712006075178021029081556433496893884800184218885084495459386326427696796537763913426997910961926229789345581699774611275684538714573406081065188808005786727332637327646508167780870352479875962923374828349555773714574033992446410395436323800656743601006858313746151380616944546387769744793213956900707249665434344777981156705785115700790480565232524807653201116589340731818717352529457773023539575888661546140056298863308387871231099273804359396425603208638697745710256309900911995510095577995734331157848685627621915562176102981437358705725590693804126519381921851553481213355678778068818154455936659031366159996650747246669307055132847319115342929239371693249357798778705654244914433404394396587204222130490509413263348244710689645807759331036522416121171059334808754947518946491348919821833737594173887145503677338036099306870057002560118487009687802085913772501862501384860134937711547275565083086431000076999816376700505702447874443291481733373217982845185774655932101767059636215306651110087125250256863967501987046391859967418877447848767140106297355944175171295401646855659147209992379965426253228717893869083081249156804006491020933068062313393638489440746451796031887201652588325590461819957669417360548908634253186442618928584612383125614300230720031160424511749224652296842833662929153357680309513922077808580397580352169029690021234789275457796584681888367366442273163268467820507461043439065265885372946485383741365844960148100132875151905493393887127687963949252033688770758547415312424165495920113066325787208155556392494397382404879713075557017050415472600795220682650007943989383604694404221519854474335626726597916904678906555790808545508375535809844464717938773341604176215427599521805879592295677622401387665643895087002572422724990101685172478964070071606396606469261032235785662590326064080405303793409918767781179230117711649701599671770975385518155106096637085753194375210024031997839013652729100195412314799908954397716445167300081734797699745548253984739776812812837719714051921676295900954978652762803627643121995548319463184965557366813739586762252945946726494670394633903711984254614236748608115186163012618918850999781446120845633997666514491699033327100674801146207674714338782779625290560875904481863776949362764393678305088219215653711320955333722951068279332655181588749612874165657254634847019625137361453897946816388024736863978447484523252446778958228981401855101936980111171072858651167786198114713828720999793822704077082484238890850167275188495712773353249552207307838634290261737603350672366448341407968238335372076780260879292292280593153829755595584853027219073956563276661042442554542208514340297121211174061519355452120811885241792982976339682396018431372107870466393057982897785311172723788040162241655765282028798984461086253944312815257043109981645916596629226082994295432646130200865542944488954854110914947236136761405431196760033583755845894038195570714210678220455475221720192438982479923879739952989885163467740690974956641331247603844232180454063339926057219875421062952489326490340926302843559026504371985982111580450248716290657810377748353365448822865035734736426280318119890107410277197244782784802326605714176071260179782881291393806153518555306822059308383504306502561976338092289742170429345611044810539477138967914037831723767423657955662715426205927878359904883905409623493316591934112054025999323734797487724658609053569677935514065685643639182892329329037110707882429927822297015228286933614005299031766855026724806579584258649159184399999290046146037459391017434284269402237162046878024173052281256916348351216580417236874009956110177367026678093735052752393568619790744640529422008158010348739870814022813458516372433534352852588046253890054807489282295771878108372946096341023655683163642671273726891057456860422688462367624584837795592506275584046425111413346442279147339520493986231147302486396639800348564254319397580603326388772656568035288743981971820738984803572853768264479471583673182437820857281758330869984066321215245237971649155703583934432259827191916804916356708095796367552094601349186248490022449150442091913823512200149537413833167554605253654632716810052620157611635934709381217543327553373108538803604802628715762952234397032637992789050261775525968526476721233226320592888963364952814873685751257964052383076321523014541033484261177454684095867995570631934295618839752625019963209963149551750847653966642782622647853381921533983198121476151458107019727470035759790868394842123276857923805758667264570851538644468430549418374224515555087501459158348182556633749365188556098356761246034904713157704019766766707540931614061920168320922389587269251057981115523034009170255778823672431007410001208437202294338876392423875617403890131167491975126904503265280376104365238807126674777203663713984423194915738988926080427777700028220192510864337847017232001850616449962613553681478727071173858144696800634547643241767789682765887505983177808618366968571975911095348204222888132141354643376099932302810770071329082438486906353476350859871137619351882005692652865330815447991350220124137932365377257102846839470323259185096813285296839990247562151271024414935190272733666811085638956184689903540477470171089061105163027495864872859747860176512139512321611428012647968257378346887789240115521476400822407306249503431881677909421786333442892048492477315242568856373121259757297179458703154079907846071422462305389368258300731468158565544584719509252979164314406657557325673546454236189725658351747136449299190026720831751597080949334972702404824873232967890968658228149093036028618889362969465402899235657377216838487147077094423331127376510489493272227047724257804422001149385450853022654360281706342742444796285963231190521209133238849271470794390554762897807068876139260912505105083891373635101362655041738567878776369205049346406746037601505295978282729551210621307904895533740220988029010450072559006522137429912000108264572255548980277209355620276136315620518838830092202317328082772928421101670914857211193235480950348965516176071320288953770954784387512997615480153885537726723679297478760730820852537885141531593781553703894823655915415372596231366483694414846896541753743976618646866172646727020959229506549216082441235335643737858067686936980097284421446316347363140083279567890552561168465068899885560663548230283768656692782400643827473146537506689198853804689532821817370995480676306944027630787811888380069293541365884461424900657920322228387434846904494512362566468862277848136887128314838673484463165418321010291490636767708132691152336300943946789403370759142560373611706709229510045207685423576960368147898406541630165977166957766189242673933755572563874528742535172863944092018978230910975037683771793799569894818260684605932499142260850193885748055091488935133816951531200207483795389145455407496741345054093553145739684392446338024179535252149283153777422921624819916110319207977708288513366621619610605488174286537884781184154030804227691091907598879957800687501404579488321104537639011450927615561669596520748331779692925066649538158302068014656604507937870157311308142933622872857405725368749623928596173749846248619580666884407489929583291014054563291117494133955425137971855852506831200339527015331546140163168034206182625436750072024945471581351359931012184120052153382363275729219396832495662973628929684703885832734102295912661182451966325763305858342456847481560609608402436407186236336852235530147402997537482366547994233761197832554981982948756842624851624350039335623532030936846813841877468170005550942366306156312520675587415716629425022708564531305180867315093698437976255245179539350659725854779484084971349124175359041269309300775491299793665166087028833333642740213118155091375104333803856242745409948274469978146565083353147967582321571557088907123559449644083061845049406546979644632637883494894968143097990582921299934106644841660678646159587085372525865690328704815978335672809871365232925848953545980085487766832506086654186487830716628897264930703754774285621315151557098780460976854464222489195616335305622884115899917344856923142413114058330021148233464809535995839067563118490138300690820510356640118974743582410822811627717516054793547756805471145171277557240290152912169123691617844238800779012750741642691774681069483702643316630656967622753667555706602642633638475865143829314479044240221445552107771980128238678185413338611159486584124067611989204495818192438834045939688938511483108454169279932190335106273510039595004591908624194052508725074250150088755466598651072911210338519376795003162381247053506290356580956429128643738243023354798007543162534235779707391456948274961205190500598018598225915194979565604387153431343412390011237092626348223299481464035962589117520279172705827941918012632307637186098648439239706686286008668264888888363839418370397734618788331701146222181221895476420433991559073816624814270164739906334121250340006118511954396459140161989514368887767626665454415413061523736741484181612330672489453746256369559470689575198264558190402727232872956622797813126872050842417517229307857476451693918272439220613500385061369790508060789609728865315570418222951739511497427169699752863239886958137691404362872831757265911402849742909919784688428487536791397017523501665222003241739679423693911640829420036467970432768986671425274729116885362624890168931087772635543443142540866488656561850523748388110482734796869753953466004612788153584515917349548132406409126926741587544248478337233336917431994732780356707155635670806546483774722189990793957190928152351188178373627762572208438690934921022985031211259394171931478964306638279660961836204148499577652267271284884175654043435102353209528294690688867140175517807245941268383593887769608482410942485290301888560654956829703564222280095292685935140276142639695567949179531358723000920563007444465882368868459466757094289801998322098599503739359047220291952424933310432303676224339107089390188494844734183466093198700945128990672408284712474359254477880088147534420501735645241203265597906664402202677169185417919513887586723209249299624068019414272974466557280874352024708146833078080156887612548091168187138013691647916602705741875624978998364113228521543187858549906018028722651757872942735269010563934887065943238232672706701469775104203062197231683504628589490369451997007456496875147637191930067470208587968184218484135685819596970580210922948904849571975494712700706911227851921004704140758643574285355053186543541423014189072481191285731064745185908072057535987158433565744931433241547461292933889925647335326063775284997668103303494794542728193252308479668458922529915656064212751340305700820066706104704637192811248263527174956774399965031194550662791478762034079553934511573186218531879915555682742456436336640871239765867229269636987472218819931543604571966486388702426819762192399621905003696575033507418984553420274343868409241592817122640452830446714210264934677568277301784941285631768151082209630684986808025744365613506002579230265086634967663960500193837225740963934569543423336334764194355825626902984733844297471357129992717240336612883962188871248733377959565847294630708730508533358546811769382359352043946138445077126932572892434663809970102555295605714678591572037775219905876022735407572137201096138120117916790048976736078633716194283247643213924363357380068407555171439358568214277520549648844830710613126593133943794578339041184849958097313399282345421776429069431751554919983893720311023706187861199675947149214753778435768384904719224028774402971611944516397616327397297568176493165845415619253884946305673193679028764586924625715844194348826086925737422988728858977039096145911653540904237088339197824795616912435225201102319440971521396423661047261531344085062252018885641674974998997257176184507264224795281476046941384374863658578000514483845057208846977140299202025050634599762365506598294228936137345851227186249922483315157446503535924394964137387559625299603190641587397637100554704800902367545234063947824001590383071632505529825891118599496882618075625773058890337278730301468374498061671219643724787893082395789251197802563659377993842024778743657011188165410043449101999596923918597601580682956778640607705412329364672118739707855552586931230647138515928321715409844145502220294892044583575172458110589868947582204963948403675854044206193797075006929159519328970781067183527849018257339712414632832693270817069445134811370456224864846018864133377523409204682884836911895812561222978860064086111945353609670448829250329846491896976133472796484012871597809787962864136053018863328758112441542082265782655660121972799122221798094599836393785153938076468174475149251613173103495276828810736350592175108501591207831285204405780898582428504913677016538061853737798507718217666938852880412453086348594771251134401026210414749164173055721063275741746098050409107775657309677187826640538558176670574959418770851533292260962169492321834797179314806636629258250564414144236817237256560196010005454663466304734331540537813966135050723424230346343833930251445774019756272618543166193019332473230792269313721200083223605120401571308746633694384069004778157421758160732310772274004005416507993284823009499770497456885953020358380174169554753950162699707544585989913465139188248251286732295854027280353614943521696248828812232056484215166929816163626476535278812361278814953213412371760328067589424538833008458378177832874776230713234598849677718499400232024555975612559278204032711127791751412177083232904531294007666067527892038684676207018942433098167920908221300606365427110984455587375663561843504852624531679912055010463762127108597105639860497583801778318996541114551470875158918129793047063218026082454963970306338475259217135548327979692533226569070627661318554526465187032889965345400671880191694049024526264211657171738046724255479940108552455140545458258895113659362841723600530052475748112836680559627303429002477131589000184670739593748621540646946958986572045686872790490802787526835487952735375262584726896865849378215016501542432798727458861129996045221316217472785815632885127045796259373477107096373915094474259959286444952910694947316887886584010885945510758762352655157867523087807584937109792236706414478658971727675641703284194452755394307863195910482528249080660844027762976301794027669760280867090292946423055595386286131662919764530439861674192349677548304949126287905899572091981566196953675239713679562385276618731967638150597239523575066852426500729495774598986074527357152948125808079671341962358910088873395936941552412276866888201338000805404141965704568978165206689109388520591651935858630033079040389352553918208687343261039114384201826682082618473395722673253314639380345860826690664642637808366498044715132924596227206602272373962565867287871751135538424778501253195020241679568106292400424834817352149091905074308359814948831992205564625703880413355109947772634632473165172402752071784724119873866044710446148671894162377664683840615118666578840940544120088195981481165857248105057721769910470253079939773838586141324394491087912161554517177123999763490568922699616513238364262165883725626538839822952858380125302724502151722421196678911005058400011064403769687932194673576368175914711052214213713989634225713771948500977109521402132255474164732839574392708810083825645030229381849608083232399815521724593571044286815817543142860414126441306733969141564705523221863701123571049059971844023283768465029548132133560999632564797894616521199271509941722427646644252651308323913344817365480932278095459163694718244224432906137266560400827494590383975771505968059530203265360242815783458108775462317122199104259690545550283544916431369262334309361645742827675127686764759134764746788379196061293841974445739483071656141551003153942256092273114615600990195763200816814933194243838815695050481580286981599160255728582812103185411956349405877756727497048699822275811656819288164220245513679237333674866329003505283109154241019084761228372597822567955009817387802465524282541651155208247331388826403408600500200751728789351260554494019885337385506254852240847997626574496206157308905260335773484496802117837382152923613002124189749786805026398784707232970791878007288005984531316077363709840682400770468564634431341518425771734798048735196153386561724992312845583961691863704684223641972137493154308385213350405021984160381526936495169878573995314500451249437864214978918453187398916572635272765281221526046953566051651424609719921383117790106347047355663832101669837299129606845994910420123849776021334043975133238242407993092186807703165105019800821527071781124905917781804809074377861351602113882887050896882349199054050069588818502571388211213703388714607576169697873452416967792828629332692262557133762531940559810753979386435785118276742613453298701997259650663504191719474699747556609538366248043774067623413642949562493556984757626992379383110602649473750401638131615936338201206827719249560169542095312413613474891818330137329295157829934539951152281740468620834876960469797282508869822598519536263280854572773271814283484254823074457919870433898451419220805615979340490357251252387413719192148936470206537424999204028937872711827567494255384845433238122757036796558578807374993341312551049145787248960042738041852931947528108245637345326270771805649712694503269322749451033720326523268751598861055929169825160763899524763536414326971918040959659864146959175699535181249804926955468822473087130948358169197596590500479263722433252642861864540143251121589479919055003700055584504970660984261016864576952972654284138650766182649302445453221515492667053570915233789709753198608569665498653990478682067173665481996264334463183482097080494906099522873174848370975883787334562963179951046125870353897220058432564794865100832027205556636371140077866402816361614390862272722679169018607071167004943931573726620161711207206062809887221923114832378426616732700014216165736181627476645399357441770392685630596104225901499017027471702411906353456504165823336633341278912606446260540294886613212438212616847268690303957962057846817708975733964835777447203756180593760239841530439712912486251272158216865729951721937115334074961054553957649691429120236672691846193116105602386794632380014437865573832175934617801738843483947786505792354956068906747209348856688017980275875660380633169888383508977988920166139222081334916433758224211892605037950062586318404826483490978148116154665778649294474351502524693356887759175498866011890389220248227962399075840900140830415796472465582305200658490229049198583568495926937468273622080770346880019591822565286095614469629883189847047676763606876088078238544444685829173562744688646873815911725640120479649893024447992419043181305254592987717501201687358970441609347678427350656269278365176762683463597453428143197613327163987556777284476541761838815480872439282715855121895979940563068749020984270856160907590445526927324657269972142619296799550966123548320798438406335136158706458786095400554259133410092327880030896265880185365388087375951399191419273397905840618992753536559575098785899679309829869756409621962880129987485038216075037814952080950355384314289911992760356623252080806581324494833508195994937899516146613001922582148103843851258607240727797724857771407810857243014720595644390342186152797740464860074878808797794082484683116967761913500073022089478639076610947940740074113021912318188975934688939283837136317781983147519230222202008281057897543310660873582617334431324368782648808880062773139415721562914216100766745209975204132019087861814619879000523915201250264687816547440768201078719773326272910258453017054173027882203935965817488398346732382238345864384447126284324736920739875529791746633994694838366137355327417019367617433304824275396197212819329027918014054737775134495063891342106884951907557192560446422796872521605477400120574355890469112946976960969051066041622918210633183880199257777032487447681734426280085376930490023174954535162016831454984363254075111613889602580047692295089936141720553499852066970442902283562727084602483129705388828261323392065038011816020496201750654376177743750961030700963380546799176985161518237568154682052222917235019957479207236791882263190685131511656781062786766082411041124010382925007677851770241581762415970429300631700253123907020668863483224109302731279966224992973922417979977709756371684155641634673509285941488100699062287909404375194424359468379297483041562960727823115175213623877059061628333594698681181601528542451460218576982891474200180338808506663045491191499370471344902669901859404663761288742580107571704443073250110735287989068211880292871358957198138993499883099142615067498966693705212313156936361211132247748537649156524647476775440015117270320558618853112988912719651124085926060831600404454035666998591318126590487545335656904552957956268378722113896323395454916712361009534388943451325255229969666169221520873014469690761313099056731861799456040490889879296516822216240303322504976474703313998283834454702928514828883323483672874165751668508246360361110189772445201809768428117072516366722320001028647836031690761599110198512408459162029231733602571823907179521684160884499209938522235592468028867960555755844758351908012781567746440942644682518204353188302220215551302840852484687296859370668073673256936641023857740603219596379698414404338056546575571679175011212557520552968119309095800365067682208283888253897933642858435991985604097293096282652364944080326360956038619500758315555328483856947246632240105366431570609366997978622309482354629530741319561947209573742297203024258462623468352632029943873717490934531674646701652309061250781824516289060093144612379413946028596430635285823529460177810855467073485724559841809377351717921182710305238688178203050425688191541634817256849207408690030045269445804323259648638133595474236748499280267333349688722400078102344401430876395810481488851960727907405363758568525954713661818405061558860053445697829986503132081355534022394822643829181836460984023658907994844632600006635849222302471080145986565479657816325540320451285928299439769742210519477797559356635237764223540046420070553120333196625751138661233945392259000073855136879489481202005153744690100019967760435579266024986139748422033134707155449597059449361255403090348408476058661195601100779212238870168451040665135822291115505127271865219029048857556977754891445504519711436495160158501527994858805803638940827604660519242602477631718707864918006821877857196858495983969865219626298029435683850198986358956852978211370346677094689650174684993904152304609936711605467793195477869442401660713824293749934432798495588129544688506622780620635593741757884847268674046825822748659764259264290384685989181442477959875610404527149324652920948068839815019768275106307940252034108415457281900416547678745733158620900040901889465198727178824703203719860707996816405417672776882523412078516495450193085001853533070719976152299602346233142912947271452087534799192473142099352486850824974922128160421209246966876194429005678552806279375640739368442105406294705526243628162558851288076697687839666052597281504152767289265736737163179358625197608122220936141752105462701644580954775807252958667546294400713631808654319221027284615212326412334104585721328319320484178462304329344269916526197752693086611650074437768644746286640400175964773802122008293564883729429329996872823146317303106830261378668106232718775745206985158532939599008484619119389523845905651693169697489718070060101976155418467443257006888015299067022065886032485104829307992115684895155329556739396164303016486782764166830004687949214820315310182625275052084637602230861494772550270314932971299437190770841702697045653473069225933785809403529901836084564373344916275340336552629765607737648202281320338302873685638805376069473164914478306303505448765788585905863367862858802598720638798821194883495761871264056428476993023070465984356112425286784529632757521964090739125795110725143545785477364502855672745006805061528265117565607173156140493646346144934511202625076439772504003962146635407655968460718253152459824659270036845507471485849048940507291208439337998387220066393967147039712611192237812899460863562755701550909048416798736903531656588319885036762217411652924564997402440532659277207286760726283023662254951285419105427974169189275292533144763156790347701646432497609602456954874728680602979592156038321355939696769976494282974312067723405142733166542611189660530352575550483483036839866155451130446046695191461491622166170472249803891311536174652166224947253471679509547628519600075859130022296743545946549397460385887212712197050204078257693161237460220508623310633503325006367909024586955159717687215987268492831795776428359746351419072612950060882523457208991531189046769044042613398544471345159649765974426075957902857669721110071631751951220367807597359367065016686175785570475769085728124331887058232628766876362803308157158582243236577651143040317447141661641850448859489093753339764742051572743984887456332163230124236473667772729636574124530448329731033000047116890427139595806469974731165005310561534410041427482494980281640954646255139077964679179178580447248614478486606459163467725846045623537493502733564434540078031773736282537930091296370708514006489054812547349925483898249854085042645678137099970619409216009713931381731053786754705975905286696726853867198552694027525841219374059241265360079879040563038259984991583962141042945895655095150953514217583712777537279614350086600178983085705990454144206811810237189052616963874150832122913176495509271364219301102497196091796165334512276635912460003355480890885047011785141617620533604230433555263366173591767861015822164848145873252866407824919399639190458208533175409344907390095140317372403476277198432603496795503637530638370471669385084344894168453907185237487875561828418314484855220229825691792027961289858871025436828688440577819058472071670532399657840842971968469899855573810833021394394420157515637086029475593218862916594784829575085825383367428888120536904349128396659035344803854299153446327148704084539861172688002689428249196084437083417551043324175242935532509855049043725055374942002204213774069779459078693830011491877622109529622161561978643010368120595670130547280321396596579888943874407832516810795910551513679693773376822468874530906703017638047552422313988008029495037191462675477384501495413257363415436625699578739357079262494282040370030641998001155766660962778322490989621941293620587922611358116766612770155729580972366563909463442624898253135723284417975191728027342841043926849161980702587927498655405239716230538150947358602576073223365560452073810264569550117099400929376600261265520066714446865083359490433711904730076745782967556054779838736078386583127888717226398410918873179567567384399074741477287742281103463898401587125417931200741401126703916953411795520999443227519535788774643242615106019918256413575652856304255672100437022735262432853886069939642101474997554166284795706252069622633596092030430865256343483681208561685736975425645437236520744730481406976893891105622015663255849870301808036693010231761322905451926825991678193453633729347684783901003459583765460273128035158133344298363020938191450881052289887831589607284930162501793511715099511945907420773493756728878002019356707150762651342064312831627784261489516905655576718620041084606807855447883875636758701898941832397598832845883256334146023524252817676392769550226721900102474470624821980696011917349221859672844548510606185833009433375534558298486684098527568628623246096939177544187345856720388923197026191594745020209670386221409772212962475185721311484305055824071255642137522278858404452995540925433421609168697378831413040467299112515987640038822915618610694105514556194691936536482760725715873189814095907500619366772285090699271879059156811778902639971911311030952200104557226421189092920292934207805311429386664180493058649143509554316568358358313415479445686249157073802345627878532611793402063189254505333677457366320980509318562408732696752433404834642340777364031799729303724179608448368830701894633841867422837948762237125541540053368496171594061172029458949923010859267498908109515858495621129229423249826864773811458657854663483864866130925198992632095293836383954879535129582498406369636771818212839106621459484128512072604475569877543085974617327690146236055309415385395057930544033300401748096500495153679104290425873395832061682169874389234397165338953629440002953640537806210762042218092147700631862954079906092580793424666770291836446630115635412372664535938932222545861457675018873259106554747286123867581585545670844288308139863652703679116634533840600128599645524869053889898478854172843332017944937318492220008609156396080016335444633598241820937404131705566770729902586210919117263430720617635488616569517027361346029144647791056611600161278088881673052005451083293479026762078385276065466871859215206062125446334043813495555408187059009499942674744310624830207836832223301602591674478964679125931359098451923187081780641103401620932826990636357217292160792272383647125996655147004796389208021367115896951346952813148595063048005064439972892077676989065452767528246284410225728547941028851054577475082677578209835390127502876998137149297551454354952055619209289230692959446497891498455453488888150065171420274993366293254767883274410365707880158132585342618551862558442043679541108592577424279311725407577259557184748705664168598969142049286318654972550251995234006329585231719674765266482666511669510586096940154880418682741735322989431135001920962195131473719986412277396876568586909060067327070046224857344749411756499219893842709821732728627627412022219236132699172844511912454388982637011449809049182537087780271051141304834377311140947928311690329605900295470243914970948310413999286539317048303584573860746652985132364124131192884530083335154821682391342464913837194088996128660932086975051258977607539824488385449911971925179875191247053340493874899762356812811579154121113212719748473704574340949721751629956925449388454637637241886293338524072982469535940605470485044647461976067139174428014980564461583116804902430040369364570981761626248679769626213847708931479964063040782421281291151550832335271375878804386267928004973863326568519862477092594815161060460005348276026969535829910501473836760761353856682652245797401876779186231910342703618254533089357566201079554492572038512894011397835616786797992745464954878980015339884047853835828679730750920122161080555096120661096127758459564118473217803642856458006451171367625338165818087990920808641698080408867076257412140068961165331535208321113349365753033241307806573439314437845581996780648396188202609964820995052179214019653937149598008837790659459268748903138521504930640991455694757213834546217132085248359971391207387503124252041827083810587277431357393032908718774686915522677126473433754024554119575861600120807574115157271443864261975695642651048440559587077931779133309560425157631971596122914315420871654401157051250659822797000204176454744329430527334103982558654317845708476541351926553838003475102149500844730807465814282293153975242464977971366924624727922884937231721330887734346212967703591966455036175592350722965906153720453294684292356101337578482813979044988015691159457951062013106082972745617459820543428689585045396376602653846129922181638558120869302201317099934848841481945873979946653280407665055782960414996246907408658875494040724814583676588426681043032081263217579558137883707608502905489715736568531673467804475206140917203030316093913487389876583321573766054730608931849823461487969532057830269459485780666628407535455948870291905707933809629873593242371875440976621643062894813194893875563981623824073498580177866915953457094585238125555194029261895601549033462189994399089556958385779123431796323805975587522446560780292414110249101586883672059302978109693971986597568419930150611519629268712731329252752366409857655279655863861189259918193433015636566637198102487877218634471624977430929940056806229650828942507925774295226433548852090173721797065024816111108322221800278806835644389689707350917177333890387326056462068910720425150858859766739554329572949136018275244505622212458675228349397584823793528398769939475863861385572583880700909280419829937939702334763451091498260136722110295964591289788505784140443476020044910338388869733586452936422631364714079644790599157710941247519674266308038085981946414943405310150320688877350453757014421649377164894250091752195205907186012928645730096170465051994440727587795412758554198872158017962593020483404107644506802730155098639667856330340076216246428154412952834675015815255005836601981086097066009747034861224597931674485296435971033832335997558661858751361966068512391608183907708103444504215425594561893839468394418750975072402343731369898348898799975590106400802539177355781099046880716349399270704528015196842652879945834290879579926835368347354076426599050776125612381086130122712128046912376237438494694730559308953367183949559857142556732559905070119821296813807987674347646761091157403089204197079349674828601249874780565662609188939724157656497419727432802335427375568061792426754675027530925594732420135416391513970005565800919288483119533125790037727514041723838266811309221338814030365624885371434784948371633437500885547649782014830600012523062033093401264924027393979484904133300274480450632466459907847795115137092384405914347347117377290453399000784659155282652806698894996443157462429432989798783962822392749050706117455938703149155265179011156601123265588806069934231422573574557827560314866071840503310827198127403891251967275324344485795532284901165690240469652718921631746365477221463826872340942013885135742142307769920474487490999114612366996957855044219497247666973730786227710066465628477523492006930407034389854395227170835271384953174851449779792394091218205740343137662209953071666545884148820878890147702234762087755105847597057776980283947545469490748759299204823375375262271754328007739399340553105107245247880996164794502087987590444122410996485130495689131941700101535533130359367429827579045655385587893274884600393669207156138144687707807939129267434680333469368379092754974186854290075118846490902972727051255814048125791422393497583701628171263881942838476770530114103483563072508431637626653599176394990138824302443761042405673793821673331380043173277930042486249876098069547965623913237793874322617242595592545168950340801889259911320061316312328288331211923008345425368991218634580217053693202104187843903177167986505194876133042448222890322382914409881081345503757524592276523746528625288198748632221262795758073927917295344587965704815699647243039229757384066710372201076783203198317562723679295513823432892476911258382759968828663994625145592083507772751123491101344817996028928994136624209369067359265711219044152626302553425047458655456151946835077534099103620508525990192067689649297953300591812740192223993049463104196670605025889497793796524547590457905015644839007842988926021327583169010459627860092107520162443031188680605606190060999837274132887530026646148592296819149639820783302890930535627787071970847839585766453488650429682547177291919402032100260577068078396598176006143159029430972105837534991567060129736199766830058969602464985977630203854931103987802203314607056591489096959225415686761609242719001012796281647492468593536312048219775268695523710356115465395132805853773946227354561698108288071667228826014502920510932525815509208987252813084185031955879340901070225791673683059694038786029327091676603245793151382630673497779893782416683182723516846322084268479128695680375635995558362712526459701511813654437228250547521079097448615094467062457411521156622019955525599789836300335184814486734780468724293422041187169816977871823776853585912018867691382354892610562217876055506838300563525994545192121723004604596378022628866515038089239553267121672992103390035571213565800059055774234414659542363289536529092870655561349138528466146831395194962902777441503972725387193398669929443626260951748290472211807536866890839914229109803597167298886525407701730492931639959508998828041250267288048414844112212542816546224514507170688899403263763276563795749421409498110641031759563340652863916512685965904022337902403507958501265414617028677961227938091531862762354301664020471030567950262028488335243209082491094207686213558177476491828142785331855600470625476468830993345598398533417257397368204271562206213974202868011234788342104188109151529654310361979604384613413835117997452943954581577429118752090323667464486554450644326280761133319374383049718312457443154075571544760615931478573123537837346411154804930450701393185483328907072372203146195508500685658010996883501899117056746758073934685212817129235466407261513896821695946073345356953685492960353030547127101619612752042254538186784773240398469389987896705052026861715780618996822380840673468658046667082073893250218611863392909658193725091725662170455548569171070771971799136844517832287967386691241143045308616696043378896390817327982384562985714534581342349618034407225518112657065198153621359503900473837229659475088661296559503683980419151322715273676213942949772568241340339678982612965858769452032980110000360449820792144033558133261148792713379784187989417089110003101888947645247705016832953822339492914179079077624714965600051776298839119556261937824381352044654825807390810225868439239665038868228910516346890340096469618133572618131328349758981323642711447460924451668651921546432056563826623519568379756527004016517653565896427500580095049458270661145137363784666999049781148622281124919181652975072890780432645938231286460779514159012931706135345026669453955777978407743430553492123424866277080491042293277424112909371087405673085702105930487715055801878380141522362761321007367286845941288746962318075625654467861431333954459820951186506258065645552757780443528839328544398996343425440414063798004602911036040256864800784558010526804233556377490082046664061750833540049144043072813954060195277521858094818096452187586426302614418743669312860390261683492827649044100231726909429193154400280491623523247185521160359936316837189690392511603970131145819173947983873578885105523362749749838506812736181995145735759946781625178533924002951241057810952378945058078192593837380506094003847716126354533302449451516291005336177981464933117299846587232066194532479465508363772755381899960468530182746053791181745961933883027708680094570364880587705388983546546940421348192044449727824993927167358510005171023400057039959444081002570082315444878200636293052268114066672653717976982469752330952011626151354637184460906236428034707753353432795583941115438718218400654349484475203847066365842376828494224150610895018327290712511827004169076366867803707572718291961130928552039478077163547890175337615498417613912949541281020091699034175747959450053768558292646733059109340272970627228730617429241245729966588893465091784897554665064932120619044483843158412277187999985187184513237518937026657641236657311849686797372033959837126399753168303222852007801507366932006746669249758393243548373857166988621078981677312885889675494995354291846731812819751601463674328119017688815241375629072611827651030246498214105570101707995755054439052923734859732737476025053335443340061163019441716219937331997538295072537436436321468507506526464582716153595067586448090878910030702554282061270240034153313430763801109671278745854055960080542381890309936360940811230867587220474491097627229746988386952579271748562596393045611284393862773991089647215643112004498914866423958288834737693993258000477645953726998135473118864126703782745155421124306124772751893630289886370631608994226988613368006446396143115814842508320492758562144260092864088059504654631989757502334625079880789437908313970286405790527181765388036495468229896764800079263653022818250216673090936635290767267924435121743353717763974513538527541011301626978929362663225651744766438481489981423295903624595898850169309284993660810352390290952058327274142707897560994395172198952746772072416772245644440622009108295483908989753747593671334735684079205105937790978455194897906745623455901115674307549432276441612944451253142714326112777557402102113409420186564134697267241174224542103009090918419204121653856273123764104751084776289257634319964234522103282678703312985708241533347351745159342900657580871039495879010685883072466874028863958579405219401972437658975355311756402638574370711431906651503087843854960803213709051644908109261257424042895850229048337101736249660938052575815520367763072981927984426766669448800761858366997757756322586201360118893907655906472843152286039870174065889115501005475318023636858496606116876015364686953458525260357595627166853496336567079833131359604498673026247780254279552445366707765369219122699115587925319834352581027879434354340190666126181451763323214755856797140477480472215102115074809026676282849155516591019067257133656336449105465025808490760975828646161482391165473609200554238224966180502016028640527097967972491582926719906752785749420167455672817888149434577233248610579224042171148021132473497611247663432687286306933202965533344494745732549891955979394057572218062786360871460818533532032768861914408735493057246813581908979938639589291649387578749702926640002147667883205391066947745522929527111926620357313384689297546710959980478447094766931850856140203993169455025905503479537490351160637389221858526720965660997999522977606562673114019864164025262039858135674251385586705214128957955831242336581897000195887301417873162575405143504086611589318521665630130579138655178152473097614382241092662257131848488633301158401537692181562749758618212699727805039273069834906317041417946003097154757247373470448912582525948623475932752192220936462632450931561423042992899755990714354247002032132398162705920720291491288344429300818029264362937049321347541948978371566534144399087644908014957130442014087600245356451542823607822841622994342044778809976974391609096836705413629251247478880714003645237440951167026418381460399239153011343017264278273042160261555116311540457995506927714821781401557676795722443429504353083157465040794996423970650049125036491760281321458682754492539448533652772270349307245119204087016624685914712660629444606437810521574167704228590518376049118044595382749570149500689556954240294435525763889607435504779998463881191946782160653029253727405771082771666043347432276176124077027416727024900896581843144073704079804626025242813521556837980025827038292312680798714918475566876183723177545633214628525582126789630328286099298434376465580689831104982341087029221027302925818139318243878575219970091456682636372897338491296660735157664221788015250418706303528038842177323024366868497427587540593740094800092418748320041528954502203097844630259477583041996756015362806460705014111438313753280084011972659355370928026552535105072247579749294633271135020207267890004930146408410670070173333080682188969756624090488432414758581599664885988136379615194107619286810787358250995738718045846849905091887398325348500064494042159783981350444549064890576363619208302874699869428052068299804680699685107458458550486765491194002671022840611382323065157668217045711372617206343420391844025766586003027399445798714140352390619360941005144273854309321699994964053324134731885720786890139189809911788918229355030622252446370992374861461303063074825370738115763793462850031334636002288504039142748059703403804277936174331396081307101766907078967313739366307330014068175257595438908541576527141463692814099284177269804263860211299149270975174854597449890799031275538237660691654232310841381957319367423150341435569428850811637189201949500325318386455521604270272352790216927329085105848139786912991834029812296308576791037166252931995994610759339996362937336578369220276806457752072092448583351306280539755620460155738763198486338400280033580702546760480831554407673792838690211260949768501488668214188821746300075990077506068546824364076219757080957400775659024127497681988782489280105435804020550643036681886671368611694490967648853702303776121137720501247134390934166158321629867181425838511520397241204892149155321361648894355545615676362753602354259629716963129607452325689245871690161919090222079621891108313865660174387890498648947235251926778541184311528724411251827930360823699191845341092207511208980754127582129679953657569822331373268582732140894086432813038744580329596952993395121596708135063772367920081404315930191094805338043722642689703695426914788456686773980910942522461534063911602605959057002069908899906690621257329551101687324535121278212699419031677264930312142637540976163861386072504849902488681451922094326010860670493646229199380481017195343133222673374874178582866520885104648224162830155209455870515334960937569875748009605681245432641018214064393693802982358532297271817754132556900941933169989674153701895095058913308330462789846149125702736450127424183157402154321014625900259379863819568556533830893624645837341300541881255822996114883834809514169566238670363394969341448820114401193964705108674628173540988286228891907599188694058621713163534028275713677831979424040021736933716848478528189049565549160084366357466559518261044311477985460682158082433424710376271380311985065236077272933824645975601868190430533820652332529323149084836436872942370413225475069084057418658202170546381601454737036624291111334492226878050172522146007934240187205748913471181411628742055603830076714878498464788773487320135069348584499833692126338692501670734632956213445669605533128253462697348468005006568444214059272238278679985765031428399964335464154801153565547301461114857972602499719748064080252077664736351473210938160008700100401491126087089246309108682113711180208576414885095477678397261240651901324404474581745225640516189427310846720509111821906272906352086982293455222511536628178099597150870412615246413929852432342992404724023310122620617554978157085650528985956115490033746667776012456004832717916171052761340732119988332115261790241988114557830839179624917998226609948608365607999554622568051355350155243794482425211493017586601532301744962465723270065421121089730776328959532720259445082364631905265989513180916753368172699129525436428513050950577604148953999173348856225870777928635590793024094145938137625485005504930621189783081076268294395358296605233619117127265113151209151045806175057872895123893810797149337837922244057939611733322718706597557027938338876580489775926317438749250364837083048051827344292879560346838897752537429148668918783755619215676147897378141931560917997304940809485059705188053362419164890776715770981159669250152878143858936301036921038641738273044149156182705570079550336076846033153623571574955153821961163796246139837702223692884778491984851196826581939951859239722412405250343076927643723450392513106516050496195072858732983484113162950184968692064443426082640920424411217053764953348667903299035984455923607354894111335964390704158470652615316625153153636103984925885782693260774166114057088140140191686328376325266222610059203738924713458600321345893548307937623257178709200531163441517316294912829994027894891770194013984921653417738195202010385632667494552440982883215945931609805278993987302799974446451049654722979367330048745586135285111943379279621393475926383489274897157806790083343324571074969921490115022284047876745431508794265412490392574220446970967487437337641005529669064335199446914241152881823222131696660830160179529575922790784792997713485380890183603639059925382218751929551123907797481727829193785764093420156186615251372638663819904122865269371477380310509710077932755135009249023621089331221741549385991460866973028717690253158472170026730108712148492291709951884835740203108393390592799864065354455995433896233462666411182547653610728056583192733208776987758958203136542533137623782382348286409141850301933169364922051828281393924697594973427574086946699183513776266945266929050359275145853119485522629480827394123647659042490175295025806380990107991486239091607151638130977022228534695584676964900353418120280281862508173574745572243553310128671273179313752633363368716535410953793922996865626904315543504582408619242095275884909543591227120627337741800179815362234574801540307439351748796357426528053356640438803451117372449148817074586766249314997413544111720537181752335125878620544288517752327958035934099809404722996762750682142361109391123121226750999395252231270868700933860117012747361437425550224287226018939187096319684173773322819651970310212877093544519087625692120293940693930199813937813994880620538671554829812532939659568855769181761724140396257699433783767811388449640663336867846467281681061079336211629626948613495722020971109060662149286369214369395962382246255783157353738393227931385908781669337985417595124601060799674041501734616666231319257662271349019986732542147158404367875708650257043278770276463766180514672112979484828096461694348638601667372394371571693012221065346769465182105103459025911087430439449409002823006340097877495031848465148118209845339566411211490743450361829148168453502565400779608490277799615098459643612343892457138249135132839081446108638258944643582691644105076941919001520349826602538555470613238340583565081086576491931735535891921554661841569039936901042984011617714075509248727941850597661374671742527663063717313038463220426121378968733416294184208683779104724701955943517065585302346267173454793028945928432691868324857468813751048641866740905790077471413820935603822449698578651129392990897202801869183735615636361903907012671726809876514107890756143014616427332351081371673579064218557697460289355779492615181736958424995872180902271818591940001094013921709875906607361014366301939559334508162284396320983490721065603688808718358574770420793031859755742341764357098463727660636291166101874085876880310934916834612936828310941722774061305562835724653403211190458725551213544792853250214792618489436634410565630156239554868918116998972931647688550367756558102179768910170957950079817805116301770632340666298350736874500898498911403979412267291988181092556198125315733149602964180374042276995820030909556155140746533751586969834550225920342349011138697740982170226694992536779795871473863877967907742798088276846616255948558006749268482547247488752601690683819474973425971057979953442549078929947275192878915148080828221548068790621699976612370464439741014257220309357349690564545026514752245371513521777440046764898468510869910910755931888068521969379197085791352432838805621756120553882915810853282818305687335449041007336043656793480217024040533448158327474138062619704307986394941095346839264201550932321743953727535427613225920574631203211309694952783045895330334965829365039947593388476383209411958312398964101643994171105811558019093122059838887494628339480956638327682220515200833016817276428186115884506566258489448802758219900541480296074043441854819709796661038301340781857909261865500149319069527994188991648826984916403863784143931143205900906438110839808663653810397892666771090385894910738895289929167902384284105958504312985089073007086947798758032318947303737715502528408753731051558618801314756835170050001835065747832535393743442549918780472410821239791815406483884917980606830400860842724326686955890637483848235957156323737667776619994241317279284598772266127760207143340982570134731176118971384645839251158351757653732833617534284631518936071141886501000120326031412032195018291539932942158083597305467783759004513452053160923060703286475934934487500608498930620262178052894844165198484780375076102620200794484769028380393173356076899980469983449082403314066255689744823624069316343069783951716017619827262487484027398640031627688467912679913534596080352818611226215625127014089403975428406099858572242575103538637677000861160618706465989910659204564712004314261615993180329745805987507384670045019109588379635801907041760365344459378559078682166018567538221293449833113285517774780351969254213824830619118899105963476378339944928152501523938931162427812560714639668328012729103777323463907762612573752892791908774669966468362265653840218953575216968782762157199930921293986056322187590572747979549421646443614006372517599258212553295357263535495370191763718361928629748719464972629246814726767618734730178202703140306766081076357120142826613463225928110938660581521341271617622934821703613313412665428286655138417285309187735547957820447019071456171784821131814915214479690746033963949291015150737730066439809743893151308142343604230377622442810540720436419649242012938329838739865706079257912881749730897479883328782288792384642233630874566369456129551989966891111887824160086743672571177483629200694406100088232391333707878512855774900319799996419567213145493664920818929137419468560992570526811340202583737550573462557036294350000807824988058393248384654417100378787822649459000202152669537203649694148668427335091544975767693116435063320276422144163227930286664430042186765132368351603967036068176684612954540849184799740333198718360828388904801811383720974902804236463391623650083535108155759136774879817705802163826118261728085398705346419419377138560703201856448217914207195841695215190728233497757604821785116084708805156046725802747519810328479123326813305783947389978525371026699277636278412015331003320352670135224060629287798504021864133290776118203648638999352477322680788424431728664875844848725321760126598331754660044518504481872129172457032654430840571824607853889060149579626651466148923670919486585074164565025389207553966131483427902740420566006826038566475306567433110052634023510239592341044791522476590785861280744083801134326994414549599063675064724545161545818438440065542605924443755950455239211478021691021577971202697636658431387197701010541924061554302983215939884646446181145621402167201597115067092248136104650449760609455273652003415349385179464366818568906520877389128226635347019647177067682019355949662032604178448252667252025250092642438574262756170178530449573998053903299531017579237606040383945094685627313926411304396575204435144927099186751938232098958243848975040881757401440027680612172899789863258557846525664024290376674249501858031218949179699500163370823938397452053926391757451393040776382712306984999777386027798082200103712367458836279271487601024927037879027734751552778596385452225135281605175641068423839486408305023669218821344789791406270883677638809244754133381451106451204566188572415708914144777338034337260023814971782144631711720364398698338146684264534070149976235886895848750919717081880260685114637953402647053115878223321573345956611453466243030105464723806570754503884532281123819647704222125296396537819047615630923703476295537614974580084343073278691907199192726163657403351469296331214174440288727347529392616523970496742101468069880103171635860668876395609150915670157486032320592950193771071253479492496452194896681137325044632388654684376837260394995535658729063050064210318960537824536825548824045082473274268791360760204439789707897306091373032110423559994393565424119215036702232782215165120575727041668534158824423411529970113359655255628446456788792793383349807478839620413137189764499848614650705867312502764835130452202881636148925802950869039250362380800763720089618572296176862244365804780921717117409658740066178108665686803967103190852430244764785316209557770077961421029196788954998343242347871071216183148637569778478953622523164740840072638466446687184898167679481631394385832685684197792517076497664288389638755693206814345657399155267719958112751130531397243368989291388161731465615729973310445007250819560130117645613320913616856479784048279452947489553187888099928313809132890216169883937493814920445400091412071280405784439022230220753375293820519849149109652839670695610147891921959788078742935396516197912081677657710485535329690395033699402952409950120210951444068888254388590007858161908292824268041064741760128833832518448054254329153600956859021266122677624931556750544265151970740173565246512719251935704653586021893945409085450508624908611518194444685760236014153418947679994520171788130655839857810212888110999592588803896937289776794091742146806605282358229322716142490110499140466316552257844667042743401570731887217152378437704169958475887467376328632089189201593812242172190569683805597930923297807807317148542625886466217615257494898492509028040604213467414898219182585945096529724020909739780051445410636404678437417275950439485541512647448381978773683140273973455279266479974517111727133483379784040504690258497342305378589837243691674250499658360024490454161337810614833590191460569920352295703309494066374437151386680559614029360068174861759370467215016900825661509157485661954115443454721724906209303596000737734114345058912378088394878802372568575946192197643468559126557630511033872768283461192915523511761170537627522555217007548460162600608246469381911059168749767705674852366584921924059466856558368904083797532669153799112885573092617696258077617610197468220038694810976434955991586580289491651919272467209744165299426295033907718084738303691864775714327220345348641369727244945013300702547697586094106824372037285513710202953884433283985289134780450266385411321587391117096901436135269575122904585115660385925299581143041458129746241345754728115695118278920071997471951522737764637408381901641096043093542661840610640968767896221760195138331386313772941485527998211695754421729501722020493184341035558170170035935379097820615132344348734514299011610337545858355829446736511439731979214964510796784018949082127310403283808357176344264736135209976673553828252107353722501560571269005235091287214143081306368663639737569842095967676894553516370736013163815798383833389211731506027954402778424087331733454730866321713690722716601806626271968859525198001790058703116763102039502672842563203329796001600183192969371606314155126509282121419467988534577968774119210517840744981561220319400305350294247890080483407016508178250967077772657331204075376525505010216460593638201118172088668884421846256512591503412382569722156910630758525334531146726191406485625589931662011327053690984701275778749694398908792470168885901992389091526448353718569795494082482214169715915040621434494191215770141173470840904675615036038103605186775141732142666990332358274317500801570987829417764746483353472630746730111082589302340494943645631011693624121887864397363985856534628655429351319206275488416780187830640289840448827419765955227214475039765158483273436212540400164836935504481113780288792486157573392338384880765167520196506274396333704946654271059403674302323520243065386505368946680472294740054698297172172299829565699765737305677195788686125343041341670288951194525830861257974670165677251832521087069724663773162833086624418094873363907972939380230499437916368695902120804850240683453330640669752924526497978858147697394664473411633781482905306222758965909897222182004130291632451923657345273147955670384907112898900846021416351365309047365724820926720640911408513081636661551664829819086147919874500394944093035703253548191951366875375141360113468256327490057483174628619026072904753673519112148008091170051155029692722957401030503903749392847665820555936329126131910232063856650171129578895117996415087617352117118787867068124639769543907266902576680082593981616872402083315451456045940481382808347830938273225499329267870143044446778230533555794379192100416278731455600019885460650388132451325823137371451481763649085028447374433921868044932359797201381352603125568232025971572018909428185372886466087861840949966774787093650873782921449375750869291967762457550988547133719146566709270242157210529986271097431387148343579731570309736616307758952826092977529653455453301197367695724470111557605536670351596521403088838917064081759428301351695829470765684394464692511640685619965884698564589538531170796284773753771955593570458369366581119861979832703411349980287585508430226132621990332158561766126612973143760018205165950490089656175916962523349056995125188537524360733772658572770997302138010626203073651993002469317532787290091288728602681237633411977065561891622233413430795993333134765086534215085553169417114266728809520143712560156171321878938709410230398609795290327346225439556349261825061817016711092991671915084665005903304650747162438140291637765644001760106524400348893125844769656244213090764981173107595687377447948744079227133853287821057836828140347268316731482755516581309232361079219736506841294487430317346550811729157489327021804119034892392854989631782552247105414773339754841470386843298385860846802274317983365006906877344564972518545382908012043622320930253714966661323022535343598919416613006026072052245848784220075146212588585148814200887343373787098072228528580596564478283158592716859048979190802160651464965037575209021531404113941124680252820873042224135919296542525798546484248527727058638028837648648348904137105993815895095458769361641816864480791334920678157245506239739278779179294031604792595965791456841394644316346962830015434779899915269973683827520664925683037997923723620697032797259816949014571344592478513462799032588717684975866417991049205810116663998802801376845803582656277357367533585114674915048852482751918491731826423975764579410192984405078998066674714905259619442882606830610033543463631614618867959885644481862456472192623541096333788571303375660632038951744718166686712060413460464374138052837728594018503081910104087522396358111816452383193330257529236876665569888541859517125936278508090077521551023756358771156108138011292764592164516700015287900852236971751079577909735731062831472482600487332603173005316021507827342739831109623449014515609092432399421620640091550030880299914325293219699573408551156399973431746005412482274255547068790689677354213852049356058854738476329208394746162222853893265442790414118927836148807397331095437299814284570042863244702381687880130694518832695034158679697086787601218440406439440180243985073879821929735646723180010072450401143000193740243201936738927016472793000332098563966991213342532917850709689725601697083267391350540277159520273420675802252366977882553164667243188129077240548196048703459830723885234407279700520519488232845376725341891225326326508097185601542761427203427989870608164069372455336912483476930629908869913514768132080095740944624584076221561710158341280877142360517662749067222295202485302368358055237714847142459455901141985983547880863569545550986345419519479084838817277397658750388261867289064853169473521349319387085210469266743042054949705174268859255743020248176261774028975827454182629015482911306944521544920900414701444133920471044824761392040787985758032520698622128204866299075680557597862611212332122813339747448697968968312376115543527224042091406844595918856475281645906295529249339430173361624468089179646703701284870672681878137667309007551633480989439555675728293106409614327003189379502109566110488170034229258645020495394893379423116145999267531205678655812033089881594152537081699104847558307994310411545061548499192660360321345930090327341763889242449059819020716704150500824437289378914398474014370995878068667932717565840726080735406672791558777713284437841318946141883627520797853671192741384380053186718068184912059217637145725844516996283272167872647042752752782321183378736187259564662598107747793894301760982315161755959441332367599250396698258591189896374441071118775740073100735996352196566917783096564835919345814263435957540653074492478804625874049805196829718152304312307741113680515111314161465728964839682669761303153501273424299839073892888777263872837180371790507373973946144716561726648113217285345725276384137912541624804452167433667625900200386359155786838157139934057510887951228781727746672771200504601462973069761185899143260137652399779728261865365638179192070673261631306517716232181703314617344490390167428140714154137863448438904536530380585851756812573503926056159391707337878315409874289744505449795273650999519102538511451224848362497258561014855141164645943654046272032365965331137232068547350679116527256555650190697408251028124232868480301898281846185135305202371332023431059823047402386677188818525529840168425452532456988564808504967276886038802136680304649164746144270816987951787835387651329976138680277692273431971391206073357053987063615160328492921317701002005345366291200093156363549036641743319386553857640135334189177895915170941587217167581973537459550074826230832310569771555713762086484353266143969270969696424796428153767218357364875989526363077785987956148565216075732400862352113737486079210474548257924911163116205482188180067728874956847964293927493664248900373423528366654380522717894206590603837654025042761656036941173984794909394483039903809876684853740912916465276462624976265780840333306471270199535783467625006029648780988364774487441591091815474936642790405072240940018394796179651487220811761495537435894448600911848271420297172401751277339134593506551965635602811313299035413782462149018870729767788120381228200596659094584268748775799346101153737116625935159626034577803728685253779987580002170553509450253639335561493300606524272286747535879722147033492855341586861694894343859550926721794467634276678720460279252114554898239044487571552421205713789621656554006444512962038406715836408605579058461089921793182792273972977272398687844025200161116852796001955039533651822453495298140750976357271634006338563021967452103155536859440200140197460685764365366923368478592677365669779489996851158350833479250822294209730452056665222897205183815313587402390227941814304153355025070987076194870426251723168715037406231684922588839064404135998650125663184985740052146046681669847327741775944373639273506797528669470414292528450729962985248812410809996551406050871901721493619332074011787795582654138995626141641551404588275384020414900455841668744595112462032850115829655165159962092876874055781918312137935303566069454565857837388675667202267381229474742412958525705703502698338106279512856903101946367578282373864843079932950613940415135230165698195977684373871314250147183794139460255894620776289006470070032331035625920939608778895826772349644369588715953450050243803990976316542719146955050652532669037176365255596660901495245318415508616862434585420067031664565186943300043373389993989479995096659077006211531783625818556293680964822564747549891055225298694864962511183059386055484790880874686172503450540053862484322898033808650480147262750401404057090964347733061426205027098557845406060130110637695532742755195522571991157092375140920488732283104389469563986684640074428604368406604859963211437018598409763952809312345804181397296161577430695176332399671214014736729688872029700187129394043477155560824029366988980503537842939377988547065584177792779754842700974439287290978935258544542502854144187975520189662910902977077536760033446754473600460126120277330413335779524226606280003224208931395882578665125161671910911734612271616525883004621227760307353068293906625291339779819517408790435198855512189272087288676073227597227277186427875842249265389677838042728376054276305861207153573831422822954073454801427732915707644225255472999093877460836517015097917861371012074120249235875262393275709971312192908573702795173821572682973837163527736633613774870478552807913740545806541442923593174756421753286003829239831954658209987482266281307961827237819461762845994549523597925025335953329072459723924083695786424213254991979617820143305880825809457815030216489313495030405875850533300130536044126149809893898032689041988470667030518455394141665623370644319226606867160460755217503373854069645644750911112997680332284091789908942243091386998030487752402220854664026252631213378763808077921464754426877625161590604777527735727443862751501116301974333013612543487144639948648995322011503695161511280092409209845253120242694709011582447797033804526927918160296404662379105110079921485683749858622089529631529195255251605758101727411623734533921677810128274496551978280786425835850794677431482411855831177941687059650567850920705335024887483368530853613044345381047518565577802052962840804004090713248728626358829403546532855448626222765820753105209521789602029830033749512920597190818145687048365585384444848255083360742564693559859325584012678192115335796460073988974878236156446454819308661370509721154818730202881231310751234623540983408054646092017010458040908075090891202490071125376999008933172769493519590671226646375110014952445452062076335344491677936930495746368341106559304523624929979303754603511895519247607878546900552526347037280650334302691919160877673218348550073847549720870369349424180001298219821464796330971337145850872583800396606574207171536850571574570121821765764398139147092228682592114261274705293568892347629329392330689941167401489616418194301051182018902157412628665526448034508254114083171170840132619856849655552908466914987905356528632371808304368108678406492417007319344441075104634942647310958800513810167446536635317160908038460002429996988150530143030013499654078028025944771477739295929229592812833949602047232274715068032398271632888136953467117734166041056409895696820263125188999996074540040591615133706667091897732032536979320804971940213738004843831359244482225855308871602280413522111849620503999203577592184187792481349420077709857623278857772544071433179301003911546710448418660591273480689097581169774611191912085182265364412759864312314596727627056879629753201896364518590759556078491643911659717311986934081706633246412935362622269223999289317016452594291928831015379893119470467597684989277030140163717879166929199182812236169156077681270985117721810471538294178814888012979239521119627813049531607613130634383343713085009988095210864573650105263469918927272833363236521212616578566264777321870332182923753478884620015509906551121112227878093750549690593573219473393173128615755520838079440670963374825882264366156853739656856213265897704679746795808198165156604000261834977588412350095368067552807735866444650689928142377796109337251112840670590016402610588537823359283049053696663993601685470651849109234443315162254235647564850738563806019176221051852577100692113862858376630664310842782835579044907610237427833021281697588847906017514022559253013316450230827419003585680280990947955951961910011988765816672121781632463134354718094359864072513801357935865904075628551705059500293725108713544846600397865078559835182370328423846223097743264322729139760510497164297770415911840627775665571963934415392926444676870836892569588123387118315785783603974270452209260008433260822071827986324491961779321992618044380616864672511268696224734516722679734059682026009495366438980047661635851341753266589064987776767807382959673008580045082481968050220874997399049748182993844052920820322629143756891127448929382635328992405031207454786896019014661849630446769324782843153546292643365886163710645867096374217177959801350696987886673278449939696844654206606874530001081493528208244457078948406463384703521123178011330702055299171051881698294430525486566181149327307127554660886575151469087516607227097122401091709247667275651734647231518321844476021769976151145594805525249501104738456253308774342469016384019459393073345516129383474877915295557858428270180901485856796739020284314701155280163083688093603000331610400337437914326846673288638877949476248819283636299985597639306892746254402574981353353629097772336964377096951619838111943046962511898845578558443108665229126854527953760957136547592763328427113941406565553421600461389968536133959790455252425964335425850916659775520723525975605126165272550572874827671622971991545646471493093411079585407749930465398837386798007733939250008909623775392878768329099403104539688309565290291020691998646570537496696080257461940436519593924331058196982885562224125754109530788800015696803317991146173651061993217666495752106327106724906622563079768698264366465133241566820718413361044331621737668193089925037548187636986677697177334710449680362387410759794185949739075730070504360320056026149813347840547115304764168116800027230407026128434124452378518333515556244967766212011836252020634437625541905060468270759855809864636327093118647357139640974744574199548136909145091540420439821085517878008537212782858573541296269395273541919276846815020365332640937897567501985908397649321221883979762256168435387801580815001042295766025170365775633914039776772549531740286677323564545809586629841558548474616541307382024449357529982137798875019231121051636386434813748114711618157097507345511280395145081788916475051862032707968345870097506685169066592008322617643924291597005591084100145018063991987576238882063682833730055104332305424419100386406076141543065706983398227836166269683713865181884983124032791385041650040345874334508140004540754552311800479067499467620948879396214155429490985117960569563342279467056359335179696421271663058868412986824344355854913793170786677093405575042664987878118290128039113218672135302356492052562928360035653021716681110393604019513669125904370169670029573502079473206646143583994777951752651119744259689384665565652079532965525459705643445681401057928415107693556427312471065715600810348206594931023198828763695175621698289320248359362680463896671289168396311205918163691845108262340652951933962842285134507517991916921307101937732922955961242330643806490756378816072758177646198742871126726265864250788221990194905156708950347306621978583769053599108384691683969270622669581934323877918531799821108127417826447588559553683140010978451734925171700948888364581589866488642910705429387645355119911488663961778950829273453374488531871511071621645421700952753431489357286366699796307069554207283255373474065461668636409378262872914649490773888210986116039619253945060851728811349348405008605058536745743552018775756589405282402055199599560388756197179976818495814154713666924758344366757518172495196937784171344055622955786570921764248527732082593578900386395729312098658826003121395108144169146414807379786700595849019487070232124136471298463003329994815966669967227127378106882987983824493857013608428051745209376544471334997716902121034307647343659382933267331131543540115597552829402967079750704457858035211060303344800569618049803304679520227075086410130235592309603654954426931608534462652917039467434542851869721876016771785293741060837341308042585363529749426592033876704268384001032427968009237165370448446073080518564601395258497607853260798831753977373907066795781855851107431143921238382052204869845072837618145713522692925184435392569258394494366174882808394722819932185541307237871104354060881597421953977851374411025626488990711554499020679269346265949466703494682912602528567189745726348603978144597260736819936290661379364948280538905714098657321059519971575000762497488166196140014272228035764348355042398649525728852239898978264722772553434515105819213324613661917648505264159950056633411932631575102730122783367975292641230819864974771143403754878122265602736119733475126591929410686184472544965956740046057162251281399390247487609492208807283285887486667747882297853962536836679566450892601543120669360854821792494635078283542064926943358975418938759590168214195928839421837627032316446460332173892410901392420379497529973651583314785417531230218187801718216993358463255001782815419665404587040916201174019308546806268474347648463461690260542186348116117301744714276639528093972006422547066297465964480969277712152476066578653744818469524874646004717049818214541039784292215773458258702169256696987488607097914349831424347024138131219117408570092115922059929283374304068629167817139856567727777020772829810806512269939025928066520613529299827027199629575427609152684506155621081189619723783182167097585465204387747054386883976026375705532912606631407837101024999039043963923335277237696532609935013705573845177940802244135917916883453039747864813252083452475675137925854895431400932610773412456989158594736037620524501292650552306688104153802298290786258937583592852114175200454630214599572324183793504765326271313515570950413018643600286302555766258253266987576170266198251349702968140218001544279396435930881828441657567409473450750597247910651620608438598140842241701799629656532979710354440568847839773559933729822258305627156231935805407569665402261584579017350826872314504051959364817162476159693719376192317523276698919650929899234556881390081381141279915823642033253747302157766254124659910547917414915629428040000239316454648384751115238500424517583591302886752401221734832157517538200471278993639533171184876724694691194741653869405971861817605346121219575528803111453528852399696329355765279923696527688485129673867799823878823970152453755254987204564663028623891781098740011049997394135096864662242141952683505760110703863919403000008783795395400748097012606327677073548925717297782005690244003713153129610610819246087144124969169910921246126162328217762701021121995285843442206889496539959449716002231907088100100250044521797165992058372341576390214860957825391753058854741318538721907348682204204991016485323474599392630033791610273235906601254008562131430890562805226215845915814098169130470195565946589323368978190127253846760522240879084438113889544257871130739564692764024672765892228146136904001173118572529835124724810398765731530181212403996214908949970895181309527611632084088417976845428334258004490344268020706067674061784188119576892928598811818410962645101822920912503990938831878860791211782088690675369701476344858506458645591075832639971588000176845949852868309317074109805114702420489840339920797360689024413448013485860960642012980640122630134228293249853366778348623841513130921005068489240490700760352442790054903535003873692624516673715323538054224090709362116995204471556100995089718813938386027083677946771784111528156735351245677880962600075415951545376362932529924161401811015543916644492181650632096063461035729235185580232077334655906397104003992778380029651082911510451487359200588560657597239877001390011993719429096134275484910702892138094283526454612004562800208525133930945407484785411611973178406122891567757046897936599222097754134145393549095915183413348295936098757544177642707891671295546036006094605084564684627920550689678979499021100381106453679707103690498738523146692696506293832398766770496620371410264087922914587967485711900125213586759918015380430589332791359713416814363851093843112436229627607395490927342099699709235266722268943817886115641128173548391791539629796192872398410990597734582353117623794669580004554527156954867506385983274568633112515127243998416772981613916376694543533112397868711337495790245316700971436259339171344128551649717574691852433806627414233798453004565544180713436757151480453408346047319034903771579749672241751538550318018409713518516390763714552803296257947212291016355061700854743379512079166922279895426116819169572150054639671904448840964055953190874325779758236651528811105228793640898294074384739815761774371814710870435815685996200850153004448064715039743686578314507393884961445420237768024085669847610992257285482071465944808294576666173141214883209077158226963831227282216360789888940304039716660835310167034124287322699847719877225029081943608105457605743177286473322854452222273510931740646974195819207528250581972524620626668910839951058682102431037736937369095743978933828272170142050934274561654782581063545410723975602209563176067984125704322235816933941766747463469127525519504160733174966179380309992371306129674453335606095868348241329260186208832632119684265396282220163705291181486436384475812883580937409174819118970995878703222563695615565545287002551206178014924328935801918075481123066859892419823975800421583016982733352649243635799475466345158220570978108842151829072256860229355873174969665323474975061781174254044909458630472648283196559746646407619152490958557750171337587024001442074901792675733419886205177211724538164366625133073275909786413356668908493507829987831425641982018477586104909519178830701776019123729467364480556808337518608948606886898317101821001535622227625189296129998196094234341686097455415029468399034461634635279446888599129033949107309083160209785458287430247277022168582710246422488310531364409132932611658480008914030301218631305258407281389438623529527320775670612789408104821756030096763423068575536415657658020737536662335182931520675464147714835540736975363668186996052093114937535661819065414958718068541212854911709671981653054711202619728531770029198648458730029544017476609545556549985478979135832085382598158904330973522251579371937552723208678904265645871232943650398792933766227214813274378172762938803654123873372689009456105833369451291314736052673011036530314051355362069323701611566428473791944534937253446230146018840736485351951819750050778005783648428896108087391981711126776831733381377411695971394046276546413851394552337722038436857147709279423042319834479663804200432575984975684169976801375844881053825970073875597813344594989100440819322533823716311319515966322929403903563206228249541709281133063222860990197017258102275980906487603370126986465494781481694348481993915078695474722223594895469557798156548859973951552447246500295034343335775438095368722358586262332524314605104225536887219924236605303104063067031644362365247484842861782786343621924174195644440011591782872699419140499795803727423062819366470825741647916382895547043511681745188981388280643031416833253616923754702000205628119073167985657328356167494667814794233416588846563583653110790553469233318463455796647244162059731936170293645493594832065778122035186012130569205291429586648915691540680593466940632886455254111993588282024675079666852911990123390993856463214748683894351840095966154500613185962265669911813606844753369185940997913551345985199709980238816241596386801991336732896015388688396699697620791356453411694403254508144486383930190478175209693767659579869172437775071493943753865989212497539529344189902880465651946502671686351440139692788501386312836962912316143509251942417557045587134406991931551090988941352557460644811474876009386236324498869887215796501495014606082027009001345779747364977531472321961463571586728700448523187713209449506306024127480742179048944918376951501199199968264320232944814377125870349431621601012949762849892156741866483106652138382351005005027605959449375867157609569400312751987077974390323920978877981924575692446838820896553030375509965290352911946621105490767222156461231652810445895242493020202616934137029464377404482261391377256495531963033624654401166149296202254977471023528778013677818213519747692389222926059913805115133614113468104891302195012944934636765232965348974919085875017494180755917952548851101772883813523641607397528207312502331768297903651501092648768754876585439147056533591282985452547078594362094364845052539614895688457185753231297495844785831620164002655018415194538647403008947252530616045756362845739392833004855625538925057356225004217727496887038415858285835577469257463920518026387261411370288783459156542415967837320428563041901736265624295702468646785843889415734753602394336584129434835391859066151399925478569636165365612902091527990714755043144959855691371404657858771895761679879501062735644710446051128504648268891507524702785413748814174367677878435470897931264778528154385868820626499899909090722138309274264144091431903813866819628361703319502929981507821990663245789394281920052473671036090616584019677409340337314868977605536454723329044393981987674237693579867372579866692839117758759962206582560159475238942222171605746187402397176725266267507057643598845704168186902725821217444440212300948029756150860153608375580069966186419515203862660763636838452740696323782516327519645086730081185511632717153111690505332934371740414780358060946305148983857144911352797539797191609777740827592949244624057734354839330686087467810377846380622770309154327501981456058174988199649986217588847609940721112994973201712925976929778470649182554065301620856068372083427558339206338162531205118858450968490269383795999382976591123526704934421476171241601838115468186587967911098813399650068704137959195974534095515751745666255958208029501634954632487804522662407625263781211849068168414098539321068572844024367923450176280135805084275732034471443889373225296231490366908717749347271762771119930182303494924882167511354335659954787050224089688941787298842579524795176594532368115005876027137091022642324843667649027884336537077114340663334283131770492592711361794566861913055051395270821590946018537027801322627929609999893507314853380223271156125846447449938994450890407866935761973422615770201026696545469048913633964173137466062252333430532618795548106512906780022456415444420904472837744138676065182855043634016701464068109956147338216041003914499575036339774984158714808394342141184910904940574155658388276850695173135617769503102354685557135796513953240393572074736878793905895529384293826031954158654675651063918563202559770249037704546042502631362500960326010725911541871121997215133484270449697232033327720991249647224587507625483841926577171445773503725330062761215463167654847521913327128218212730591306929335352165015161762353695178052364319391628033246671248397760113806057987890396902608850015154329502986210965065066086752910227412828273276497055870917733702695929221735637810207753693708422583869594910844599130390438461080043407546928605567952096698549570934357331079537504034179126386202327004580811783409341156124657066114734958996565951165790621987231757873628335294381483008284378317959278504865275780692991636581796693475142644030763125494210345302942925002453065970283765752615048073655833059310221317542633682022296618755832167204704639130128776187425320271298589146170035737378128422988937796789970536657546636427037753640018929513039782100041867333606982107302326788189686792568686065754739124376895297846051146299557178021650613625505132918031264220382339472385051709536883042041035915707772308925755657670566410296608481893553537702534125641934976721520901144937080256933688544065167220513020090761015513115765489606665074235964006282432546311598433300000660746304137791366683663614342727641832035007271772665099131397418637939417684866967785503812931761247733438472162459365856632104644293073121045473716426219823578083275256276339220531589482600458855459611815952101783848777844588700713750590249258314508995914935222730436748431123091995165354192759501983491040119923565484782489746195034828052232044880457765271171454431350366137549667573685094573217834945321620443815416855878417090715924947528317938925997739198532281918977957046654012214210910469114484807558386235129349699712869356565697844275795172819258220637211811671768114399678139618242312226520909261244723319434960693637848483202113378596057973732732182930371012474530786113520610634068055048998602126222711956998577273880957147095968034950415202359814718098937402914322626056476927374442726918485735026113620519370955760214221537439191362198725962720348869934710505956199271534579805202922415035313452065203858679799604537840490598367339675150307742380814244143874682686052775828495808474041242515823916235107792739132439365731990413110925029321007973683137731703981598835019995930366244351922736276583382064226916392729970396070765590414275271996033493703856997465629662859565624589818815441019000819537919174181140628943092689484789871107787288461532690207117361795533530305371890553851228314867613282888693526701211809997514752023141715323887268465157576120456704845800823130203470814440096518544135791319452881582378977728293963655131127409409166812326696156586542282617743916607733336889378605293345660801078245551951149508807805715286380859456967537643192552483831808369125460292061297759361015267554465986696665175472907095046618012806021092154092694541198012333995563616545952338699034551073145940464403626500830751761896423322879758804349008971161805670829857501792932607172914939276868139871575030614506524482806984025715300467582238810633443464864594943636288594074236677920294767520295852099512540263048973185868549382585767664081434716365009169892367274981240560471105238620132000211060911251941893037802790356635144022674174775228499381831712798037277476481699839718659629716279970646149831065434609211362332809125456226521290038457278453654783463030035810803638454168475835119419235397058829246833579619678533494147382528199855801771438598454117414740091199005896130779849784175898755290594469586128860309056631323090493684226844934516655123131242594143741089416629699680520016103371813573887306283532552800550658340847389770786893349828844081183180797876011415515168300885413141112976424331786937844774326862155482672773988792680940053181768505259110615104538954615990260216776414576747402180467707678837687060830370361578671425322228064937998378751606911757415330238439931295027645270682960447690212127299307020924197786153149747731459113680113162579400440851345774969625654613721198978306469062329444984819558561989114173315583380168851121150066333690839969665084481773256788877698815786533509703723166446865308734072830180144130687836286921850187423023542806641322069749224025540683198671623406102080931879736139253305801569355231968878517465216539574676848063226787983654269225616098462083699617411050679249446765722440710220341619707852432145636322277096332083690320732298013659278780936434962689504542939590021583521556498461695037235232748939730425616857493950143105134775622619275049388434484642831529766333619826078547049235401022058159419304345615111863485303305902748280071881663410332856243930844511393006939941346155779594491737048822215596492899832225281833511585884290516901321757093060273819454970903355897974770105594605432009986895640937115190774190762459179574059036880986067076718250644015526518084076380284557459427559248070388092682036315906300023065574508800436762652281986774943284307681811477637407931128211437197105365962077663876305599835890629355053054763424520408110894942356407511112583183969491028210737649170029972836902579005574802179958036353493249586267219527351765838359475174094873621186879659240824583325628502080463116789871291216762753163061595247316340320653510512789161196311805080995619375580996063657357217671595999756454631092864378230127924146922705706063174147191339016708153927704515181186051771113195688569135550448880729611572443904835790554824674765755841414163212997757769939468121221955989327863335164156719499946624176341734460818430907888008774145773859685929019042124970039074448630775237332089340517502775906760575101250618391073185027370886571906020926031543345660892015367238173931462837847608324080244810099179500927054795832036867581858931521755382430088670251255316564813340957505748026114486900442407847253401130929330195257015267379176131740192418889251952636849236473846780659884190910164397167884838719173192903047115668589083156666947131446239216599663684391853698596847752380992238608301218053874711938749521910248129551080456018050783643993754179203887766131391889124262366648483207316226459346840474752221400797155336704372063722041318554773673805009110514169642210242876327624488442406907993824534271773559482437954453168431541009107728115453927643352320408569117997308824178795270920167752254368852471571119129050893530754628795254468219711941727026926819623483014286500723762791249403425080465581910499900726440051970654635219925509101078783338316924419964726043886341450389345165907949686941635060080370758109904584392773728927574670010175941738349015348460528265673352811784401017004930707125240861554591348306901378444843467538628921857989827980163920330793130075046559387791264093473273437529646066554166775318568554629713153540145760076818950222723020154512983015337798048306934406986960391787344197792012088184396703965215103075481828449014722558744892094649210849197497455947327341579149916830099017980396644786312411435811089226818343161588142549118412054939590677131005941288653556122317748098918722916852040237914790844488757039861276902503239875730893680763285128970339383552371514426930487839357149538979001660133327147718458569835234429340122477515463435550233283935842680586976743194976863476315185303378498614001033432510575104514175542258088859019159443307214205197834635645639498191866118422875211335070773179128633217273681680252923367562306815214970323996413641223105953556636620083165642043007434996073362127493341306953894886864783825343109294482606535042209811852343402549655764488293969025467456443104464459026262321382979653880315169287821267801558154595799396062184876977327380130061384457325387025103457695609748230346461206449916255746200250062633406186963813722964928266775534327060526909600909031127819156003783831054207830631687198034545047366040827499072954875974999891146535683673894788835661597566497555485927786288452168045483220077993134537038945392970687668114739667361709111581416589616402344074541124419286380287214574709755370374646264047434501767303680564724206003741733909584025514098949336350624016975564078263600771973343644155294311537758251450117880932724330038952398980424980631807301496027288696470953331903822972135366905345716914436950928396378234289546731246746754716138378044957537014700120307834049019664065334280094480229221664204849106742874992875089740438106127495954055817166593609346499034908450809757456233894594786626355694566023020912473069388388353200561843552761797634036754292691306439146715535845636819076626226650832727219857703574633302568197817311054455562650205364266528537581653467303114769122909125622497842841617702003510072095677033171811221209273211443787770590474381674491806061401650940398619330270616422825559899883858462739691435928749202348678960528614612610945700626354962148772124089518138657875504210350093010918588971537788435434341822307015917343234229042477714105959842980438103959783975474246865648547762027401007671564061599281606070974753130018933220565887790017953921139355566298068058605111402894924029117084474722086591342066270711754616925268241612179479068615567595324831264374023407169107872473829323953856894486654885193699508158539696291707538674766813531283992146971732845176858010300041048543489972027686938411747967525265358477588187026052414165414424385473742398457513874814097995346122323407569280738962506859109855249892293459317710468922755301831552356321936936643471235819204035326291279240058772458700346771057750725064404241783930095024006424141003851407175100587304568015726861040719875960339355572196821442876951248076560313900901347952046379124239870668559876177246558411958545547365169805465057196714611201939153838492047866757584608612476418392834661287723889144417532317906246599385613864854995859565025061378678342959323593771850848031317560609131602676918439188482064900752194048859372546749370449968370051905553513696187099786802503043807024702867874807205426717561340260647437620409903957833600343588144097135869791570370797715341944644486180963966851336671408102518135947052714808151171012982129399384419668166825116568438660072875274457792292419920348178939321375738570897984511231735251099411326263700752017418759639434561059624902951955950338875105188346270449419533125309717100068955555702618749102858297496010314044403736948415909713945807633631099648377753371632839047195270376304440286921057655627067458310259156001329137056247062193115764591522030083197315668512721115348624214092896231939389644974271463341060026054381453501502247264504003580803872869779156346442391184231530654120311252220028770157562781435359600681819568098103520734973506401252166015418027141422447237620346403398127135601671907995932998951425805148927310669362019419668363042637583635977809304156398953080222270385877760773685128406347336207763113488751666714879027729018602917676900216281177077159711509670933396509893412614498103246507065623201712314655522225732313404801415322953349140939335443993986678797425022791329341477029864906971072438016983495052634327591304207832217169454168133051152694223213870639363218868403898582604112326600987626842459397097110510208536627386822096584382886382497823099369111993426283059198539184745747320058522504719642761967592753297083799724050924767222831676561497655652088168159352432146589551755758979622380233430915079010765943291573518926670973783186741116727141468229094149855537388347381196717185770209766365079024736369135118504422698018543495519940460302430009764111167999980878009489380741883387241438131827765033669386563318782965242317898162755720928948773576653607251685955682256724918656151695543596086012698539100258060904147787918587480641716130073111290121086382023341311167386694937396514520149102309254468738301629913755144116411839612246202126587029724110269736118250113715183336423435272696852107415810875010178050071016206920626501546191579118707997377212244057245130162952505251595241856501630754954124484785048068401651612935524600274378116570987236931319239266778447600868303959282586705892514308249331255302086771532203748000029619706370263822788662272327389878371956905198790380143918714666065319039744946834666738513767381702642181147175924196965450525830473069617996556232502715357023024051998815719626097565871779018398317265836803100173792964220674761368392888398726490435619516219903722925795445313690699766976336264997261004486266480502335021913387231797797277236829016018781438226105405811817755742608213756857368663653782267707066469479136556897946249627303910506150264517262342394699938081190291183049091990883267435914781014074241532034580542078296837505668163708535831263616681406618582615446109845352375019943013711644349070227826901804758715597071675935797946913077489797015802920208794916306864580004973177745407973249524999508874372209174841958703331498017403599905750060406208841585409806755137785106679468180738301468612803442325200199423430093687548081619262267615533850275894961801060235729984619894148197903010106900675136797875843329839132396332812493677048027208202056935730108362287960757497949097977259431059263576114796560141018452859472183665530451188314124025982360874379525867253149429591341882705053148225192807391242923987118466219804988013916260536878963260082290636146963210835768175758488821750940809922295605929185582070180846384790601846816880693514325112832254907781305883734026537917204893575076041801333121089428901377440043312948882621803323546792021690029687667669756128517909984307957000289591760228294758107017195111411782729778698160490374293363020824935072913684592909011581769168783281575446752162995327457098375410802079766901330102945170492480123313078241613149854955136647484775639388662951437806570331489773942838995218438857010820370375720111888334402529081718007231815771025218830883672056652378292903425350864089179244984475570154176827608040381857807906746524254106727373476109035014276920199627481211296546672951793741289848042511560845360202728042022610360433942599907452380985872579453147218107190968385951908879214135757114434636189838503223029508935365215861854506891755966013217800780890926685773668131163853604878592702672855765534007444270672575332802731731319831229776948937987114859829760073907222720554150866920608738220288194984847929676570133593722298687358839347325819644412703900000069393677544382916490288812548746351315890528166601663687755028950407925580260576491776778586257612697842574368728374047381268814071802335419883488181817780562836721597883591729624844843511597118509046111194395560487957638617705776139849094456876827198250118367151522916296609057357019231600681666236224868557435008851455740333987236434141325820383159432598866971504224285986572796643995148805205082798910401942534924968443365513333816996074115365390356930892414506828741637064099083920337161897734914792006576045186243880951287444810744000854982092490065358628248286491554712155912987997421254168397793244920392148840100531725628314555480588012425818168130569058753117789570381909749359638285695446784367265981921146496085098029406613298382833670930717458029017376326921147359630976825980718152808718923959651991091496893886223990926345599210778866472106998757154876924603625158332163565606619450824631470330022055943536057008930653470718339439647358340132327496211928358220647332241315293257201291069522266974199684503392441268736726278453043199812560973352406256303365842171583959243875906051231696645899052376494637159162607191742672943075983793525216202862400349918678665385691238236193631370413704044886242880247097216468774097793668267472568536302829429608809969963128922114922361421707812947097824209338417820702237045213599880556738701059275148276221071930558778758161231663920046615289753241474146504626450243176261226787314702161148870696512900416796396684205729274459761962178413731214520983714092028138796304717062161770841829220005887858825500407668806268421413831617513543778619365148182532611911937010266699213168427000896459427110117203004440280502280687645415880514341036515692776243765635863231674332705894827230049925399408027807259333704950021429948381185547887790037124562723068487131973891526480991290357990393726131958113339431600151490774675545259727523596607130457224964819082140353252676478116013198868650669465325875651047312941769958650790305155281384458686464602877541151346798963204867663576301716547440255497434504576377895822885733372291992150636726167091737156169916709214297439358954248832808981989447863201428282486752426553667047859305026046387148148154004768656918173070836214547464196401504950918527299711432889329758584044990764551290809416485288761102025793195941435824013090160434132567038004408306832795566344225654160200492495510100122161925630372945531576197645969040763880373531915619951612674440066027934091849708763655770764849582157946586903912370232776227667537465314624818039978547099711885591272855896474266368896172758974649317604166396626107275387180491704523081822441340225140937303553041125617413348364692081768663767759811397160844313449910773879093478488951837488430344799635949574754070194655279968558554465053927643091339180029773344422359789220159544137854452397140412674146624986241747851211087229771269646309774877958137801147851952607353704831498725754346379040072051467884720847191658501559804639722573612943663934781073186023666416338892223407198683923584418880948874114757181285009323815532310325764026178905244426016239994406698453569465850688875049378805887505503438003645488089689512892933644119467698633277421151213358105940504874042474567019780843287854476054015870222129693056273660055423815284899660282920676043622654338637679322483531136154808395452338273281255191125641031873105359330340752481025057881427436480886264384865467192136558552662730417200242743755559720838466867609099365273235135519283372728285996023934890931466015387445466482346389020571565984492301556553499830404871298733593855694905390627864168160692203400567771260832066874174075133411693350656187034516873477529700678671348158421330677471361296102832345432659027693193050558852941361780958222019397766740360202349052992037896402500850770878696578851337891661391512229983467780817498714874691142684936822633723174906883381143538500805281398548530101251078745803779524352564781177966659490632026197692863677783702815511956084085006190262877345174748581190570804528891096678982229595647940247937308644224540404724305185746852506269682801388564034675752034289847408226295955236639829886629528920736270352143451095225315717781100921497697910866263721558197957337964578040390530323336405713103993761262208350243097972543854722079601069459362660939130317969747446458393933673866254776592622798399260082518904935836278436901700096693841692629225844075993560343135408522260085385001658255892500711052216497242707548188004619604088017857239787686484905384112391071211097573174123439129350345962667056668958551313081247015864599696381460041798385612008549052895186360439469830750470334093161755594117749688805209387582946560157449722274586461895531493562227916243652530678626747725650993878485965390863613444226248512775640744850326790982158614659242285073395774531186546976670364635943162487970641003048776657525695129064053948813900797560241141132546844518805980868116471251615082912062755493372668840567417813497734985954764560788752991113386024529397766421235839979983659984381064926311492900656195504252275347670563011372141114439316285391695761193973941295334599356364306384062164533114949506973616880028714547993989763750157798670042578875992678179867237460420394094969662566430759507026582686975215469992746184691939507054765108858018978826624425374135157645935796283122826956286851807199804894001707881155857252886779537684780442090774147627533162499118359288821598498302141840406443113787334628034904018805741252131992679623117362933370144432174714604922140617584819981680356426437920065075935089617536154655131858053216831743489910860113956399422878910444138038003367672864094296064065915865867110163362863446130127578529385591481420199693704634968200124541254031515258021042480943174039999265582120490467427448173388857260345311521785323297229781672174063195400023293729739930818654470400363337002979074783334146091439424013639042528112442396978746580472470148393873075058513347949969493213486424149470846085592173214549733535200179315576926746130530806008784854206639595046563370373196661487640017669847184280260634122433120074939193693641336053592252718952343375259162015840412500610687146045661011887245572611907191869002580415109256034168491306427464837857791198728835839229725204347128703483303791112760705555517396148816881834242276003918695235307344781768656260124753021597284732852154886187181733851064422502898675832342407104795561069412002770065471050483801919233277077625045594010146750945834189297116370334251830448646403331931163218421731025766282393729633001345860977354883345217126503983967299013658188366439796440010983741744212571335167228854112320314151287959450139078623089894716537818469216667577387094753338055988849498403336912163968835768529528047533580008241890264703733807185988316508879006290007900878158109929473083619771681762097986675246742398003935496291289363413762358536486275638582359756968448012539540321418116862419636256965066710692416631600829428384485351332924360117796288138650937782086593996660778226513448790151179190511035071513069745836842707155231672661126769082071113375442045045136996837423986620270894221350165125770564780881395357003338463411238574581085377083283852302218281738768983059736156878779413980042199773920044073023750546220553738761204551072711850936715980638432984598920180795953052762678410395851805239125860684205067799380109635516561929130553982792216565271621817328411987788707169941978218065846945547747534958067987599209055665091851388240189542577650351705188531397663328874230842730606177255704997803028787905982177777214933618762561687588580492371103434530782714513419125207175707257527171371827274905334657444386207454311727991503915384773847309842545670386788844947374489284251346174042340725521239868432072930854364954705482261210778043527819085449015556140501084639810486991637899471088713452183681484117060744502158865894968454772706680008871041782946273728773140102506506015102130400330384986958541693734838521394172156319038043904293975432085674243474198816170433776170411774647214752931245353308630811269030737327059633348933002589009640007822121729822895796452700606380009752596395998561036097344318431233371434776474742835066832580901000122337769705209161555257991103063937715484070198577793345293718007234987239351294184868823772908882113047823338459270556159221791587839892997742697668380666352931640737655523137447899513097381142959118417102176162504499294383156446431070005514032849490713415864845654578526799734562118695350882660646204776158640740456878997401983172658973485432468022146787271586366132095004896698588108237545427508515904798895393965067121901129411748418248157865141701618383976107036255043222619062430232656789638190507322229929658729841217999353577381976187989843634610008468507085326154452836349570823030466435873227366287497450926716257954060888440442293540347520298155195970490450552880990619875274101343835367337662164460593368449085825579998517863349405873470672069922312181303716196619147716049772414725736251142269580657889370121179424814328702032309212031422396713496892539193781288663158079795301721001405961970625249757961864811647790485452627796049112085059304268741892473746549270751425953667736906525114990489254705728005397200971570617788685975103098726789692097969904686207682763550440730175642122585723670974940168672619789334776538166617912768204362398145109609735386032044673632285642022943970242183612480381167035573361393512042904413288629900883971467106351848359276416992976958084930238865872946231819305564730898805613803140493050904749870809499400966904676966771176224039830605709238871746746418456896498452331110760358988101899856450707925205013537829715597300128959871720552020203698590212197150919297945882100497739795737653954751732322127836562766059340866258529217711732148544387496796564492298223816360891405993776387700570714353243874034946312615870132327476605876016611701550506320982879071464995973407604836039759892911340439128335265382061446877356781722746802749805455756755379432969810879241469838812353007505299910514787963183441843425982143213380114787990574232947465299514457307822319149078552326692832318742233653469532969160538929001425366774024684131496699578098178640244176742120067184196536905283683279439267428860528171124937327545230079030087634255933381503378674280024468029384013198853096507140162463345569106473925485077967142196902607460095573003681903632488349141416589253170151298841493659023213575928255963367483774702644348471040948939010372118651892032640031577306309368593944892581817734585537596172470414850675155787637007304557455484752778749019788479974401427968031799194569520920091959132109811571068892074239815063533419664044131387826692383966856636946279386817800943788323709907867754405451035905980973508839598765752407497320082783191993284892402417816275067362384384489441372990077638562403096127658786420879137762365299153566813571249482281676119212100299408883547874027586750316565610981009380571721900720623900398661962669009102230476922246675098272501107130736198709598200503768074668538812091220732267033159754233323359058668039234280152333710378806133183181587412262222999748033359285603990747422972182777309471006755281517758437764479422255228681848575086026144289470113578082860500372969617128989425599396356492514951450334431755386315142361186892923814149509376674451711397361414202254103282835580549983324373725147330718860193316663230128773489955836143803521449333533397762549834227998029862084086466255896202659011976204810377495781671825942190877101917837191425546034845996519853775125604196833118762424438381630045020490564963712011551707344485677873654345283069924914293014579267269952587870049742640734973448592992866656492860784420477007041652841070775350094316512378074567417908219341713573717297499204655177497632685828144077306821253262269799235820235747988809396766805786820929365952066187445639228360452332508247175631029574576025148459526795916806684871613032815469968771145885846773032790569667414670844617158488229876874417351389734815875390589627931055235583999788299203798153606234341019323565095012598747786963361451507889490044076260706730213495847126887287817580283451438247135960400037963291129231065533898542745644139689583351813657948375422339429000565209627222568526277299248989764955720985497435243000001512853586285391180435093237826941403058733827353401829942402014976183299801738696009990064048117800142894467459209400800179878015679589858842191842142391698219436279817998979370062495663362158754565394452701579045284864645872010288961506922372716163965497365314294434561016647838935126041025424037910404182406043811439768566167266606634185885982242219235742646406463309031191388147955408464889215079620436717343788932277647021079313622781735660538737202652649308828427764144247024858706918406621347128964668979912329278444348058449229165581498565081850201072746764656342580291381995495389238084799532806112034078474319978851952988020697995816938395375751034248037891358379067839342176827788497596526601205875713071117783214865313832827650676947618557630893906141586855279606750973109290769210940354034035981903849838513730430966486141836009522733167347360635804756739542698064922154886229939464376658879813090950122486269549350953714950856216433894593439183126116193155176715019139641183661095547465357184339539989080208020690763588633465680422966370679656096074343091183016997445035766036519365034091357921735987306347124742722546273048746229775067058153364883175341739369904830584129425760615340062021907786575182924983629332327636379475568145651808923316128344406353612073015846935874965501361541697176889578766507521043050016957062920775448768370840990729067746457795626291398523238727090667945121534625303976451805188705560344068753191700743790539620900240909687166190268343275012443127833644484923218009387351925210281122700030181466896988995897370733470769089442281219509421109760142143803616178374527653662586223592005011340803301755932088502833647242147207014537049680197688548125549255729975339794870624573075830138743764336918973636762079011255548740843996312796533237351166773984459875711229059253489343661922990437283828819903808572802210097911321863417773775551402331218854257948376430246930104615686689463857528122151744387493423122138963271809592353029024187950888832963767376472640798383699571023836801162740311730486567638597004449153724706332362953916785762291925171588263365355256469800303998871763459196792317451038822617777995559489320147842565057633702716712864042987530344136480541694167001861624048330961957849912929975730481973081761915233320805745113361499351198930270509880648641963358007041064959641059351396412608323667846913777130677596419517711259668958985991439162799647865004104515023726184618810575792801079316352109414131464645346325642275947703285085586162803175697771518523133755777321764627863628781356614240854646783655921723778182277738526659348107411137569716531998735140934539778742267783141283254126059840610827411677094329473266062791974173020781758908577960596973339203414770989420602603405619363483195495208454701772388719050551559608538785296456844061563391082272859732560667901926661649614614814182135617336072087250222326606048672722246035106623045572480368179100277882974821963073151895666635819427035787745612169507610010210132522652485866067392840777853080147423699719114553639944877605015341760896127095856637577123628032334874576328561222968733173461776712108998751471385556131528918042787127897109099495147862874800323549500455352065171550955043988072027288666013874630770324020585554826183929756670725670730900758304582001215331796877667473541709711361982470782595899642086671008112722811845459941181791320148882783587981259898834481094206404017426499758072996191780717469117644004776094303453080510462973191930122237665637523589669997223133696102063226813224953252911617561725824459178551757358097877420846191355048298455214082119996358565211897085513346344009665670599855846346015535017497930858421774275308139169519398179433693004272895701065858285663999124636985936793605321356392879449072522060871931616153494989080962912224714442365708427982946853148953579621024372389364851472601981456944013569613395535027346380854111341278106611044661682510212557158817149077397915972732887857307277012690864917180550931652778858925654852410985060585781794014337495212961265776719662540900820413103131648896275217632792809308891714357334173647498898943349527329411504780008260466294485044230823013234681350282452255528403070171842836502942771091816895880231737745236117371159811412058833178903811200387261837484364000389571720873395559405212021026087412205457639327681824571760478300432822805141165332762872506413126894275200495068453972349303010864382641080911310900778359439331800640934791423155500313265769253519987117416843783249510235918315239658394704824777438234805747498458418127267094604888679105637989466868443001977225753808702953013723896984512245983437016042472789942877807177458487749866218742576722236968580639777783890755241105543741788761340805269513425642531323278034358671550450402766110602121781548636780270253077282914981419369838898347763605254907725382548995140607547842570767610332172027584132854996543066094649315897482900091698062985793228905154009355305245552971227646556937120121985715103423264777194832786629751358783362792818686195779171334109235595131265353580429385482425150679514155945912143744654510822629912910102247423560127210459055577658637190440255389392853230259115265654701971699897428973738640840878561614183418722685545566934927603387344634327780594476864556918184947129736067184528258903098330794344569567403415409650388371289710537026881037257229651226440861654774708500188707520193389184063645222659989393697232747315283238756925327365135231463406214859588639428766839897913404173681500040622062012233525298719282619138484911281405632130469418881349319902002037631027621501887134814128582765437464148894642512722795211092203733999866017740776083181474346193069313295500656560086428948968261069754721353655025934402955603449089266712816061084896200015080146776227873401828037798348492099640274783211377806961352664902768343753590370019756805075040715748187081140454649213511845488155901039847253090699366335797273106129206461745815833801378064124142870901355032801123566595019324790436863879680284522002633276969420128626721733066770732591557516621542701081521735641995468400665725889420805852318513730385344892944776291180855131412928310013544192849790394906790537390421700234978713854131145189803133213302492395765666886462294599080089652389542504308694707016603056942770479039602934911512251654530074409989405940410051404416434087145074497077988340403118344212030032226529931245780030081709816376602939323552064630570885917129054304195088986760101565482923443177702760956815337102542142373119318043500542139587839814686059283414598820751772546429531606839205741814650122061599909540878527470941894947344918823982087064633008610178623849441856652287173017186979710793856712681769115352153990026278630996615263779948193588623496000091484724997131143783140133307509343408074824255526884880611269246701245790351671726204568885027742371044958814794607327514649334941101143929274450080870136982604419506671384499980606857283017483971965687167294342875009862955616923123736133181265927260970877523519794740041523959198480924440926432234449371691775095051624393680803453954632015713610893768879400459967968989730798250824318582766024166670801350107611979818989282606512782496245424692119690629050545864322376512378838074795106104747585575955687939935711163047215898036461901278199569765007823767270662179317181857987571004706703680399415418262825351175611243842305118214815905403572441083297965175045456308642119967843342289269478878659872713093373891239584594852788352777061256805811359429939302127115034870705896898620269420591633332500152980885991697176004554947062264345387342725874887739712386076492346144875446670291619154954941843171669454207532806811460615528808102444361322968069533503224228625934885896786204340074875163732970813620393526340617357938395274376156229011804330115359870085339300746699818336973434644527162788612146987748400728757642455178553190587918103007078218318244578426864212829689457812332320926313012639119418422847354727092500031244718559674252535958759493857164306595265321470471280898033254950611424010260303693707081634899660242955104294056408626787198642548114666663761554540194362288053121558904925259991780278663535398197711039818858266816505798045689055804489765688267471069951722937504649631097057762770785009493764899795793135102960624479727064371037816764804050430264391864231485943666208610550300527122901094336316606759234832975872180052339880961127098816831206031730034402249385732343378740481800211336571346841988498440478989449727355786029041087469532803084023339878563441002530251656965630022115414332182250958030892832981148665989542893359854810412104944571408710024604272074509378292454679866850571554343119127027270012353264312585156416852051244396329316769216362368068427520406523656101925359915687938192138826995138736752420488847107606847474175106756392884420745266695748147176092788027684944480089899432403862610401024590132360179337379147914789216231185359934349281254954806076652361502921623737392956436788414853310838317101426817218683365097672226752040162129694828703588736040730524483991263048930700590437155710004448907407264338266288369016030279978588062272004720682550357307125578232054873822220300932451459512774020620540115512567869318996922704740118372044830070954638230608601754864308577465578029736744839100708049332115013668215044853870146063490341950594195598130648737925852862514832284104598460921269749146096821699944810704276289088062522702586762140740585310123847516220753303956620554927227381411187679253894863330303718151187588079286812954602736792779923533060544881734705867937120425110970627933023660460194542927984278004361241595512339423663037781619793798784504914172493365832630534794532056859321700988749073720594947111445974829111383236866537409498734007462664903008910522671016852598074595404195135742928584395148662349850752599729375134457811878317332649878179735145346509182276951802328474422493540150187517561589844283195770538625577978044368351798979999834744173416297885141623890095093139442692429982313360754056362714464018887225780144662886767071627937388115691834900953838268266259317377717597523602806209969165975097820698119515414598118635425439258460612001208674215224906146739236765450046589061488929702355624193529719537934796289394344803742755213052438014325237769771238178708855379675383307543343170449116958335749438638437856966108391619473652998094647705250181971512613960384588649496000019363761680665082150631257180377396450710594249793675923912200071369343563479219214559755999744821268666548845337224958742761579583167143535377616220707077978096102411728354086600003802191621955480897769782571301269392609490630522599791965952177176392639908607684802454597970324739814038881980887602953848571037541181230274067448504451631934722603972458748268025370734928407011227900669227008643827129745489811261400874522330210292868636263094720067290970172951260685685120780053053354762759753346829405266137577925318861976523377861199481463604232579356910969123673550191416687067738341771677061555971637293867182940362571437836894532201031961843286065734254470218310187535734322206613119133407119361161738669857202942592990885374637609030775099565844924032690199062638856048331302945437561950359384069771356434494958649261720941421413609236701187764849069335503901209195660069446292972330980421798355696870897290756950280414006453436926161735656501782051091102317195361745475817718620320010903345822611947154862034535555147453146139373158508870855439404659894525088768010462294820493712173988987056239777838451066020210904101052348379912278921189114916458428057129272917377830465325431640461076875104979239970296984856392958591003677193084728853145361262781707095577015331463709067555537311515334142140820082150881737660560111630334393471855508051782487024379015169945000050997107290584921965778523311963865897602573941368870564238114189382652301228228547783478113936113413168083636794990589871349240888165654508458108888396489751115794386664295878189343407067962425207145972780989720540522702428102245667647426020299990087416633925981423662325023851263688662003140492111526510505362378730189890580210228982527210942370301895066450206207036245247419790252312769529307460177309816846495295565998815413668866235571275799257789161248976679769462187257228862225775527760750276663143340310259781053970061711367731084826754158273278808122564040428065114823501572178674447348733355558211786525405164162040597230373757503186664083150746387216809384605025141018082785517330067795846264664352308347055382939417470436014964232581441383256733734388090801462729049474197468932482404223131844395524394725484160610697043538380022990894307862091691745144020955112551966479727967014076001064515237929572195672853928412885147047096080831871650060898231470493526739872080434840134727515309982928341191564199750190415173651298677443106114540343000586216729815534962033390814951553635626796897891586529754612505645475064845936608276052316954170483666790009614527414313380115944648988745771518071226066000450413607401195577399045708221696698964225472176075373494239157893306925982719880951123624929062718128428195966863057817873827219788077448993960991070522298392792119795916200766174903478975048498642288628767147338493485726922855299226627366558242905103619861015537899925768853083750484302970811408698278662994676641766797621761073983330318568614285252771396416014542573411421053852746046983742834993051289345965769707199000654604455944794040934246967952100975800083188144922160586851873993899545613427152183468111038772088636153788605256583535515523166895895503090168777312266154518677605543173643927089881332477838720341843854959343300972841900571318831032301128082434783018161322089549786480494436042798592316881754112785870562653813391972960700935425880709830739966485363157300494570284674273067939911406177928492567011950127173084857605415395228016462703328288028920978688848783580768249290608071511213609897929838121820207958266123014222446093425172011442941307272198283412141454164610259614878802471430299647787306819428720137602691828820683164047063034282638579438554450514046798888448678363261534805825522606602451236949674750472781741967808615372205396066082923671447335731948619168819784063301347591330370981857246573588712676229091191675007472396821862444172064371328563102476864125020003131521054491199934519362041537961019007875560267972347466930865602812978130752742032374652066250576295717601396754222231209285162073312692545075719381271513090790679191542062656432662577544402994352234464728080152150454684302637348862475918251064879586595306405224043576469919887032114728256994998308963467676664759336710763019603588698310957744958375524502727046084296538603387807120425278965776966517264603335927005557316271509579909592908897497566669254181033702506711672071822643623352834554788822975459181792329419008788830435813932056854485318208640141156414997144917466356650715837146240378393950848437420969598802124051438005539691906136141188611304331252419120468449890028157370668955708116559653992701056044515508909512675158205476805957890448250263767385134065783023068810883836545185573897908855678447073213199419819779293774201623743828261750076769491244562725025232509859223729121875750016925405216173422411853779343840325668582917353333975862493219220698009413121603764477716116604673713821322798015626007871103697031755642796405354092799948937889521322296997758165397066534119807063423054725231515541668448094326016230473311453016591463860663371640634999476252837064397278515930546207168130728846025467460448810130206732536988050951962025430003992176111775858435314264083301739525895067469267460007178695873144984743631236619686380798052515047219692177452638439064548859264274705376343825580718199531036139244139414094497235662936053200986275058680258424651045690786702517708654903527706976028822916922399541572240512277544230710639761999372503574138308460955256559731207693379596025782763080310597398634690225848511959236622150032651785299428441923590325602701373663512770585403566516035149793197841083199677863229503691408360780891640105367433305247725648085506483320060049140399239527809985587547669797534381803932737239011422102167445216106737637224695872906944598549269106792810500967357620287283381288131905395583387683457806081951973516995279330740744376563820533375181094790591962888713059016344842382953203098317594336435787925371577082859249114364389751920552303456220394370695418166756755958501328123018129328379372796263460330889189340965923458445161467851530296750805575786929500263013848220604567736278273565279381861144406227734509442025677849018066274449365313259054525294411207268621576518828803530320686835844019274012906996505349772513479553517727835055206116619360477011731065406675900743967148075537463724342642410138728556719962004950733690836411000967208948569710949208979681244363113696121181884625653801091273844881465693554391060699848147236503566465399546995923140939807072829183125030855262610028788632891991407458400258083193729681557747692943213519715293822338378273480545897112761086047562813403288058129085959316938532858946355639079707247542893571670286848414491906356678184469089373681205736654746621296356796085096614261054017074198604997211601598764392108940052633972956300591770330923244490140502456786689491609354326945716281649244284486825368672140789752378377033871523494908903326119430164367442682910987295810324896456740667367704705328947362854829527906407371301527371045326060516745431733858968773922669743971806794498727292142556485286105622823465667639927440709961059473617981603450497207409790756925880758069243357841019527094889461101767538352629759264107845802170375179214325754457004664954143559402461675605878834448906856356935186476920945188741254743980047947575206882611143085915139314857496321594194802076035713916861981769716880989704925997416018023429198457014457496585795968603838370305945385834102766189933423729118027751158846353540001746689055460351185421644036245260530027212185568765521432586687859447108428204219673695704427532490033284364095167882099773540559392119551311492737524895862334626954191571288195504454043186283022589533679721882658310783256078365897059042176644612409284382826643424191766374838259319691051236420651018215535873243345132455240085680565725043505882605585253566488825616323309009918272633693383691489220282016551012143475087080492700448198114216955494012033893873096998524055178367900498615049324346222789451985656539597330207446363765310912985111558331159887054200875992572743135452475628923849851226781804571894798243261843188517897139039321403945489672622157949767388692240289679496230788296312956584602204958394428831425250652461732760873081345576690650445408412735066543736070582892285840396005346465465454963555122912650128085667285122932568730491658442030840067413293748380715888282397791869027120141876032738795636821104019532843805253947042424837931352167897806059577743357939189123475466546765247180430615963128134529825064689064587738932237392686689942538455761382847684238670696998335483942362076274579732463570040124708177412352376727341321639808632093196763809661914565299408497674009533996974531250022313205563658462994375962113478579871692505185616691429995545093434874293449922280997295487170249177796814784648815891347708288660345967458695225417257400041475994684102427759735172226057713993359308264531117452703919465795957305647788806389634529670719306189212666567040043047394625484302302208535599179040200783823522304316064899263666705969901740763833393613929016659562460897451430035324591543654056715021398110052328694914855779364936370070394839297115876898515514357617478091038767917387292309016370979123565224477794501147157891144682996309246196072718369820961128831836337003938273702905273688646189830107073372008611380286603318952913524850197903210109920338967734960478213329585870995523009778862265470655684389116064299858518924037366983254930407022784500181017393611817782641584729240274274215092851947399972353630731593962118582624359985329089864786682238502000549321342629512528179885377553670836025212732358448681488117448708497297180361115494919080381989033001329815426577150552527375349897514752150883881548039368061404676707618716004628319604721224698159719559703339089011125522952071422683324976425561436666522758769833149691786232326721260178865102847353479467055055447620498318484211036082581106467858128659873958292464386005901865872982870854034358409625677585415148560565694909898151406838660916927099311554371923688484484116291339442824502618574940866266709437547950696578731243686437037100389229827327576225827764898469432057971073474436278059603237626128302788469787881132649858788199823075416594876234562747847095395701243970134365986509307340578453428999118855774543594468839421107433222343034422976706299111944227706640505577185425347226006056463515339982839050899410664501084136798973368802732396170493373655309707391798098117472782785586337799445264026964643264038623890882237963224601531735176669635804630144648183807496522895144973276145773017701252418731471836811577616757977595927520882070266797817819792644996573936853190343967835605366746086593882922650422571633262476134529017978539420789775840352677800047868015554417062205157118876684127762023469158617176289604248886573028338515308580441989836034705143808448070251666382359861807774883629115294473557272787304750154138777900707837903359210981159256673160848016589366444706413373772166739079060344057136357089774169170379314285528331999209526160082223496322151511767959465210615760333714494109055673101349302792071880849661561797133546775940222729024982406524858788159264315305703926969174234985615008491854280063720199473535938412647513316180735745622087789500868417334044531425551057338706851986648916843593451830981376642304971196093711165483323502824634817490933050612136988617742975534679472358785084486671114125505893008179082094911710536951302901916551838534594533843278001084355554296405731125029237138749933127359870415308066038361289523947522631367582145105467774777915046416663068790790093290937225231927473243210722327777297554105320982176066357682244353136917727681640839999739163320765816604668079473468578925899477553640734645113913795093871636292450316635708397105851805134288298627112811776856548757872499029261966087746717844957475782721069659777527409561238727692466479521235980605464039193472079744319339184908105907359402557137968785472654977507763404089360969591354776558044628223138631910954158971308817165692312566922064787467675719647095542373631512648682036020874422039722785490073061110975218822535357133192324532443985305663979671624661511858385136047521932875521239839048788259362279141139219714022513532160657893479251337151361841051004014293132212089112485169204605835829560222863782227178836656455602255511334567406466550659947282343159068816112015526946371466852799689148833060982246976647358109409374009797511683916247677173353795863766729172393668798979095640369431182346807083043508614998332622457335817622876300542343625823304234568778144325677583092523215285803045766732929336707236959057454229344630238844491323780748907992090939250082662267540918181884631294519710084730322747570916273559693421762679309261990694160280120260567187455011916934776098686908143273927316186379456242847848577780926337327963295093885601460336945943042578364808007917295846213610880539555842564196041295111596858006270292317596664715874274066978960248447570430396228886097999535526771579344196986951811319981927005139657695751567285017457813027506034620380309405036532485200936097018782091475819161198600115043954355035189490977510133370241564861350852755905847942451502225526125032022712287437335214472469832081624418594616468726663780065656795843020592536392834049971611502430926119227761765727394302008681917962474434110728404796842704190412565689654585319640763520749765295957685643873674832198150640497891383166162465157107289575323742396583487519652954573008843633616223391987119556931574702373612710409368717066431487755839752693847645842503420810372589112820971873878719557435228104283858738193164656392632133955805845738456522897432424643172931196965998752852587651610924636292303419141759590256578517286732733980071812903122706311495476638960201613388999992549165494973431366401321168081008167698887277522186841445378782111411443243523745896681238512764581905315052796325218781325812414256360755879747068996956217266086061185837340102037757878976192897972346865368753486075169243963208726950910715756757557374094421083827510640283038032502587900632944704300037462352742017536783715776541327571111590113929397257088874720988793273029996085689840820890418059779379948517379400287132765259853087715164736561183009185100296376368184302929491372423547177948488529065272832089570885657381272727958998648607404463689101332223995179622821705680259374439839236853169139890885725855191785932232834440470922186813724412742925758178368683094233186223150340799234827902463482276647203663599554786339606857932962319257353624820268509081416160806728743623680743038523369588591750981031767541528658964836495765331077698469012106018883310449661490390299605540414128975524728907569229869238245921302572572493337142000720562658832838436103906615716017381015558178747453592500028682785058397770838092595255102377833808721807144989729036403555558121168297916028313899730289799029580340744868663630051614140344569671611764375093927503738511603174145884863451401501414402433926724106411748831230806927958449788964073729133464192612046682009098340924646244721773294711788675684251071629303890797311710108978808498270595710365413919554365731143048430864745157538924286297839255303357373123122569034407626083963433718592866298819745236513718173104633791688441740140587990146664224220092666651448416994086684486914374885566346106171788463809974323362250785825656044743915545217303598864686835564503966557102603794434042874600155175004768464126667137030649011513084914338112299281211050342752511812577352394374072657510028166232559866452826724919869418975061978217492211982216851212222233835701098221852234898143228160703668908223989235533203972226740988308440390554063396406654164413291280094255423788816906483691250432173166793781416376424608095096526752566780538913048415384691102480463343712804218370621440818584270884625372254636519583417883822429273851143212079934468168201398728109859437584514420401899572346108303196001408153642115086523646262342569745636333441050255546344616392960857180311234069859916496544048671177099296194774269452865895831114219757147756707379494350703639358188854269874252718126280484437845726219925324596071969287215989884154097506211461475080118161412717617888594553600919091914200853509294703120756910623936880617218768759784359802424371532721179776624058997199968966036056681216261602922407605629791105874524072523476676249798311924634245244242708811959212380350999786214363249383109892088038547759453417365739738381446353205859269693040289980934278354457250550457680488214338757019411236376542449735314528347368591776372133813673333461161087151593284462522706351558696055647278612493925670421203380602542620658215038965643727264740773716605244461752418398397143983248046704055131507179630331392808751346489789023470567585049943863653279324257621262089521584395753484046921712341729509652673242252875695696625998803982279313943035983864421742144194742802816802295438896890356943740029810473301512315756047392588244678923623196320070295288969963233679284238990469129966786703292615052995411026995295166176689466717690158412399606254758930333891933421856912892442972807994651864298982743127434886745259073447119932722524552031050470038892232752949005102008964756297789151781552318493862930729092939791469550524610414196427466067271590779444118908434933403763200679981380844205585235620123856995494682998794432662942713967274589403766303445300172994642935441330947273267286417579955575610571541544407498074284220665103388326044490838395401649403084351247753900882542164424217048653964734583885976119833482008207859439406329600573248794818158671512862253986803235469943750698359887167378029809829081895295537437502619529588901792043857402100066811888295053807343361760514074847663565806828913008415455970302851357006550275685751501408293797188609045341016080550369870082211250290152543873701610888467430469603427327333310650946831456943226930033726056170799269060514545105290911345020204988299411276969157322771518972583951387726320968158749618978915137688275993185542413610246457873121306905694672672722535555893761866757892431208812240555192905173167489419599736530651401825648720131612915116482331401850968948977111611401734801882905947980446943794162799127975319543623023088119906097245386706913456586473593051546516286326835937808827846171509959806973866881405868461823484776885276669792874161168698216136357594207856993470446903001905611373650104021351410596132146553826713606937017607062527878435492106869965826762186388154624054191836187980501517066819333156776126671159694391325916846991863523296535994833428367374560403587730238794322123642618805258800022050936793660914187359240581320033179581363460316393679896397645063709814415167151284638775669187827232199439734806069459811643776093425859609546325478504689624474047285738479603798700460070287344782541660389990491071859561265580494858944469817634004489194071967468345939674311577491033563275711661175898681230285474342800598990497418274606612944368561710772745229831073051859294497473850672796676104513532586755885617485822393430040378190897320195584990524008604676301905571644795045245356462303800176010403030710910228980692106847676701007651986906094873338205589721919978988033081643620213133333474403617199492975365543385374311564182197706222371245629288127460607408375912974021382579996473474492379950137591889299724217054307720776667445984137383610193667916541493453955470630493881064871569511542753975394536259102884817232013957556940045270298313804360236694880089482455104726737384397741728132819763442265767766471072355618751442410369048253507457913632843196160724208533225743968006687756858968019317108110228958943531842554256437971417852719315766557212956981701474469772707009007011979089710743776680414465106138826253200010972584855853213298551572245230662478026229505649533579758633252770784549080511672527189461412887472743231134972228084159685420691461223974279905701786837800147609214260632253706754669569654651082013716155855319598560903346747579263658782516511012185271403245145854825917159458225702782201106001135916724311946943494588956708025860249794410660872430878190523063109321117909937916109866676798464209460390193682483166301278530996940539154359114448940101180758766112939324047283820995549507094771309860210003646986702924193355947369626811917109909281990209894291855688324964579063608730734574447135102304873416301861009700030871733703312575091045125974807296548711743187825772307140102589588035866163842847523292587840457057498113382642922188032139249776685508744631239084852566979562668592206633770075350323799519875329046427394259116574240095474777544148267385957653416985769228443869769092402460974979461158822063031092452702520637705679896327373473839957024767788128833700206883834257533632108140185800982064885032678135887409925716631395206555173321528709980202212169452802848335266324753212815330955088949453572546226805670249031046695592726762439857732241382425487058875549142523878304919125041758637246512656844300210952483912858809041294249172226473661824875760399127649464857747999219619720008793186424479300853943393054978059340729827467387111929395560542414344335376565907329057641131139886405850933035486662962077952341684253288326730851564533550238571127944345052463780831672170610623397683430700375908494697784117978882609953149596478743080106209367019465395085684458408261145212522218652174671485091161516369039512214004502912370911259434790123556138767341874404723615239115403470260119561085433161442984555742657790532802370051955912713385398339256023753345799045931576361344523791395352083012614263787040295252337170253943310924768106953331145172578977932335079185766695062477594133158646971897026526493807263084368735084595286725838653108359743609186725020108905675217001130042099686417927767094176287650330346972376711746767804338413747086519146670616064345843799405837423417794679391557704551940109548083160523778946684086136808890211024289846207841433364430995468920407108181133117313175287147160733793792410271908475551544771475158737895815344574223649020573569529636448335413203803992772640723044832426223873928369841590650754244561668257180361261164519622458678690095879906444519492134653870092824971651877068350769639075647629864702539254648089735810808175814874835893071550684278616641660592555025472348887001641396364183558524546328089405109054835038821832986110716780623265357445325757523734997812034874690032620843512583592028684196293631034887813858377715542012276213159531610333620452902737426431469743382977066677627518842154890853186074645769910591541666460910575481770576977393863046860284767757100355718877278536220476955514924709925371582829036629537431487217685992586030620804145143420616174841661184922357763501382536975997791015089010126500900571356237099686548812582443561342350964391942591137866399056772940657388853376662067486005873922411431838313767060359642160481338895312050777968736473702970746070075622754811943798059371500522207391909493109697284580153998707603417090097284820231929131800411311071585868546464637193048472343453907056786602384136104024788189875398800398249317641427714778847855774620765566023566068795319207808178669048636921724653128574737865106100797051980072633232474295535984245454225290310814361765688832262403092683676243237129925156661490141568978279398568363656453665116497960606950841618062846914625277905740194966718554721570291548142637634188577630911696914528368056854406886086449725012899833846701454679788430433565029192230054205472579742273887537324125645906587739465235788525513252021628631544028515880572526748241935892523795001884178502092545661907460713231394508864732130559066156704273525394186083378792634565054248669496627961840412866931303850398701004346457251569864903415282796461067479629587645714159383820844203407731415087042868773023048566632088098271797275838634678994295496357842522713631786552108718240228521089000694255011510867564591645108478824590464236193786679283720394617899337457330029885301895185870993241626524693719517392540601203643678040580607351836320627645909275131202127612374707582698286807914077222894644123624503399163792569971434382471820800706622260460943685406963479070355365786221517308787547608841853850930232667585232602363202134305071475799076991472642607305848232140148597158710729923203854323515077220317700879831593585796259362304099300273245830522137331550405936530825224351684489128176199763196540470438647753098164184661555802383201578886227787129858370260192098004968405441418370040433326611497741054084759740163002367953894551335526084591241132221826095783628938872429691114420549922742118047719470125869007508106246019148658364989620730167081830171832469811218149064898800331316881850771426830890026248606031322869957786208422769200942028579428509524982716307117273514254124148414670901186536285699906333403203091473476255319293640673848256182949553476667997660906403683319451418593215366540431530844609309963454393472295501351291496500595900132729448290518761865922947460279080356613823716157535440594244393360333692909705326973061821043493421894800430277221816170935247710539134706011351514069833146612982255990215995711358685529751281372900550585791665559795592985733214779476877402132533855574308208566339493771010483375058108026602841702465254615291174505562278493690831569636925522589183747853649395618979388101905008917582407665079468465049958170103079427492080636774850574633086535111425469929227390005741486328559532551023706304043615093285077506690310229284592946531647464073026530120162555464120451432952743123158442768923484813398938744118999787593068792934923804260064507364256844145435585624965693182890406022289778529802930156913745395045316440919625409363590390293925204129545331933620441694937175138295555940537204314735473833878730157308355789629494626237079538243810349007079307728424805081797087493119129072363143188153209044041592622906377863216616097723581575878702539947292653861496934674292487332033435066088114811454847707300591181676118709465774623799946249688286367956314155036801129727604831219003655355402696466817511904288145283561842215270013966232411093360231752496546388264810478391239721054044167659794970728422916751844738676919286773295412941634339031311048463168320830895056619175156097738188137357704572476426524164279292613156050559708659584428351113422469033572546800198589153508393115434551330693201798552670681311691525666779796358943077729998468735288715752560504650674276602011217839810992214137880127042236203745376145646542279978144512678199612802194529350793715733509753206638178700185876322659496376780993270607199224888132997531952441386850758008352145084402876777023747606694781782825921925982687958433716596247302722807875951799122043397285459033827577961509539036330866689934988549150695229466592659928466728096728364801912041796726117119729410521994836128054755099433328781855317846646845594808931425146611407544219679165836006142045234032486362741282433143759540375970803131203109443439244123919376223298053404880919023945171944450239396057469317988080185376302915745913711640384131661465990792675326655552190402776225179926464146617107614491032663519298346764848611307462870789403922170080180445083466118664820935181590364420696253655685173385086724178188430136888488044286403952519912140250578666873487379662190353421154675774625804697563234540401241140324372246416531347701145513878262851147998882272367721722714150999452252163891137078901339528702850842738413042661268706569773195831495461278949862890067825357731160159935225859522435471398273232915982392533312449475282636975951387136879627590259551049797609771825219395511804864944758842072820465371875082674879221580692146643797023002201977775872960923615179692194741066643346679402797019036472511660144575929001597326394599215160397599859771524352385637906089580954957634961026533688372458329850146808936210212435963989441698131962931155673902358297331189450063568116385269627339914262654912314461318088120433671920360503004191911504942400541131114675504514849958164211103634414503368263996019724419552852865214160229036170281722984754825662744187453457545999645891964456873079781790042042934804156275110682604450023261993587186717601067591374608117221880828855373883767920490046142509122539585170186982710480974160686047543681812972092218914267118242834794347142787562246552125862775985574217524987571244249341511500433831106859724869052249593653857037243788361489341814861542181855394460158987843506403827954325977851096783458158291339169088546082760883188540954985471137452507973315675937448217398323247961726580134897517169074701778813583310853592924461020981346605538765625867482087830428688539811730295116544895283172240833912830230902310926737817180434595547788765514909242837081118703226542113136453035556967134232516602507269519576600903861442004952678433410799491868978694004327579512025409435366075576375396429810738434890054335711909256066464866458128516065366004227824015075392065537668274855026079752118535329205712299918468578232824227584219289833860569325581443524197070318637238009430981896108984530825168817934676669613411742512973746496632613729003782688971386528692053392353233666584727437890416978890058094735806999791322806751465962241098755214788109265711925436744863653584709320828616327728503651143820076612834102126157142124402062904745203835038337610832227297063359040292153589891326538105901713101531356582526675854714959965087778152410223671065588945129105508994132999256160435426859324018834700240420279001769913296114734605011591613120282993182533215956104652716819031926858589750416075937545248035918293506207810247224086991136448924357075694754858095760112882390990507564094605512539419061339503647514024038077840001714187317534099481573248794834133116181096442766125810671041569979685391939186669025099048125072478227423084160653766099633538566197477741146689289882398502434562532662726112922990714729032539751720206582792191831183319011295392512397573455112652994137929214954040483328371536587308710542553051725909269435213217157669652789970980460180905009922184909496330791051178896820305409745896497338299847650570958818425924691430673208751300935531836890055503342983061337816006351548406614919043496513059408372278211026675354551061088325727757024587538135918929770948844884934527736546863616486115157905625477205114781725324572755206207098426658345029790090053756116463528244134116711401149871082274672667891632500709521134757138581354344222175568769624219111117339308089605288143052668106738338942999319469998743992050261756811076426195612221597472691078548336524252242733088099061047168601346118137376987235482970606391285724537777609717801222378104134011857706132616301092390218774289091289889960491011333404225883883384947153773947188416198805614855762068910941130473286716580407075547507500561112915036191068271216800879709586147391825607980816503580389966933603372906108233196723549489041465406942427478492795855499604026625728299410494605111980927693406153120651011842045188628124204699520015841148462380098485371681987386310719035873592717137032244984019536562236672611429214269271482605923445352041386899538194410193753386714865289837321208894419750095607023950404571126362227025402916496039966689079522670418799120574137731388804711883984030928237010131615004644644769466410852378693794863089490165092047914682975060331962303183086626001378809769888870241620646974442308666295523265155747709957644865964589718431888050734756414905072035548682774496793826477005480054761507977187796079271638612739151521125386835519051162166697414504828117351151977145461192491464359577129673158866876469742334123383922641762171354326702252317875064321653051001770424705363474692472138181506305391676951865907656038872644775897356896115267361074120368529879333870765232265967347549458236125691538259872790785180563701612397170726789544134554225096488950897098160150049337941784609954824710303302892564588919126621459754138905006881385671366855764290950367098742481942639617800480868463684713862284926519226002376376950755947698345371825822610149208848730583883434382430015995978769612955498157505761054945204546868962983467932607384889695335413594063583694005549185687289659616084854221686413773212058160129023980311765637776106560514956745487235566497218849535564207491927086722993294718651713668405812942577870182357095846037907898501385381178532598118095815757826381176133239826017134254916764939553808843390765702335968023441391410588543561613638082139702032187152148614409917988854992211148481560902965608399627288747981112715751263050170339203887820287569641493541115190768026821356380717576800512792739927005517626728545967863708583413547841570179118390477800968159221783127559811299139893805720676384611806738049664186013431331171449691912968957049980436110100603179023944080824614599273152883448510846495397858177822557509499077562426208487934501077616398228926879674051365807568111676114538914242928767684618565608585058676550293996776781518089922415554093839451619809203426002121346392092294242759937620179802296305947263321032248282268449939878268759277640914756208361920818561957912334944670682891809424620624091530373620293356681539885795802950090406342699643801066157874725554065197695113978807766837634842436488334651705333251924312674847529182931196530546334145351643614971174098742812622413953617650328822546036653268489060428883158574319219730369193742517275772289151445622362977808383883745972338576262940506485398827699842314864722424665392314558347685032169952336032212411492400491884210189790328770407173881265875569964220824428821832780445034315723513569833193521142539534569815254677590342801788105366890170094230032904759984074272159987781597453945952908983468019309692169857949945142624652162497309038364346786522832306894659093138454436775529660615774910962806179232086100377917510960866860827140891115229765570628624192009761432417121367337821316642499517013182038012231194417685820165684710472482126295439208783271648830769950848923320462585130369826861509214299642803591918294699929748799902129037424022391933771580836176083201102966206590203743154646032393007662077302184127152797101735181805715603572548460834722600766037019840879844893253170439805756599565798235343509149616068585470486557687057384404476558806938916438980265096590531525338227790409010803945504354624033047989944840187317826907586743623278777323601175316615059140434044065965781695438163139119311535438615455765051701419051549151341967359763591050172685385502314876129988941480463317356505669210183183432184064403017482827401983953710843001796211327523057320921999717993490340095669335073358544380479479154739538368721289864561082637581038589788617000095060053836452573730499489606233776534942640003846947478943681309989845307038303167553973283840642652856021200093038930211185978740760748509517897934779229823444683726727919268304513580341059348552999816821791602666620192519452054169302710648741808691074062309655928827001343026819787939362519624976807205099836229444557261153908022757665897381148971691146500999263728783315502479982454132015789481567366854612243725232339146853590477742808645611456310763503320560883185165536393362979203052990782018346587531546831397016941065512051017546800066907185688513434646705865001635762161259104626186592704527331921878638030961030933699878429300017921129724781956979222831158307774492332318468212559572512426793821465179406677175782639402984894693511044775910030255751878522739063223660379344001378220534531826703481188303708419881132418607105581388300403492952469812994257218446696839563728858692541274639030412319265631934260851325495917389609433188105063746912661454860157141640440070307899773109977025081883238938749322189412623439230768727139010345831116732960375854093072957891708959977847578077365010636100808529514255141508957772515387136567663304461054795026968857669234290234276524356064805434672677680179983308217551734844728735877672306402684889839558731769451884010115735535482913932108013201468780384577347087083998121071161246398036282396093465720994557857951484329508830551810256769565331485420211580026725246690744164409889557274516025145886803357709922611603726984914613537571494983715394698443646833471421171646210511298272613699153004108433876193437361391516245133135441915008750018252367236455660986619804994637502323846415667775623708613408307836431809153371743683556996391710195723574147116687101403404413813058749211360287933649282107888360944624707991613095130098836161458946200297898932582086410913863572311299813815862364618903670402729619861440779299733024224418370597444359278474316833091948304073914271898483744823170183870609823461393541543833006504863258384008320190643285438309763345964512042641262919182004470487728775696934699307808137710377196662501668365204748515518402287307191560990164967046173091885762766393335912838459271140492695180490145507537279253575445962670111264570020222673363978302078860252546680284890800019013828006819540958085389052287214151409747412689063626336470362194483260042372331122967598685394854383603774094253220180466191314798145786337431810950873569293661414447228278433559208587976271030903332398924480687493921533710851325201584356930970108066856929670311037699987345121950857470201436520414016872961123677168623153267516318691389156433088439655976585284371370786135697026227460257722779413996542319249743296005988491596977427708794215111723846407321912269503127888848686799128369263304769255268556590725101627869293823079641247342444320747777587676579972667520489833592079031195113110489634888819570699678954790600305081124346199002899116865275460077676666116674755660746086531056980317910695125857478556938318372931687010656455890860328454327111610599693038932734927940421993772381110006603915780712666583076092119096502425419952887570724604096825223065433404350623460935172318330063865687615879542325034669551902987322699383681585323345920225483919847702333099041534787546628369101978144840811401052297214094448338442607226163989291256429785649442565823218789549109877612847606866406432565508206528509979467762010978376954325004957244153866093793007797531120079738584820543985536694711850495585950792423030785479678963373793492508258558859531648275649860560605724048023987918492405063687369024240391328294886539114725916501101017018712057686041910852127112305462950212589633790271822021871464734757117154136980175261864821309409214087505733963390474681509352331454747585050559467512741248093479842964756473847285457410714819087118815502359573300965835515253227213439393264054609329226487051693970373588813464557191858291101041796218105111151666623289374039375155958493093643011987855779739968874665788399214945816388526183237701250172945230903729632848930240133442935420444224366215814419561322710293241990114746475084193158770557650549495837280505609527607266813659950171355686204800514410786802608824719610714582119133723139724601166591297151596585414207151326523932661391072108131632847237834356297066505574227061281607838752041465471741494457863357403924309294959316235786285159594550143250130199391036479041262694787564838417132163229747005152217359616581076817887760375395094928723713810820516529579908266926125815160362757639047700343587423513515867127398623523181240946190763621167345557348698589774918429531525357547330872822466953044501689658166035185726676417896649434415711772484530521498658316420949282366011244680896184451500780708264076879474481859821081680959180955052555508385703300456033643082562717938146545744266635046650469209985748938038806977498851207144399233078458923723525986108656681750923514281889267897028146617214958044227853275254492670938332947224813398674982602080424279042861112291676566991678974780974901521066075771579153510935410809769267909671089669483143279165375219717263488105552185522843709744410938733871049649042819713467256993277945848123483797262996931623529256172414658447634079296014178096230120435678687152052298801220894169223268236554094189143256135538477703556735268240998942334804888357438329004202100362392741920586819239968192593098225830410242616469290779365553247193500553640033003738999321544629835441576551191565818407793444319713930939763200818364258560178808685547054601340835262002290140943582634190303736859547408807625886818583126685611310619838567342307189009923126370599017241356246462113229373607087260663597011647317313430735046989859398733501569886707275811118083644804722858629518839185155288784703689334672923805535631303039362680202267823965462621221875409121184002844407664544339301621626930423779990608425729651045391106955456242879476084073686932408200633440561687208545156023100064883659458261354820727596322577932204996274596390236958256496254879607214606600373227616905688971951544399544634978634131210372389302185556661086193967883219634253836173046335295274599245253330143045389257144466230970222714603519988161785060519574828256250975347582598568832824888483635180578493859537111751320114487015115406850920583322805527491363766207758522294455268376330142455949002137003616962058243628563258825862977865227397637814351713207276583422953825210622743403054997378565440253098794678008227363251238215988303947438438871747241516058330144519623146921089237559479910186407279957308864641596573895540093965092340671709128734752745978138342173889432255043487055877284910982251266692529339795765185311163834376945490653523976498520287420531370945761366712261800769663760043270708910580450590851452907653622876525655590215728644922228732983350174141348653431187305552887906421351796406106383439284067972052763953805420038937622060063041272354911890139636539205785959622056536022818776860129190915780372313688662742217904475485551396370102233040091728841795774756125651913481328111505568836826991328104968800428568997168725208163657098324103885340608096330394988287519073868347990629748069138768873756136545615291042188105043280858297988272988640024499437385513273202279696006292266870767253662460065254274913539771931602607674569274935859338495247739757124392500383432860888134366263247969839056649762715000776418353280964229815110928325528247133948012033380393653069598003667442062200751399706682595267938846785197371470106609080178574972504627334525525413699045294169181428399284088150435701881332095630912391689872703986146721541155412927841779354846429587863959749340712793258000200457316845574526080237276290816622826416224235514360658085108375755395018528809571034714753069305053715404381431607164289358439756204298029522748687789121948068913014028327332395341006252153255840827995358634136026053573848333910472544427254290236228822783556591666866999973624749884680859104342642878983513600472799585615555982440432014324859746807702456008187951923143388343579338495857526648079361681278790944686848007388246005530796764345838169889119516924525656305309047012047502615315676670261721638763146526508770911703330623639587844235554760928937554292104012522939066094199523517069032874530407774307232766801136124461523913681916527333111425296125346910185346803914556183057532379285260224179296920188177835695952371296457462715905050955721620258598208488337487127046481264402089172533253531683218423037718796122092261937587729815767451759094192330782876117806946651948445598396953166997632593162994449130562345932481503379529252201182567711506328533693402058097165667523774956277036540785617867396583917632019698585013546414086305413322817893567664789893465860259654578482913256390278400196376055274630299783524230694769955603516731208181212348366703157868484068529193111092455726974663637677348240236565643166955482680654196508151603563254684597999373707029121573058097240697660159720694232218822947716757142458151567622892729727596230102203442828536198252067092660764258797367271218099126788724848874221605461806597881497931189283099941786725110196814538751287557529993095828066566269647318516888947581343996767246022864419814168872198293314499940021280184852244774555693493579418714723755775971216822584097885691032427108642220172277510202048707247255732102121389511392913666114424568467941274121400348510223516119195792760975497357422237555658986554177984862253516179777708520460020809920587185200527105893761115005714454254657223263785487767346717423128135362285938798099598443604313626515965070410940670377798523801772753994885289291781216903132602030858197815612566435802084234550308514904027294382196020379989172677625957728130188950353000773848301542981448407284562848199143235649179740475556497847073322599794161203971778059033449404120535397580778594447214275647808036509806928376645817451683308746866909346580643693272962995407494009949273389666219815629257881037518255557111123487749179683723954361860918930128294820868166298443618645114977646698963493040982080849641404865966828031906265970733853003670959313329998251338367225791676106547975898363212182470081837385908557894744982907060537663059472422906713345966684539417027714315597994748991128786559012776737677294357726135087425046218874885144099398483522472037577557308358425959009932231975458061540526675435924864104084780233722080516571701940519181432483135380365996157923743527570883437481309662338815844549516272431668128723047861302354356416635293283705296245724297814671983623101985608332362035751494800539078178657792957748243366276598072318183237887854512847164547660881314684783296590814405214601531835522863267832022810930123971335711569052054427049832129761514626404969955481557400327290452454040727316448118654271399601391536751148579567042307627519349421648272884442998856860005858977511469555185301171216996388654898749090438786546267563937626271769418617636644613212503342559779759852161194833093912691334865164166414361856978117446885292210638584715007590871325479693267237557744656684931558748552054737578987494905879938317509625739575267504312019258166693355339384797085775545061013268400276389848029235502303924878436068242247884734809982710489773478072719507239776581109497181494825142517061027416603291128496101502626149225335849575219848193324630676030839452922684761096446092359946275445041882504568526516025916142224231498077697937396858686791731640299583453884147294459553507346488269269960429137897081848347490138704545635027598261314380706763407975850885354204575713993682321061061510950960864500583771572047436393277782229870411298589034093371497646656788878566981281642668707120213779701720156851886441566919067013545840899631685207938554142369904765528386337158521321818573899802054208032367571082854248450618744660788175076792418593337550677316956087827199248318688290767285258978897664563459706093788237441838841193093350614794923773149212382347603049906148890355649056506848980816621280747618655946626174899809709201497498334022991182544868659451665153460344146762065571843698998360020900581444440643793868978779304497615894260180374911414596934026971670038025801748429537018072917106170452080496071781615707069476609054855595989139740898018713603861922016832118163362825501719092104901523302247339343087560358295703371803422329046881541535480448115963226796736843743835724453434563722630598989492907628242525498693107522980159873936772505069859178759567397381093568377875164350231038318283703487203070532959135650963944514606129908631842706083148381272001405000914747822497939502337323859130315071151082258937706737187370255733823819677542860021940340972609566628065915971953900638980060130852741439214369062436555353669217955519327587889055798980537622507008211187425905026033922352908393544909775176156286228292739949377859746094924927320969878615700566495377246828840679181617351227822510568734052831257608158824992283113032725396881807228176118953227884290154098811007731279018332045874994307516956427471594473840642738505564358572401114830187328083195640843928104088368102023014627143111302618952837638045798558345843760814040333409254007047631860412575617052765867496841146606657243460047003273422644646106087462539913525998690777550978157239360625419334306449370957737278495665427704682937917494776117197092975875288003521479729118529496509691826634102722625745198990731525089900633511785221215597389672519169984465337176977141887985850526967924058680752325126158925204846695411364756835966235929270488276481446603683515824055156314618613223502426291413467989892088593914609106105811222368064928548272102737431964057468672494239429056612789223190700138183487446576589503486757540890527032530098018687956939305587566302532685690530226534320455027696198183964239087905481322362115664395992257650408456655884572685329697614799082545517760068269036227547336116571075907805255200905251185077398973325260506429890866124445655046320917017665330492446008886638396408854906673880614060250227960789042426399419111785169070293795852095541688851852031198697242612567479420136474210843349108039923164630302200001172730677924148878784332138959350415217126786563693787719896871366334320050366192154295950979907147454952457597717224913358828448023515692338803370532602513140878873490201987438781564543938738125015845220563118147140837134764861474395312795708080675038831402500131831702816641091085530298236590736053221355583465631062522034235943967278812601997541323328282465588792704071507524373549420164043108649129073554576864108564768628073446217523929137287598782590272567738089859957161795184814478130756192783320383700239584454892361626974406400455671111612668878982040332257078623150785822200190199616069201851331007792707651176980062812681542471850117384169094487605285576207704562388570159437200638281224740929319727452703375816044765171084346009427874199496427898752376158463770577800655067321221104041136005996966126285827166903698064434867303932300207326379106801498246637331793029503270796311838165198430814025115367508090390390149920742803935945754895867892174643990967088510600627254108956566017098877630838985866745094904770317008060382060488810187330700601883235855191305881715637293894748568818433693778072140110134028783579630071602467979736772359230146502192096384139129335180284378481138111449470688542303763789396771178289611458420552638890445081925601758276787320712169813098077947913163739061444919395162482552475006807041374052670755918289327656513518837594292401552517818952112245316575527656457451929667412410951273663595449374458003173123216136220179481595460981998899192667167986095271724803919819228332829239562659598732121270672482028773323682031449704288867087433784396278203172284929029758683520434966263291449870443708728073609210176459031273139174672409585978953664599312103216444141301797207969130144297195177347696054436440400451039557690636993413998936205392519839017441358835469157063512597422996925503837425104375205761364917922441221064031668202223788732285715338787689770853932694307125609818391170529636085784976960004554726547574187096144655153523633854197430518766995385000532428237796258005129760656825108130201988283352951709435092142743742751040746605668942314826311291789403821252376063012666182975138742262001300161264999003641930569379772563800693801981393447016955232385957619940791545493611531619372695272997375358322042688598268350306453074057468462659628283047689295981803379975543740529910237463203271324646711402623528083161863122067562062615376614939030421960351556884018773284374782765524417276437869085752223680156091237741040899996862561296799676578297684603405088438392384688208878908589921443554401604441687624777692946204107509243377560669230078858157300227362260112167185048054801032523112867927570217504896640196061379744740971571242580955157624494243091932067006140752874101676516354849233092158531680996936843982530756065663112903062735582216151288545371917895918363777399333218397686929609808387668135389426282438967105180056323482301567543331030590748714629188896173389855972423181103919369938249886200086794376956782945489634622079354032423369528210711087977162084489837651839502172349096911247051674047842878249995936022547597444715260614354704910391150965615215326533595696004869387744789608967978523205181618025366518624298923414274252207017539919384524417241266881834211986143278292009629454457311675764839986469299701808371540059137145636559110979316606516359243099925147897731698046809192051627884691000001521616108115549281863327060175380072834757466298501067877584249912839510015176218812339874556996072973510964013737301343212015997770292961037779400634001512860136165538360640823053544121202454868543720413523928625810118477573680324505328656097087569518361895898043879949683258972920879679090780130189434254341720791300106086199576637596136931336523238397661505966209438025487468574053253081681472901750450988292090046028570978211710178295729840619455297080032398932543910955223533772447288061068706206367175906215950967770913666194928840127621205160337869548820188165452235087822804865783239157503149983198898028131429313925240581134887541771893237255284391802326512515533109882517714431145898295089028330476979177833633010340410670509604019494151204890899262688015766463903444556758964713467446056264789235874451080270877860862353277342350315509347972451498858161402960796104380321712083437423680508361803321750363400075289600902031588861733869523693697274789861065227316027947640910991386687229484927138207859662853271773631426291870062542405005410366183218495018242015544044443721711434793893390653849895042981720182572430887705562523411618720078056423514615910673645522874006912480492887091977065555549120124731194113071820302209400528649339540437407817902747598397674722201873899424024686891922875754721979742647134445641064899789928491252973138578808589938624195115608581111784561106646617148693870334125212835182422662483249291363692079826420444277740396796075709926891205361901012035217620278081611892488783210271941619506539823743838657706696233844546053241416621629025859842558957516533866856189468758857770987564871449929146915344151675184090176131231377355495697543130680162771767390600307517469587177618300988620507648816894113596696691726798622550166936454368205377288517998418433619185490688525366206623693907892268148169461811698782868007542414392112168686895859299644621547588848327291192617090459304015740752589496206653086758092192537735350959510451872775619488961082173171336108720509861008512404772018558318712991055334369138054364013021811336775695326215672533496756151344502913044556088608601475383708750062944633647383371356450274073787351824169585445374515438987482718661072154435748609666052084981498249473465993154641802620617511738869389889352141575382558058885630172574388006056571421395820122594529718425454435631802689488950677751267533412723090985440611248787608621446948242923811412166766869151622580984934207590397629639462803973298563284412714614647740598246230779299501457416110563605759488724553103790504410179557582172940170114568677448047034888775836234700325337710321393864644755401849526204367675298298955847616121331313448427113515072433878917644364088756670858589902614514216263977787377435746299771997817101368305427376629136762247558944968350481557576867727545187225197856184211271051318832425235547064269063267197589113731002323219092872876337312225323161578162403796213986257226407292089740381610906992301810329186550889556256883707136268218147849572024782547078805047255299400573732788287895959115973130931772305881328395581189758972412353116487828337213555663794321289123246470087598971108959821713235406159244721904875755760134549860889964450958497160313848774896496978903217256032142624645118954594062028813516772477687474510747195351321538456605406511362181484648330785332496228762903201618887454258106211009194437762986749490340754442702480237464112823035114123018114695380116520525180558045082887628813108518278472995647934344937725302158400306025433665596366305046742468422140719507339221939917046145710187328580029393090762932967781774656386206704966353883595317401082046187452096604021639440592734519696306906295868049027497799206915006911876840668768320594029531408405157151563440220842416946949743886363822511390972723329315418109197477460029583209869151084102714496493690103717147378687424704322080871094679611508437125892366523898730557538237234876320376522335846003860037835434408786718409203137853119175580010259635509666965949247460646762866912147009015403637948045611028888128795061961286745134188793019988093365551883455354170386946658636639141738909779350397224278496326960109694730000992273137993305191073360532004460698432942547983522542365135893157174740108935954959504101439572777246649456610351671094479432054603146341819152781928344314216879029070419988318808896809412997104912349163878548716005857088372749384689396594542394760467770999382863936871466006948324102084009821576725593617829033371402249462521658965665714900782908898497138380078057073053611865682485059228195693602247913317662912277272258218711147474868666492183829655118615872268629825688533361582307085707141330296457203476416328476464572880622219924428002437288350366732876558595021341008570169936407779500053996958853522640600961781167550982388161421856478193912136519116114809466579398390013133805854739912774932028336899243681149272098065922827659577664924653838658281299991365816872196208162964556444788034219429071241655898795023296985019536271960599901763785997393854146520627608797643398825501992088948365152685171130028787903399029627178146176898556202434512418671584165229048819132065865649716865472059184913272437958003787643662247668650897886997565184783681770749712956140417751814140176856186151483761056590433575070723847077574268074387883495921828920382286928809964247721089142969689001825911769150453394954802468835587183155290466856412198855204071601850620018114327295133045927566843344771793231472544804020324959201587215028540065600888853764067696469465760022118335932681279249347317006382055506696428296923170339301811311086013441001823073103415170164037854164545926136608945091157843630499785851732244264823091959492880069421033453395425310612477844703116937259288294780618096228164573976900967050859637409430903354610848496444879156452206107638265856130281836201169303488334751353865794156122655315594325413224777064975286356023418711364163535917242580854898671628976098360079203696033974060344103677469851513607010626731523205258039648234619113240916614434474412277442780631400891599390914885910683685763570058034357453662836035581154236868111633642711017615529300227835596925767626152011001669097051109056225071073744131939995906577974071069986652562157378403315231184316828831973958540354437028014976528562330685680378867484417307884944601467114981959416528234679358368341681552815342523738571381724829456038530973771171517052889118637674780392202689887366024484942833051767621902738892207681285322594822334093437611604418401126858947157557535865254353095924072139107865553796070247375746769477788572391526928747457882595908892540906697508658195292297569831821043423766659238444119191181533404174581519515255196948625843563998254725142815615273466597592661459610319043601092289566699951072697136879284536263439510612677719389000546264975417366207710322441572038988240548610105041162704929492101501286560964358406510877786603731405481098261915231499590704186319360699119135883755556376163550269465335861205289608417109945497180948196144483642966943127586574982425462730429802915587419724342659711629512606523514608757915877923134822412868487768304577781148326120141250264759153985713993916151075388666818200283737282374376931398684911526132980325624541848087633172982429285448922132940777731909008171795730956458906757056840634066709884307808853888442977226619669141571633962430553376366050393197562005871076277058293860525122526063408191872941460075235380294248463885441648034570585540897490352744817966169868256630110988400842862643648370363821278556567553581898195375382261083839427450822016153219322363993888146553622305067845680431937963230732528301438211874775451486094015731886375891513017539854515225713592246280784251160336402863754137350766325761104727470093438947479014085939903806176567299687899183529404577309713672354052018655360516770027994596130244372359672320209624460337059095544732136229141080454747941321592016298165462083518803867681381100016553946267658868621002143000251324205279682115526504541078669612437776951989920875884040891371094850189440319371050202280104301590963391968535126396047152155732947505976135438580055850345918404670409965811012914501827429755508489187083039859281414271799257027275729557479893514883695722304869638870266803919150540797311491894352010790941495735590052260212012264425931756206359650106757112184884339571975092659496607553377567746443146030933974734674238091576147691096953638779153750800254769971776424211541210835722877646109326905693676788057128704093060330551681258457480246715875422741976850013000425953130467573421563220799433156734613508063960211134761970227417882945595884817533291002891078086669241916460628633442839190425903723090812632648883583675325555212922043567308413577502278008170814927329998054955244695868967249436117597453063660184588714612223665932650191828530968992734603528508788725790534730685262947466163757549308183270826641199384249637676764851019911728158123457194546989800314946686761423917280021082021412991921297377529599819212744299880291868283292733193809196561690989166565472214712406928876421783174622109731813236232225013827743860047539145473731917409907525375625863216690021125295091564230443524121784916642592898006536970232706158383457392372320196923808891587889312962810331463949857264683192451361435719731646598876318421128879747728184350899575862513302990147473728514799856046882689550832986541248296228150942595209934571295992935176713202727755941868350833567690309673301579458649557887976540169733807179263835780340508994157574929622681562854286181667226588866714469280117864179081030057631458444970983963621956817789080405767446697443379601000435997273896927701457710214956238089598185707948683337585222034759815581984132304226922995888499934291486258078235383955979200080278963939770408510254021715192245222385334958051703725368370225784092856856857596201029647948808403158357430171645893875026025371950975012334804166696750411086274359733208763649338699310769685037535797873684953406010904331716196932965107943171013801082991157084551635451744912351789602202380699993029969924862840025965136987305123577922462729470620822668983012443863415016448694077447048393208816420808255128370500313356048021540123190044723422381161966829864411194643312760245295531929024079288592469810186176907252442981654723771246410694979011512331455308403813962426819050677228615088669743781271175994235237042362624881514239777034355556882278266225815080048314131460028555620819952594394880955071623136240560302287293596301603857623276564508414918390935585879053492001812984147979199422221664349233589484641887917799168416093731761632762697379915839029733708215026829696452832112250832939549568274047762408052125634065392703598485285288174074224344673060635390446019933735001984837216107521052808643796610760014941181548992137684098800816300918281782532109517411621576422811928494397968705372047535870897141818487197427094529326530049013325105534621504901860483036462675125366504433022197672594244096245933818985974911771560442609202847284181876183926833120464552234375860732241226711141307303071911447592052663960518628822760272460318396564821833065502361105256046389776967831475925374642568724515948416766335874326049523658438506447683057319987307766655240109490923064820933859526272522489679438330107775279924781031357796223531981971447464945309133268521168230660504517835921318666380040649414328074307173431112313570582810825770368709825894360056143613409680984419688302103319917706776548795097554244627383430714541333357697192913682730317218362682838090436324313529196748803800035481560735928073391025569210045542366254432873880792985757781094634466135299906603057541516036298263137061231619300057235571712391744458299838604037544051965746841743589869457292980822676707100604580711241123235736170287252832655487791210116119992762659988843130592883550870579116784316400274832054549396310004540471596379363952834095782181606540678745375961309204172485965384758460114580664993021006775134263842863168262965637465668791173924509538236196552355408049943183122678703615431223339846189652734149353372516330689730961447677303085878339339345079358236578732112882762898139696778617918338005235283914017276965470674892427959827312472120447228440817163279056642719066983373713784213912930716185999716651495988885740204337085911670505913893273752510739804616504614456447334840467445168133969511589577686226884756308291936649499685998412349460941948631188325225222421586129191502468819150510473352527934869491374653052226864819192025528776154037952909767108223115339524747648635759598230055175861896414057196586725329148215706172033883357683977230624855019803515412637112080856921792090207124172021300050405098007062664211736062691689751751295293376584427201291518888637319093236344532493215515905948086494596544146199259327889511525243025038847579511728013960977896493597156211062099737061946457775864318580460843346751548158969994350927321822731930767834959241705840355404258778610697292892444304041553062806436641736668911566425409181930817819568895091282088082921825538465997356191971592769523394302550157601832035526404644901465100646635602520683519457219026447828921255547693902975703239918037007824660626697993881937765482549406314671608576729594593353194765841577384923919994127288193659516144890226722145091730108696943321577924486528523824654779725871601152229008621877523573853834006178962120714529834373536190887015115051842557580635481696534908377930716337119073648459134644776714963975052003965192087387305107552662801338917585343850567997154415073703798509555163484766075779828627308990261052200935531815115496946744477744067942453897463400529316918872570699791777947228556174214322194279515624617100601713932035469340907867225368633477930399251852984883175683484349584080171326437593224638175857868698910988773263183104671273790979231213397872220947145151944720730135798382324825781342040521968709722817671114978542333820548282334386012210410058039431435526088864053291711214188466628256236215918939918027372641012624900512303107028564621326930783821392982954200084842409575385739220106097773285097606293136880335207906353456462712373370721433856427748165203854225276578592708147897251504422936874741688340980207887656412820278578045038899548823994663628232995684896974016383792903788781226342471244197233682943646085459433788826370132604032016394981624265163752917826084969395363727721974932231135535622863532300124827233878210871412137055196469736413257060796953002845448946566315107451391976203329581813542256500882218434680569165608165582962108572081223501296161081389395842175120205692474040068006920982783928776797956765979870114496022404605600961512908851755850742156963153513579221102692517037635233661434334663779452651159306831144272027646586652016972983047934453033280410874540445865913152481150275235416178723130134055862884579572397996289848472215823041055218248629045881651375700178348426400224484897465088334925466534542287619889486238021449271282388357209003757393119858593977079662596669736464153754037995920427804977887349474960678797500610862625950186988369892888548451998431485155258608150619838373471030099174220896381544081578366582104573084880732456118323330903665572503181655763270327972370006264886216329012390473119011035640965608571751585609676458043273317249661483263638072926593692624985420777795322814980711847707050595214381849246739117075485317934388847310998106627887675367130121687605157221594967483270263650589668317435727217944830912101202752340243472943238612879728325852450100459776745451296012409826651884683689983620582583551661925942171331888987444092865229553120169700940146725995569363731431190921571143929502360831021509113010250717136596951786213823539793735080065403580757278266675975252190529203850498340509323781146040050789396418579470482973177164873935612165336884913277540987321464860913964491519935980216763196583970222180375864225820575581522347606646495473209627353259547011715483203274426977226083241937824602854257825099948837747076486888179601272478779842365403812431903191919680719945701521375865333580197374978671859386144632879750749200417943999686894090051524639260894583700463290211635257586221694111885329605413019071419513127316139131764948979127960227060824225002133036777716197306366071295354743826146863086922527860035631628474606476461801906567031152416836014122766018317005447310467227349332494872420532634624539041424114184326053088222663273805123577127602420926956667214103156452513978251652021765641992102768450827354027514046178254250771079002852207301167619123115796654796621094499119482940077903942098348015038206599187588481909397826516553326211495461937457065471727334060382379434876862436688813954384586152087231800195784424025329178804487256214617780390466141641142902454643704461150983348212260286302785415020274776884929656938806649573587287551658251208315334564840019800270059445813915041928909961438164822574861559780349843796969480288229546501796752337918742140483557353644146095334909676007947755649550498172017077972489646412394788256424992733101495040589697188428484691826874462225074491692244543537241890876651828446668437676860347075217499270706838671153375093879599917979462457582580404102809377842331674146671344674799066995970337029654143415520407098515454176911278328317133148907661144409486534864024830662303544526263416112373174362863223622425368357029449452286255907380849152341328047685849219977176644789538720543515465970045721702077665173651112572435232202815709172260373277441764658745010960777588418653220591912878557388772472895030246085324930640521568189404244428062055120924005629032161186611883829399678838569896495875902516490249360223437386553338277684043391669349067184659691105436408160160429852594921105399046776478395666950816531457424742070830104792135452611627455991095648895652694926888464581881035275161217483338727120770980390863396855855223126803920038545572031439679149861654152177223482517067560256393790401701010278921275988690675641651126911397262859498704992480211405944217423297480327130908459863213255781012054601540037954152259697486532297464197259684420820597042628771462660078476156176179155448962543707418449315839126523708210643274941864567786186950333447774033589057014247245544938715341060277103823284228716512193931828390598602343763131168191864257538453645150913425932829338804560284977654137175912122147072257759258549668322087340982971419763179619839895277123027868588482667843874324762214358440107822317107931784747144428127407212378700449088889499953642422645221995901119322845529686715440573483746313393725866495167460569405259409414031692036062056975898896096838388234698970459686177680625030033704336077036715980156429098882817454489370979955827878505174959490044900805953300535987112054947795023956010100952008867367362755331306223498637123966281751673306305293176489922957797955895004714048215405728514572797017488476108779234563949179788758988449323100593616280984782732827383514871868537040216471598086972615627563114780936027051495155731455504063513454374819547512740722298874193521184652138031060505467840697486687613638470629798866692717702631027184427007231085560490836621952421530454300832166968317961123188771609692628701647893931672286636161521616125577294165106925283345809415904242931154781262626953507247198294794025089249157969463308258565133634676039084946113271639016344972435268685596367573207241111144452265401621726431251592565200291420763484683638698925721074916711782555867849430505890343328220337406147973553462746740674178493592266820254185765748707357819227255418905815771575070978250484198615181183910393445615201136795014563610535621069240420734393165385802076678839423519847443078747261801716555198965644886740739807069120053415762340969596682995363103319997250240237344071454398049961763902120539950052310277555896160714973160715387823557674765308863982822976553123958159906901216394935255921892452396565248700986610742478227227405095367027604379045373863323391564811790758651548990662588414767577437524981673130166939454910880841455267409668701211580557583281045621625759495201245693406723389695359786613848388069927444560924676147011790781035912672357119960608086903446490016511010737254792717011155142680015982629045288602942827058949717594811819177395356376973579579989019998955909069673096395822090677758967656838831882500851045522208439669735871862534804665823202853028620417779810616188849565037834341910206171166509164870749591675469406111688333147798103524863519549014868868083374764159472802343450891185925325912457986242225960457061865476005851436389974297023974407675336491398564966860842577843032880414710810602232093019977146676928539466704141861836716407142348159064151685795102530473274880864934009572564455860286695551321121062824739640813539432482234295322685812269043881022494222383247055505497692985691932798259254731602407960787527966718605742890637279409661301596276632288931216295457806496587688783811359668591565357551714628542625147140839845222071982564897781260852165967471316105423072459268751925099851213559132405177680530789709104704146957774471145060613440333625535236997597994313130917539574276390362503439462239828748948763638265778330709549265583849058615814202790369210925329450356013214842810748553859131975815792372181996179661344218984007519016140492786839850755316593444938543282856569235785528195906333934573280121772459892311243482719246874677278959506002531480520045470897464642254312746808501104715778105929215801841978104805298099585308098532561837314039694721935471733387900324489769909255287003620128499098829823484558145625049285017439248148253451479388292957113936133008227765125195179423901054563248461568248774543901590066828437141555621415106902337686272403208968246296844712026617915042975572716628971868321629223038536525256650161182078109332385313803660902394058151955618880274051829462338541370255882298507349753934572712933719356562864605117752956970408563026889292471893585417549912186380266035364867266319014820130326879368131530001099925714163324223217516708301088941954410916664250958903247207264554067551945165353034547380169926032811226633639512293215505318107298854336738255712582028049805802425362764124940518038837570389564292384333912458598421997011374445430642477669786370786892064649283947366311304595334762156039829086192787691607879889745240839082125891662194324698634235681440186776907729345145065217058801840607361040197093415348509217736022211261712627890722191871929104929591376195124244297310815163161148617683939825430757081354653556330006683195806160944500649466554973589017287612486193472661786163527641926931541706879339925268523886234945054357379567330874179218030181643427444099597849066738236198060724436436313300375095967620396516462893274128649470093215056488732310406856746926815867643726725962555237140632337179972286588866854876494570767083063644583589029312955503809453450063121350841611370132108683986114812466456342714404950832795539452192705246350488561028747550138135997186858428683684652963538400258756260038895491751342769239744421817264070235326226622709382855563217445745696705924805561688126251886592986588588641920704481419466197002409800938642560166042175871465122147129963602020673294672808210517617976905871207593973230873162470020467923320018195723567813323347568854916533229875385839736216198981224614895248786991918733399846864993027263107946050189508526872061284915502007188010370616198984031808705020322754833484169358775267825046600951311579151599314073243472123873833640840831359890831641438025396358389297014818799142674018463184256134391745670596569957020570128403871875141674375900042896092804729717612295104915137849510463169872784883068479766774671841952202848915195219556621655093249584448167753446014459629166113305271032884707395138050999237425998396523562829433301433865280628774343071667106849519047353843852961547529409860917546209395009211446866008734526653097638252684696892597485150405241098705041056635480902794281275467838354179339231240662441566668980326024157242476573145811889609032818090937383749400650798611996852099607742768518193352685179828029029799269888984909647638415693450863286446270949563795014153087597532192434184126055756290682021775762015375581572583554441338733279517838452022023074677278359501997033440580440240767439969758229860741842131087331942849278248700942334898643247906068719597442661081802101035970808873682577101590647726186804804853139863193607957610453850798914145952641300678312085804542795969104051443474696649471625297682109168680838307477908785916317273653256268218949256995529223988540482609203797738923161136789284635973437924292997873614074635139975164417268372781838767595303002557618199430732706422297575848104892552319299747551827590602927180568441274214576029128635935273055745856235848663924753986819943507628955909211840084563709930831865502582044317565846786741828524585819655431249102043698635363160363171149098045089524779272985339339094323458226724102731352186619561713057283170110634661495239125020846839031542929037332465510009282380887341965646494521696261930637809939394502363537740491585496398880854466820021847351949356103333116547922385244750315417097630539191402823889286582059493237420758498165990994844959253057874544126719226196418326912667223171189695045845474024247576684652193243078218413157365506534754734206777932179910474738082082284363153051204321748345162160605309782598699718104238626000276190424041374803338553536382302491735264452850554126326267690701417368120705416298689306503172649402926825011186986364900485824005159660664582521670584287150935660324211092935861539722779996111730256427300363160212898988133503327694703024015890886601765719706216082578694422018467067276302180851142946744807333492975081904565215538516417813083108756336491675816649289148082467855823442145342069291665498496286992176632418414672082440928299755268534357337232217512436371036092027888399270845094515256468266460129416728986066327202502536978277070934546971846806824442867897448102556745083894375023051465597259058665576149849255501328504836467029164374354696351109695803351773798649629380898120138050235426624081992340992062181795568532774503644048985537148559054758523672995656806949705516490166477947656402730610307293164294556560248494939845359271044212950592938151544770028310643079481833774622214857487292136246659756846709614306959502449680164985507552223326905276343346328592975818140381158658387535796595663018330531986120524274686452258163647340690664206442262230073553919744352933310867947607451034256160997901109043054956914963201631891209004827274031170681167840939157311452014180878984266378969112433949935420710794391215607643050827980286787466500725167250834606826607763327733172230652627996182914175756824342618652412772078619915738727575039040418361063207141459061588395483823426580643200028072683409273333695966917559432964341868351628821011350556276042075262698432807767024320547224523179187946248799798842602794089656886827139538050612274753505955583042022882401693740698153051436000594623370961111214799347858598480399395236977346310304146917583006082380286421455224214494947860800148163199068187073700992941468102026925471218701693487558733339168797332276879449391557777006459832552265901202452652460811791036474000175663686226817615513837357337211098324470651773020197672994664547429501110942746759645033350767812037932886497303403930391885095601873561021521698193298668440992572723040149288075514646710269790896930608534667951436729867486129572758791538720379785706521575013798883357883577516650059458733548776000988083900460181450948266941028233320678192911796246660929667498565029812594803920879437679256147913040233732453430397004650455504496483385802920709886988633951550006673733103984962820460450057959899855744633077194089402548477209353126771922141495543076315848920966462308271335309631132984587642994993862427829476270528654615671003862538978753201845999176520136528645576264906066443485294237821075952733396901830808545192547260550978787911773583167602537382973432804281650526229188746631746344048181882963459388291971991420442508135443890011716382569152703524802938035395957104977359182424995090478669172546928380601810479815388298480246320998885702555462418720328995487475468241604321692399197982309305246022632455261813725966781506072551414084929721791618673779388103867706103222737659429633643502905691377406456260208867883916561074999842706526730009668403891385604755381511997816611516452032693891126015004629476338420511914018335091607911074353244615261545980624990185815810388279336430703705085379230071060479028222267983053646420076049855864069984190449260720584348119531452310804435721230933163304537978199803986810472423025217828666383492711263803378283814580792817610519734091586369825708561316069239434321569919585035660125910956128017781538890270346950921902533609488484341702484326869017410894238444779871807348919316177739713370718386608068244923367448332018042100903407846355279053913027417377905539729824055480710486060387594506603487830210095124949819973111617175648324745809925504172976178447103160550149780184019352373765205150313658113363832111436553140234213309169432720983369334407593663020762780169015789853603972477976253602559065126111520818440578483662329642297720113844938910412235410781097766230834878563920975752143666710925066538695611261025829936842594367205469194860646170583207145997856734290458209975222653813044974491387010573309838042453863250533543765464098284002198507479561689619464764161061442052154524796614666534500890069278902683425732751311165292712650943858149906941721098709700737166161042905145917032009405702356865180814132728703951020633076298103604100217390257681981824632644412760190521415863670592338687009983673359368444556783692732469018058410706528679234290215115458597983999170181269318030366774575816250282853289760091505793157872947649502992777295481776842115213390823884076542688901777748404795430552413556913008078407191179882751600982984553937839777507594276504388723015079334263228487887624260404650701554578617318451346684106446585364100658121102551368512815853351146740822843552306550902622373591904570673274782862612850153797663715754300456809046508447061467637360645298945160926467429633721609945099300770070830723331229565368313347000397104873770123373858571242714998601051082936130291663473921194433429320492080406877763552115411893814579182998097088262097528845976532047203261752389646117701654030143633202917793230999109769067701767925838757577125550081368224299300933497196293832092983943507801658082072281664954676599532232346113720900716842578670847932566974498330677932897963855705047096251879878462087758908230981417920139774669699761935743183343343162284707563587565784379103956777625321876207097204002615167278832373584800825043574204560326121718516514470932153454834136557716390629414452901116213338769797842484460409886916071627119182922381779247757643259718774704416009968223416376838509819993207156770159889520897366891727334468163017216671904371618579560615593243613654069148872111363616624181450672857040592652841592465087781856167640679529139882650274195782004578931614899444108686253224007343878234058752907336010917854962427167160233408939436129175142732922463826993469454776476321611418398304902024342629006942406210905573112521464784289187425583326095834088319619659141172369819180649761828298020109374807578059230103554941530982316634173676869664310370995662690603669936228610294110992822381155279672297153653745533624706638392074137947167782513045430813682670609793400539761970967602524160991588162648248961861429054546077784124052521537320820054739781410622387430739004446626178210598562444349200850955674313564022404588600643411091545540942739771874043944532822056339257864478865138237802250844368027309266138591750277363933132325157896339514620383735739158244069340824352295261860320690386955119367810183563359616364316095217869748892630977647072425763773846044819431351464944593348007405824988631579578895961774145155591439284747437928330819180986772607119580058825118008401785236040661026505220842938418128843851802983781625361841804025171216404105865602535362426595877721792360133823848054246906173283390690027843569853450431582019815538288136055075265431437733987235400394120603733071276697372968851316254887107755987697855806487049428544771239009233043452357665556553680091879718295900521273920009721629676723920984081896482596538530112602106356735405481627562193634047962748746131566752519759776205222986115567185314736681461667415814230661638257516097547314058803841419565733631606474923167544690168033189795747250364789750118915310065770337275122860888375986967684999856109095873013855768281649846846741123572930272544826260771509970813102059005504859284059984820275813550866169350236328285614487133849070248098407278781888570429563285909808817933342724458127063354866689300895839297802511237404875638853019802564450132226297909092396706757532167294560283154978134930817619693554101460396574332482302669068843492926020426578784955007547958765668751716325600033201181263237274682394105523429399098709405049888026972201728016745569487885191741388569980898548559199190256006556699622365800846483249302107891093833305424364934371726103034986019265901378615772035620464967828905073161238820658499785455369077282163124095679166344698542675986298424319623404318531643698173179740626800500248427889869897018848605637246831389674891059282048661360986853635484075603344574102929103696881728232128682812580776621390036116024240430498763708074364302453901598600100155272569501315205834380852289111119781868614179879524788318066051279617644092134981624196085443653204937706767311030919180754664956267154535439483489129409324626127308035437068520677538108467017470144597295489407868216498922726975142112168612172937912524749277016734701834461837322589034566263875395208413135343975152320703633342465569920755301762054846808268441946663599622314712617999962893363407454248042519985796434823126399939671685759045978818618422055566830886299765088610751956245478335807390490912448492265262419771992817018168448392712972749164491085585405181715517763258477397497387768695427387479503970795902474684768338127033660669157461862801705099598581106882661428721562951619658641277097280363343788356377370213306427874418133792297334769686569266918199928402590725740691759810123709276441428442674311557292353561257699071415173873695081781402075947764689917198581682942962023427884287689162753325381122434513486243599663565152731027199116264721252057790976917091608861193504108893310872033310449043229059271524434792200587085726940921263741884564283971102248014363352047077604035492605673117279288691181496239876958774637003581274236046545912403879914026720192187572449493611697050014886141373145873442559389468385505258807058878347922300026542936461579366814860660436093764099370913743045537290082931170278930190037811105720700100666900921043191144332527607735989121201559018794053205027462091604599407179945918288501442617019352415904650196708906401539410538449600143978281634988957757437142957571865397189810818916642868629575235867794161223369664414650481601455632950154704876426076000432349318789018939835122947150915201699025932761982625797120798982871210232909785169746923630737889687894513288275340973432212396611082604040408815733605220641632657174260427024865461927971389822894794118874920303452896914338230758512957975577353997576582839238434782982404026415983730177394245686156170063813247855564231843685131248290003870231495238023850355030498420121766655010432287549257316775365915089639810523921144835782114552616534967036275990365453877714225056192035070260777712713758726694681263813844117120606515263866604161301849083558740862831352468423654880219650654567065287975681307437640004574698569001391858276150592767401129015346217775989269594854965187127497123389325289156962048061163972976912249225880455500561076268656391624329964352143809157066234576016191145987440471477291699379301069943797220778310991888308337987085107897694364456541763591598141216892734945990079189324713802352383608286991546383859374686712795317630587251634901033821388921176581612590351988885946192918668380300404402845635797978069653309490589902168171554983200798277933043820437538850390592484760188579521502925011801193637771063706239167746919755328712182048672114123899156315322477245723750103967958087321483803300718991808711846327241723674847589266606701935124212847234188132021553808218662262091980130768002336836319503920979038446229894728349232393384184380591117301614691057304162707060928882715681764612385429192775686096091070524314295912996764366798476263358842722048042815955121754772460188297194453525656420340532166439912836957762072652975313394166558653571199704626460329019795429193053429800026001812627546069582581511857739013743566965453082045743510652749102626836040311918017256279673473754974735042910046263924846524028423152700593042624305573837337850811666094568255355613139302221077461653826821033771321646434115808451462520116331871320910655206318883106427228674126084627071149000804174936983366359829548308826382005143074653495312524961541178673143174168805919045560395673295473733876235311525646952180095359797578534199756831982055023535644661291214371235732577093473601525477410639212201610018441209435372919660411841360511048877386045886725692082846779398288184828747091389276561562431995567946478254955204482603797278805467309026676293757522135504965617108758963946713489507117406767393040072141559354444371633722406848437291232231239261413565790880379853470217499039989065734144022537044019349294221898795475493532169895856968886766232466024348039276725528367595809042411451471981697834143030448018880380719022916398623870564113135662615431492227103058640838499568974302056816274028695122556039775111588052462605416961089859959664146556047788236749942694696609770520716721074462594091955922744909065872789001919461548538660234467948346179762683019329939446849028718203489434208440328459990779949322642355625043939960979914546738080661768903774854149729698165073765632208450457533658417998623126332172183087470443566281964069765426211723281115994808047725208919103092508309426760633648555404755277671648721475362693683169336374616988585899398646851682098220971402528314092758776266841818896200264893380278383421124019355065799149542602549209843917164568675747738701640395709098949618693145671649557929267680951291957980795738529562183834590990814768008492780667000652519115227080181146691761141277803955370850605777564568151989719517312714850682448244856612759891302864393069460444087437397067326223776311489888684612053926099607090680790341998144571083959407922361489207449856258674854680946785848123665245327923262819627208641347911114776788263586294930254162308077997160715421841863845263156353362208828036453507167470459973628754726219059644538731455469261660390198915667117018349058223225858378685382363431135406583549896514425197387446323874641634626771703198544029092419385694520471636627457371940786008310009988217846665557678935717041385125904478471819198989494185246900406346077597268853389354835051358295166013429259006656901026088846692214756449509320109674072335755432709723266487226195100782179264255396598313721192156440259609817110068939863230982744290138763376855382273582632914321555694500842070235876930794997216249597891618538893644702493056508142916008306819935877609240803703372788187187963285590445372326349629712265392987214168128029823554666054685344663628814175290164739230156526266639273108233349845509353954095224212079859795396299482060482387374470690330419544833483161492782520732217874393864803247240890593978675068711969065237548324825258945250590512600007804558851333404654969545247907340996809025276075680926073535384170496605346471706386207232182202442290861585860618859225598791711836717185884402528899023330979204803993140659315223957684401063817478833863756112959118547093486460158523257716157805372038969034285287115352045662425244136079852922348537440173597656244058199637847377854359207713968939349426161346163077136697255737709492582403216221259269538416570672803535952814606147192550463661938805090718504719787433003678322524808645046474435013123854718017223533280619636261851732062655954294496130367052646114642142127352479774384440537083150821098269437286555107762017290439985142164482620697082145800907107312602176424345430915470387541037338338424037741047578999340142489458340580208566684322027679545904840233205441483667792159726329557956105808394767409336954821876662229253267479056713774513456329959194882018880314714565806532236650110169750452161712812145812956689432454646616043053580971611869066276902836386500065383821600105494205463733960093721567948308822324556624806925854704260170374746987752869096360773539407197617911412517705075112656208160347578282974398776628932434499581391293049396949949331713538462336933356961272974661770728795792567752475212726115870529101398844073572102918740836291086426708752991995867303564601711223595679928257119532824727960315770165058729896988727467220596288975982558296522717678758797635484256425509258325581226197769430815517638322621155660995692882315218394441864245825924025505183805987913433305800550947103509205783539506574666995674262869844828430862085160998064972270678660052206828650238690722693578036773719117292017314116906213272793769962462832047885140554601298609090195676175038429372596834655367361209335642353738193698021817362775761874383818111048854712011852465533949179349171579658725809309153101577402506455988592081423229903812281700271506038525612653614855056154267755376825731665952744467071213629330809223456969650647772769068388299661963988255234979625656404910048210684524184469881190772362070637843158816796907022413582097995122058225989585726232138405725385957715190956203196273126801006474755343784149420703776746610541494692301262821695778243623591656682161090209518790563277062094855132447884910969502194096143871412958638161325250771030931331625833868230611716720096865241013836827660826262701316182974376031070138924567380248255509931013743518861556002357226167164636666430562673778917766870446367453880227247456636734030472459388947971111955655545801369914286902783157141422597738021196473254826676223812151265797610872761794385010847811584209526335355610751111829509259774616319429059359573219262684281677221774634566711936611134739568660442794453826964391467852453716526428744335717505931617130197394401680828526108010777403856843673164672578943091345277795977569903414645411274805684546232764341513824654278849561821334474443699722252358754881823921103522784618999968951888991323049852993003647466663232441519914946181068518573329484125455313285746568564420358894502772533940069743657184600370065653820941634393184117660978468995724311871894155536695411350085970275005623049719356204263739552656429965089980741723833681203702174029348877531905661619871595888512207358991446730542656831194098414553983492159372952256436716042405708663211694773120232950919918349335286103559650747179117806087449731265974124795529526104380954699181727113674161863284277531351858455218921550789911608527649555074994981177980568228165706228044500928692173393191274554017385542660286317909818126927617518164569086625014945552867101894285828791297200362743495255928851895484661197521135759517285790081126056651799344089752917493344858783014976835806170521977387469753396879094597348087713882277267910937201272746922007480444744197169100077805500633155552761228604255833808724445583658338862092689407455301407728510154023825148617537383099498954515672401047496562843261400893193741431722218472905757907525794963078942440323042892101347885566238626528807599204306649895856255672911700853121601119730712005329278214960000511134772434255029994727650449886838252468552747173806196503782321871429354685839175773437876139473728253998947606788837869095933646350293592415700244966324125554375019122026082780328605888898827551167316288517619180666307368886864250938047798854393012937766978872396347529539403059822823261127106346640873798611016265953051388810512214950209429376576034051812949519955263224859458844285398325965996291864071107859889123174307907963823370407066738215312452507621812976761500234947074498811395050168969349186849535622352490613798352806835025439747184103003330008900398105144671310215179815811373591545357610465887632886401812132056076749056596938376589569728981197407695513494595244349161488051742428834888841893174084611513943630725457792512714912579869823309881848928300188749052752367091696171981798009679380558813923045306496521396086921624252708481919934348623822719339198688283218680965078082420241678605025583228849628849196270778087072186384028053962423979930176128860586877062976527211768668022587161745165586017499461594101087945602097830590838051938904825269705619290700810453719737650626542054211098128254418108557850303957226619837109243643490382421548554880693411254702422217466931893514522358733148954296963899424414208724951161854824896333389601098334999708844816918359932920395292495769487879929612711829264303192047934063082518160522226976074136083223433994457695445600854648953276250650030710164199336487104555590631746640098677484508695998921848626669070735501461292821401790635083068136739402171790760826848238460618641765492453589397593902523196169916568704177748657364262013327400438567112236008167503573374523157075033840425750736783074214120346360151666725539340749039140669596555067273974881388255220386740023215202208455289998657752704930142915177887650660019013916521782465201272106829143863520518385430450969226934577429201437253667626216098661814884724081293295280658983282376957495834202404033387397635228438497491207894187165555174866636014098036494349642273205160137536078971460096211904602768611314976644161755154295934467144028982969721107651289302989374531296630955892046014501510565461032485830462254954787814677180645221862105096706263099592429331031548021019174226298260923225617608513576697871491821349990534744824944014067836674552541295714499510003537571851784162565313053067335375983145808501327719909774176740013896518200186785941185324910389005907250179539173005494963272074713265681539817453829373167415952373045850132975181968867004045372198576171133796597024097315653372530572043904799984740071808254487926925992879852878387197996982200772950776624910297010938091504087666918393625040667460935256947162262896505008439037645973584407457182049964946407253689143377040929639576400193166006091310152579465164490511165512953024237811569121761525578146267221832169618640368677995194565371326385109444474402441861239443586419492009302137414867499926559277343210740641884182313293393755651663580752131109302496786961461395099324347440553838301343050605716193329146921534216778467044057468010273937126867625705660405574012543319297879259193566244981791833875036033812311823595735502206211606823184586340238300369058453335895344670653330178486032075131241289248799610035627337021545960372283664319671203420211298694264176018330644125041008517966859910794359843134223804107920688586795896250767812486307560393417773382046061180875133938282777255328184938426815577025177377238448796167517922948749758683727822242734188982678051879141744507237071362510425937080249833328481495492099425871633448731165216814699675371181989549750183406595698402532444485134433191724416093415041400330227660294003137043967560960410928563268875935522539051596191622017607511245569228030716602358762610503336395277489647455057132086277300609045302317728238180960797605252896696208304274059072768465892323321499090321804950166627533575167235595283568795223252029157926064388956051188257796620372084048058042275008509054609376437871571215178929031846798668201938615275919174802833466770119651096868828400889766698128764716066053988690996309077911792100869359612801729422399008346308213717522466655917969008350386885663681548059248962005470811434624853126042392079139260368941713942280209826005395389387822023191426007809765328610086472422880377409388452056726392783249453081395457409473185293578533447552047024600502932800012253673817594454315325690977115855944980994342324969374917577503512817598448510396944871755921933095721787314205484225651512608253955039833315421107846190579637472759651667423594055692341346047901884605072194938252815530940883970650741113903795321834541284895189508395035536183695711844739597539742048705606465369934726142133686101577856408059714542754229190099277310500645325472880631086252550468148895964414174840316569650474141468722718563723772699019866549792618342292974444245132824067809812903990609335274848680897625791051396826589103142344873413071047155401175002319447333217731370856700721877871392554913378128504272721309888813137303639415134004901780121400541004976131294054159582489074922238973631439611733911034032328012702196611390076494157330818503529525581130797421384846735443948229702843989445215371485391862217019191345025948618768570023761453932279379396969730133600748805405035410327485478062606233343728779250037969996073412237098852729902165840749238351736534431781666543017574722414899322983624500446127353953897885805471579273652776806266402162341418220007928266585747289034998638103228681195067976163632377007279365399010865537424004194406670273636282650247270836342900755756492507343108255871739870266458489234123796620348972648196993788119090021799875171488098722013169531928137164231397603210716833307642126155685995344244982378407245108161716015201149665729233395526774463623038870819643138409120286488172636527632945963473868496649870983412748357595650101891765807559442461302200218678687960187821862257988029145409579247348707258308402913463493956632556719169683365122168603840676478797837417455480629333819679960225345034649699283973672180102676169692798070720553918023398724396065283733113055411185904935131760807686589184551925142982284266972439609291442784830584423069009281365944392623960899769107273971457933583266703415425861999894870511566729321929008648680493110766850829906552827038102351569323952265100978795583876049770124069687282043995836827180057354933679728843965106815812720036964697283170565518066685327562521707932743845849307375086016436324694326425778278070627702932354670790411590215944121584788495723947652592329378154481313122624475491348715161186614698778246153664711370222439762860224806658062136534351789779099292346940416307495715537066490054214697405127207918331589278861079043519037552672630644318672064729386529284594612319790780590345035672924143454080452231155254905456057856756660196016852314081796938263881272179217612442773283702985024015034660063088608494225679853511113826937140139499998885637344178848314191190451700677253728739164418595201872105096306161606492492322276479106780172414711136295348419010622666549130536686318086694869230448044914668635736663445247782439049730252645516352743613569135935149240552175191891186912927359326497344557742232710749543799385466273044022132719584758148298673940352168498871172152491341188642012626566700335788595470159440177345711366885269484756312379822786094194888906945492664179690017825029323255837433381413614226679243639098252713205495187297458485224249267830039125579418049627812764042969888502009058031200918187942616543951999092436765967117682627387966568716700434894789912724887696085093675952803365378571760053934741768978344791510408343730396399085232368837997120682493015501367004446105129787335607757555051460799301737363168766222861561630953696540592592709781374116192898868486620331644653716554721634588782184431502005022776206543147903466007073099852060565479748641096688728507452878924967162115329319501969105620375508938609525236676947596286356568832258376486269421243505096793215928039479250777638092689268085922498799406460653829810490595995444752060521571250911469827116350134826185919813390150840992806780174894993678077694502721043821371887464037643491891398905836978618936379435825026053367546083357404631770362228530030660592064180429066320930137797088778710953680824810520490640227792125684386260425536890870307958457960685043819343354323233868688087407704884730646258734400768278158933539189571495817416527423003316967447067891165457861755735861855165624670027656904765563378809608363177658799152238414045698405294074412534425271387876457341837232032306116591051586951823913945197596437840987487183636048922927721731461288021951792339414890814396606215326082057866135190567210400304461665471725058808462859859014712753741078005671355316939463751259475464822575878608500380010929567018018410244482661799732467068658434458644603887763121849449812224976979707893334759719892659126358426605145560689486234339333989026684538047147754155946925101054230545913663173602839908367519853297740275711243222130666640750074540598164731813277996909240945789342194924407159896507595142538650031371408177940208602570613490633443721979762591944889558011294444879002470216618283697894133521092056368734291968167694886007049871841591822519392352527914385688022319398484734348690108348595429613351272151058990367415701649677720354582165513180069365244052536812505727552316002844953914507019713118086260853114759320087878346139080321784222029395005639789171587622491831905811714624924628414667019700265591865324001091443517323145723655245860738008304447544771469484374484134786405112392362674638749610480545408045834217389613736169978935633301153110523143016978751070635157816960534245445526905658563410449964848599058295835821812598942391003807636100168572228240901380950889673546785014075297328419984783955408318620733623895869910957463157116856830792193693558219559145642070250724089932618436547264501505390806448852167233647681134370428761632997984713153088408786538772189676177281429543828214721017019449818765020541191286553432454021926089384882563939727883238497206506645687616444495164760972870008837113544162431325044919719217444277245970786036107740760633398391248138270982888772768805554579394093972317242960100469975759749001657315198210412386760971911493067949255048688056090604345833368036621342559721938081365946999263392770104038723703984920921561690053418335558828097632693639068520202883129908251609446944318409427278404681945852746280779493959300969476551520076791787649580582464459564489684478633477600381316747264291336183199167378276721183971541191106013721376451199265311643241058386481551596898631526128660185448257191364124800699943619952122961934063816311321734617873522404087774641568803103980368498281311348154981247808899143341820643236562033944660731613606263888040982880679879437277738068838016802509314515641420632601496316812151998776971377351406443016830864601948425096277107670777460292845708061637207415180280752822002204561855963405788108656405450668709492238315278461996023243223486229091858835930026704182366769107925839749401460824771489124513094106795823688632147862082006682350920392334515820269395655339566588678552364081451210491775673687365333660830120569348518311070156361218980867582151277455155096198835878638444727905293363682826378002975046647576279980609972472223408505473527914268761378978221838340796364641384431459673253076616148299266026058302066410237859633809535926062547682164730102777225384111247006803354057936156759271711070869489429372639998074459060109527934910652830607765392592662450072796151113496259847381788762588146149412099451298644181816622155845482191572677053783813912090804014313070723413140567534951804682555518129040669001014167332233457333793260080151194387813352071964399075019209562144709350512423248310116761727591251044432742814105125791205463941069802003894461758189860784130428154964132795344071812526091692786057917753751894883676500407858388356861052776855831825594892083876061731896710146589098739547610743555012112354049434301243711626059192496721926043237417787844707053780593938002334882938528471316182972093545519458891663547786369794242085142903370935434581641103315527024328143626295636953004996629992222454221967777827416993257511410839970843341463945116970474525063002414353179311643606208112952143466006265382721218684374528292545157054018793584091684884747172550370261386957716089851717113569895847056797259742779250792890430008615278056536457314351219495731228786026288559748372266188014557884103620358641384099753077497007309645451671414105747511182802249715643442884718633711832985011348043395017377601628316380248213515798787256205697140483485962561967949920265232736302243385911817988728034072871222032164328500145857774799900086275671522652084728564428761113762210497751152127003998485048991078633194832147637928272737802506083431346192747632554723960366613685337474072115030342329485481035163459064632788449116177913808689137175200538266969093537556659265499630840297333217116838133659631190380631821603155696535591828539616312190775028191850495914264252738484622687363341290163173987505386024310887624414083375640275706254497253901385372310557031049247198006310243958471646051827718834741158630060016099556146143271480286387359564275775034336722919011095000917876646118066202249433027803918938125916640979691778557488321993849132456826242273593901096122020070187904327653060660298123421728537622229047042468839730286219540023182843207704993658185399377890269220610975650635610791419593170486466766914973110733983795185119434704326041948816653687328774894927792349718797588720667319864059103131499527709157358419818209792501586712312179155906388423824563014330841451504755576221909291261738886460986495733385855172877838580891688460493324866546377122380191166889460065692100651906815101643368913988136344562206292119195101820232363028373995127971774867407596509119065380277472442060553773149496849539517291757854674638141715662297274540674342885428423796894188397002069202747426589274076740722747054478037243388510036123326191391737165132280445115964685322774031049156867544779375546642837371610377072995661421185610462197910443501438590978418872786585981005097201669813608408438064593056306973539730565750828238706626921855579075195359247103150749096600440562480764494705575638077565628325108654717808762673826137664074438743440820070778746288531259230891570573300895483878205103671900701766010586239297466811194173906809514807110459251174701681300561886201524778194270298834992170217788266101682979255897971314298600797026576049739504944355724485335986847232526970060892126549526385255735078485191690175462288867751187886195069631248169325824966324271233979772166599167451790201879053408289650425145487428007937086797136082972368513097593380375165896394736293707759341732881045221768438352991310736583946176572579395790394879030608297245341341527861375921413048051455663588128722762097803644626255801776466105034872643851553845093650354849586905726771782536965015523293611549970408850332675220775975715149276029313938223427457757973638594833894475392125409231384027386186027123779384711293361372650973515518093748462906361051401252240308744508380187127078429046411270018490784838514526239254153597474307119600173224978366330473826207677776940214529706566394332231198895029862338547283485820025782063986315620601841283540134262295220198361389076660690402167954200311317591756769795896996874018404946342817105426376355580479331841706504330553632725238831454082703522132444127222877563884096549850641220519364179963292815156352966629582367831944726476045152106802525011579388192080724466891671007707326319280730445825013696103647865135770008080950114826298878800458329011425981473103856087573184987631477872369786465702883243757673454046864009779681412617300006541169605350570259775779231965301381734620670555831198296881446529170139069203811740019971893933901439931301196694887392777131498515855238485471349014610333742469923686105617446409452039833028848222927412546354824314065511766556126524315209503226149391348068465154673136792342069925146124940027379513768864969392605281854570700283556116340721148858758556270196495258373938342404042834238186235203227237984552783583388179065815210789857239804435435318033109788376257453553186051695832290971482032684599180129538031375530454011870221189908150358101149770325202519138761833947576846766102580013788738535387088136730782882283863179457216298101813907002046389655408776575084615356102390340745247039938276973767788012502643479705930796818622512975974774772268644010090835110260702609430279273318961229413047737286927778294975176157535438329113380354912275704399821489755322319500230666175209505563933884459556704984645097262751558108496314835118935477384219899818410541730681398732336847204869315853874179136501219863462624229859069135488166668320168875745009437535896187770716740098407351306287510903009388408093481800862860657772631600846030938426121863439698808005563736309568155082345557331695213992297484510456021325692362825639228524416874748673924874975888883131016188710011852175082597241672396009703081516511437498550166129307587117026609330699237377323375837692758508494661456990151008993095550483185783481751837504317918024737271408849349970095811183882301775175874955511558458745619768794620594907422488128548854494835629903715953033062288550145279617965839799452313388059595300483701501587429038825629650584411086949916680736502541924608766243765854458191198305620960271278268260988308758070692555929000658092066490160921315658102153736953209407821197173436272240304846369158403764792168219693275260463825723008637934885289692777448744608501161371460436055046316285248663608662885878608112001668605363240555917240522604953291521892000566150520763717235482759446181371098322334035303693867970495355645950048040317455137128809654996009188024330355598265194396711545515497576790910786542287956400496116785187756914624009843963347903233968062298147791663175737633935337419781109339332352470642690950673466884636800240998583869554141888312028646604758574413062771719506483269573015661414236451215714573685591049502881133550297378380424173225543351464648452785768554931753597941360850989985688866576901817806741779523649036982571810225166623241705755209070853335863510878333058506990659542300489916214084645886590228144950994342876523290533633058591511193894164843205213232859023968215835601447903968919862951823573240223859934281942911947478657971553709240353099054073846040931575569552217506383854943809181218856846360427673226331545608492825199553955816331805662627332967858059726521402264834658706054823411087972010058541553663026679688210750473654552686068080841879941299793523195032199469788015900243939464207290344901594505578532935099501790784141476028441964127318230872744377647009160252141669357252746339918513584894391754946748299540506120125790608166940663725788014489981228683041086485337781242474387793997348830470567940101397829078812685865766737719400720015692674040357624895614921482941941402059585327959085639028815474311315842042222023081314524952388038949142092380262882820972096089997417821457226990789548802076325543093490100470135577384872579284024356446679959060094457626462416607373787028856905389564044109989926144471797793116742632194484943118018999272573536846301888564783019644456397449647582190917340915004588120721245938551517500285836616263173180294849581978736096249962095005718707425984562295821457018521657164951109509822328900269155951354959999831302184924995969734238577547757545881900949165817637208082851894768096246945406878089468410609348523755389842330753548208627380827557791284628029061536024023560963707498045439711576338428998577831126190834610854453575500815886131685940805358130588383525583135620838024943722151978336887555059637261052133398780096077435107663469370468490530551567738963416467455552034518298218696974941276870774931002340453465907067690352478268769171447193384098836704684100172834139450860218893835469320351742720813498217502111756589905590871293644130218767633937386453039393963584009384045920102381197634335708044935701378118788729584777245441045413741521096157617441111681129724687180709202674838499830159096696995806962406955842138771106895452349923074213348549919142658007136928533600129315870255532364027504772919305688871240342738049059694999386499301942081095558475667026364223774114359404308491475969420049211370845791055039425434350563369644091758951713717079924968776122781127415695273968648023973383116152921422209653582533182611672093590254557019221088556181571246660896803641832615909526648990632213879611770507090329032681685326169949571165164192323974519575956931949775325194619236627789987131277774071047335444746767464225638019421379287067990484026784393350939823506097143105342325971453843784671593243152107898579449953765657063790821075470429547899785132724656558023004072023194693805343076145632576926319868488492353362581107904804713780738517568709697176591273930761394696658732583547182974386334746563137450194082573504370318258270812708729275332746200652279408182686125056684463418607563389534771209990860200606697812175889813277764253095268692868782239456058799549708352686328617345892373758026689577613794688889886540005137312135253287585848229266715066527676207991431159747073423018509599507468030565085847326160810030945307951533160094546757686053096917532928367997941082482951703563802066142672177534296594450024699518411716250782029695477006145497578575329341346752879985134441451290162633723578631742904112478576295617135127328693429417016296885144235225816218500669032396814082646137299159010783763932294738632078570609625367006701731342528065547787221840258423307517209749480170111718496425542358623197143842524590512143522493400858730404680940086548237602009329629089792234169854506622831643619462869737600462933263725187329241304473228419336511784122191078535526332563698695494605874575991104078743616516540292614692887875600897814638254580369932122550803334218531322380602435014268667169358015476643276565661134145137319321107778220732952625848164141014368817532475767496066220862641036567912695384954468820744693928654226672926432336672210226664609599684963525002025575029390209710226281322004815994163059180536068007882252149571665997186516832429509481979002948514097085608921424027888873414654067233936553098799332527873201404647613290351239046352605952342856339222272123115840617473755991493265857098049182514882533022873711301571895254329070929332720452664050732138654400307066607162450484355324910522581070315173150044010268424879800407027129843737652760412827197552006779934196339426220985822743089787419790106341959278077710206159409418680684822191327048929905682448133602511831905446215171230474044765634507887939250373792454601464003866680333053731209691725696892620986759992329242478553034436325183230978360584539232058084613751154189320589554864906053323612033362771985185918934254358199056817724841577780433516162747613103571923670957244021049811989866307658718860332376904350799231655728059954729149700289379522606459405646838105682179877853846000608187528100351168938064907109585854764820426418554386230906212100433467294089832086518534160459018733972735374080705811143903253388979762000288915020068834904735861994236059141973877482314490193728456106886390036808245328943540659481406556563434394878900024244750962833744895845878037831044564415307298532828569619166169575070349053987187568926079233170392714838345361008745354265052514433354293452729080510459196486332113361954412080721257521615449987311126474101250219634343504534835573130567332072348514125182558173862110144734585415057262586702648726170916850847713140195620479987944517340338195866586127696283166200355403695789145682370860586257990140206629939448607702953239672770451901282777248356924087378903438362828078296876872272492593680051549641767449096291304488869130997800596464656827842976673815293259840578113952346254512099822215415930649269032514429053702792822905291900872916497124444992782560843148539885394304215765078388416768741513887658996916645700866699680112833176219375111845153381089443336359527658147890899768492460898821740671893559348770486280564200480343718098146294968030093151095400622254229373271631786399959277081812359685808897792356309636508164254406516580343885270369988373787539297734558813161960386378390524282698697074273363942727246924150958888836731724516896820612740569725886644711090445380621021915784147729299161819544689040044610714016003362380247982099703075511190640962272459811604281593141559418566408668283326541015909987826110144813344573658620738720745713178460109798206635221167285053305569543204712805570510823219105431527861009978552659246922077859751319922795607643805969124722585121740334673480627182184064099918413488756350476949651783710260033861734784962267735167383681241771374449880337023737498176917243352055168059202598987765132301046135746085993480949786641008986116839701292441800907156707643696720267921819132083941631202161531432781672920591880214823671843615826379137678556832126894253647078262604436065837815664086101010289708735573302292695989231202151914771216586089013015254828318822338337186244758516659497310422180521815244876515171173511422278965962940419309803658856822902576351604226488670309304099933559428942405881024676787451747804589657695435635501502676046098004066588420377614530173140732605626837995672357081509604186806419119357414869872927005154019813411117218919179289602272183200297920580045026285564223945248972037701277023403837835635802281579913232105763535099695257497135589966534958202830275558712652910247705817802118707771440089086869367698251507279464282766833785677259815266040832125449208030928932579351867147335886760473588573992945940839125542241329208792169922794396489450346495256386983747795911500839088869900883898403640554213879839484004189353647104706653600028763133347017150722863942312774498244214212808405163031094832070937450738651922631768192285428832860683043090757539189342475397989544962942174117740408981236538370640568077473011141828116839690780140402126595479464718491021958537889655346852761683790384375926938117263306056009112626144277381039181170449932454353013976343742048501355888665853389316102125511130324030876200990144603813485784692685485742220640984729084070504955416468858536975085218727118218065420613525095607088855018642112602007499084159483925448168613435546465332747735863337295651993867011147537319706706790235591454750119001267975342521900630853959030400011076800387002059666999064899236909271886237000026314531778492084274440822753356725736893417471596176570239560267029260112968305793402381457873591934863047395694637309703817125400858777065119596757661099502148240296508398162450716753035440227326041387680126306708953773412581040400005977270295036244102076576074925019478233710551858462764879231630360425406762153627961441229214893253549635727079762812576769304175253521400313241530868561874449594836859733048337510089414249802353194150298758831058637564020195867638900463475073727733937128341733139771761095071168733149284758461441094249380903435205212808055393968620457194219894741821310877372756677974204080770994309121807423874936161503967384451257802476438741926122234367268875553194519259566863760775790885782328611075482253801043654435636606639268159957054471039663668358170785080432166220244215041131839056341376912673215036973893780415592906027588040836532906838595722664636835819408734617585507476336474609088104244237858083812542669792173622076329232170732778681753137503267451614754995964422600983116752509278464903267973886071225523511421122651884730469244076808341073222057882860484754410110896969465837259481840931107386993113686458411155510469273769903654674615272783203898739580181426619181925479179269521150734401114316306110358853122001962524242148049372376536444492780029981658516909435900499062966006597614205824828584538572968042085956518668363194727252560054867667528502823069420501200766976481621973025369434674060384039076648006021435013096870767694858605269937713608132007269060002371898918656599847118783678130309990443245731900910524217435636154907740704252731567444868917690586513240359784132326236951337545899764729895700205784266460033752516909189878802546557054737195285935584695338268645280041549998668201917291080999799035573356630327198660671985210933510628989476357969608051270755618195465707254965041686830260870490388250396294241273950152514642259696128853126482692379438129320052822927777728364418493426884824267417807988063713925581981072761707762319432638914458569111944042360140768414451198368177422070669601501752856685265621244896296856597289427296599179312524043490068555287840382613612795376441981261444437992983574365257754632066921701099058637223499900111492139524273288966746385174939863203995739790257718327045140573291212984251591044679359724021368363612783291240691396513225380828367489436772944121296103423967178712925741845920047291813884954621730589483860953576912581419552146965501438655504452144409132051486105287656436166541281713848004901378526407237295280881781069629964256554103256069308592100430197788735161465093345608874362765991794410712948602033584626382569240728309750549540854499015672278063721404262442172809415039712802893194891850050958557693551631366714679733264351235243884274072042342381996906649606995958007859648338916996371989944359694999731629147648682475424717123351923447056501173551549217439802595516980176640949463425831905934497064785994418865196011195589858906552205009718657708789797053170818440366590822398551801047027779368420554049889319755431418722696084703785541133516738272082222524732196756449884137753542068130667597512136959530642071612959783938698624244043976025275139812336034251929558942423255641980325481732689177998785454337616293840653686490290204477750208310454941722119058939079296791936093983618393264230911759967130058509389299794707336180890450383463794022696970132835666142517438384169392527203906019779887917017590190300326032487200834658572729923508070977695113500830610074910858212982966224992282912753457735368923447752090073921141911497907468571173215818300416890037484069975025586671021255992828360800678966707962459322037877377012206948475194259159502457865896986334485930523764515295522633783344426630658124371145479088038398528455715994673948517655810668349818661702612380398838467339000010738063214804711564400294553506862744681094119610772133794085836768913953445736405660334929499610317714039087735341082638221981166247391468857436076875176769117328706859181154426944854422682616978236217429858251830332725245915529976597382899289992720207936683977468856673329638310162740984803992371571387929633179184667762450813871352438576531594296347107964403169883451253564002483884046180568755261501265418437922638080020488234181997522643467257119943822830002653285686964760814869644408521565999874144475825087140590919937762214705283422183328239329029421822845778872711314558808297543289203829944529841755270721723540352108940472749578594742558825549008520657683054721159130811904147148173998875104909721861502955601525575756748427693551582783957060549581658504616914707284442606707829906918317338558625390960363340393006435081574643059234165629724375527649745407440218609893836715302519177589159150050858227834007072785025885683102382796606369660073995278004242444509832341675065941838777773361855892543533699163215930563695166177791145919268806215895213727581976941091933960304681680954312529981334283805267323425527856855714694532118185709321740833149337885969855069328385899906156442728263667389602990459872165905972118916856193959718989152445595998026573607452594612954529958043889976462332991798924160080029688944552138700983151520993700383110778014027758956324947476611410966797939756192606289778864409406968850258603727253020161066571521540833767687893879794049364114255911612419171273692556430485146177302822705183005661847707604447039583272264596668035353085046637738038663873456683514646060772435769848849539338857913059578826626714532803378671342766389316005921138712163152188738698343387352312830467599214005108681308944870691522955004215724704493978377241050231515606161724757059075107678111050975147986885081270273308524272233355060545598888049581074765705289744175540310002112794325266890475022367714724107910983904834137527111503861849325165938445676940828696392925508342560207763304930659872670816038662674389705763624093967527683905232787806514752227246365941816939457469108885470537976351392553474184020639428374737422368441000142347482882346245373587101977912902787674271923187762969045079373294761179519902720766441865339926677750918268527952104801567628435002451668875068818154719001032112512941920654484837521866006600763488583300845444039421914847010322177572049578085345744943051104545265471853887712423458746890883056187067085318124602898906459944558544608833636731749804522182370363259342773340513458120996765153145340927995764232920900277008001825271054248955292674481950906528153103844695919210710610805630447600141988888115792253220391110292234528642383974380358356757217927363185419191703428395801737849922665820435271882570413425787049668224016844845188202405000058747979160646265223180622031798867207881331465071303846829991643822507655834567293952230604365766733357030789538501552287803760821135340099585899878455429078584934848535779264993769629563061406029977988661543184441473878455482039317144821907150223883593572590826735812061776363148063060243525841980969972823646723565292211126892272586518550879650147728552234288373167060924225775902888300760111077922791205571123316381336076866228564243974277508356134652214757368716298788782672110741972786699024611693636632320483360983800103852364460752807009023891932818892214113587483383134854676855890605806918100688330496689642114357332134312008756213379653334410302798533241171669848879112188095507990087656198066477185099284726700572991865268823979970830760327271155120277896801264904824964008235349063463795093124758559414584083657879811681729786347311267085570966006764077291179446208190355972930199047634999023909628205583527212730142692359956187662159160514419609525352046409152761640947213151232238186266277759286885871256970460715513315087977471474022966251807710607356112984022472492189329578307427992852407125180644913093846748520086677299701026265237863481725530160242739891512624468867247782752256681253789066907401435669336660969551309087251614895794198352809661558789672745318185715651940304862385743530742360560817071934717902899859928547851390385165707994041517942476424121564223612901306207943055158589136999911619977422669930129597990578995311336060435169522847867173069566922756460854667622728247570356495579413263258822595927641221538063345030085242472512286071098589041415496817197203654880603694500765037479112934948707050674363454323428569679081536685855579602604463918302168603470117529782301486848819542324143028212854336316837798007316355466584125755453126571593553053197609423079566824779125179229491470481261394439179431234040708427573160176527314939272152228444243743526861903510304925232064552339476824769449397415899429604060143973317470142786387745494742354559051713098677768077722134117151334471371742359883058095957262850987308099162370215156800202478949113475592849987291131496810139405849922821241836517671503850094196685358666131676022967189574268221425214976314204919522042504282343584493853337400255114102206821674501034325956961157262854837771588222569898186760125616880402163773322471392064769808864127504150076305998153754254535524840102677935396514878418655327677079067210916912115109627632725152093295543237770342406510320751357713204210082862452644517508842648124330580759088194290023328884869694897212051133268316471755410373871847945642523386888006980794087985399755221209164522055097604250503759623228929020543739799647932603021017298222138277391966762108659244248898481862070828624454141603156550912761720157862852366657614247717819947142825263274054568796634982589489115300138136328806358541432415302240042414580741000795000339502828606367774575547854096314936855100359928664714018969960031630867867578232733160111362532948048309029606796008869424509921790521821726206438539847327100984377836508827159324801931861167920353751622996663824441144466621144118479674805929931249019365926176592150876643157879223046721401262955012959515683311534977075888989044806939615252546166871953532458042772683962663390615148313240227554510790328621037320162133717475712705006953107326970741492522014212298595773141087772912067674402715377983247142554254807513891702573024590995268965013258423942197106170300633282028009234657946312190066489153500740603652248000169395144387487075523603714516436430536832441672814145323967675321769117495514781062745487901932959989924142518179047036324548848193390458566666051424731023207928885027750794001351747764024137412131640931732271269683406573078364381155522097046172809622830222888944337726097321680090520921700426286393274480584981594136034200772450041183346386915895906872022862876478139553307807553966917261043014691652632389425170696736777261733963212999803812579117060770126680566734315731052193536452365250718526327510025352801241809799406341906079344736327098157085565035773980745996970599083490462309079898802444759079212909029660393223524943678205481088895718636269478675110221206932388449330457966791945744865078570788280537313679662589078477591429474377089359715201251016641590283085574931357029174284487752297378481648597426511289272708987604071968087965616171013052678703790886335720221695363389785111640339460312345581969573038089675957859417297171417862485397397839879219756865057582693452495053109826638746252120886135923142688050811951048590137168191166168413065260855654800008208732188532668191932221705289927989617561679931353635830116547064861977705100792072539842720635142974437429593184845250641470224328861834052901754682745412388899190547589565936621914016834743711761751056191545780123843228310568592093553427164972107896953837367268430077772319866014021750105065516463008860134715059895813997788777299576793820162367664363141090999616581754419172347113453776610865049235083155850631205430255153593736811147599165593313923101460577176087489775793697483458157572942188032141170240283743684018132941379005290886526226173908734281518661041811537648072366474488790599865050716599922220248783389805628905247284482695037342619908264622470960647915809475079722430187083388308935788044401331789890016048714119367434024046167507004287640518847682677868009481416754293785372194086334812768228074794689689610007240858498094874702518027039216245308182572929091286960681380464040337953522824646569220303446464312468806072972470931624632978871253831787881391531212148623336069360094131710299417246608561010586663678810893691659288667078487451302914140234268181169586364147476897923878303418090827860622390048813933510425886383801126196810212757569994015715060446498580252905929291369766477669115289164647719548073439444353647610727098847758464595826089881982198512510943435673077460154837198454405687959428117700644960734698053842468561755027133638001973675397623193852142862872552916037031465525897626268375992651616150681653425680021750381162151178642442196302635670500070418075119713159225608331598305292417424460346817807181100868976792586744889282816775974678919031045626635016543054700899568745487532062535010128848592715915625484811118092826729813727338797665468534628610256044332981614071427506311723864459255424530518433090187752289445448001818543663678294006355150877514317415651876299384641821934204374430012132968237996886388844090565188551376314886731072067736093290912249318291951425360933470061188322865627593207251650399769220215430847039675896850451637799048005148536164310882356775867264911947917692024730020999430724304670861689748313308716384423037937943442626414800708694035752748366955801401993366851533635759124978139842418947764856785954783095646750706517326227416785537877079823104103487359166077488379516930458266606308834131263693973702266278581852937257009355673014856001971309218555864317451209413805007369587728385158647051732048214102719501424572098128796596819094465078502737496554076272475595048138347270214025042866522944473592822124199772443411953720610581196587510627778225314877934359643186856558673919484859920268130548234456473167325967513326043335577198717707642283624464488485578621679014911062806872388683403215562473085923979340144322134634753942181044747778917273465949458692514786292900690741825591604137128596876144005170337886657503600802953012752942896708572931945010963561630604578659456779633297480200893781426439384471153329471428003313558761402677149999263189736098413765437673668526641657106182015065430029015080298632726298415307278194398564959122157941024625031885760955011046300099513590403792881808604773442937933263994857765827836390593821968210659835183106117238410717409679513235287340378506794426182848362059913152141135367016115556131218936184345175524755443660188082769750920779862025594663728635072797702012077515400129774186647364223888090462192504832280039618529928572942874980913986650543388330532177020563955499031714772312764682073208842819925152878297790356684621099742191448844968195763226103598052508536105403189506552403818447687408812867935406324574564654265500964041409562257490066914221345206910795176019711320571674338598675477877619752410751905967202250243200124346598426544017199056018831022289300793203294601435910565799815330331177368880336288372760093053238682540759065444277747385884144344531905882284685609624300615240263552476310075211289387314868557874218208029869653040723469585229931616996580427248209463386306696444801571213326452573540595677467417977708267324786300299989733800045162421754761191692927042694013969478417670399921700855008020957763662809586034525047399855420763541488075805218087997363992392724581235961559157794806975147558640738676360374857371074294782042067712738669301809034685985087117197052082516716891733468921905143260280858603613097680496950346436916197720078491033143807201322961805040189547117604924096924473044097960794785375249539564816127135014838944089457338573875784305235226656279125181341439468302657431806000956297256837305582631625256088761313633010478861452860230049609458426087149782828130599616680988939109043148474977309001966191830700113014851646713774974494998866375511297553257995332010856292174528277591218994679095239974362113211179306771096122557800180581026254791117793439726306208360949898953616304664152974446756949151659516597353442777126750083388200690321410735224117719740398817399304290977913935814639662094570621216071698567739560739874662220810504742977187309840349403063467858291180614397166481458032884049272373138521485812844774810151399925357608715814813791578671416011853219056267616253904463290637591204256125405573665728883908479943105818405410837151056203315915156375545864709977378547422007417907740969491925956200767139238162003607459965551621751939752774046586356978060622805304531712282923999981343092347013794322819944966404745973085618808722034622364651541007109084957924510944809566260619920236470221571715069458079755673133643743636057002634009755340639994191906809620485756153913305896856426318011071986964540717840718675673808105622801223280660457722378004693511862430563794656003671935790122183568080006565348919292249286521728024964800567205348309276460645029611524252603222229602860315415357060458729355259015155533970722016777634623359860238643912103105380813521877409803485200749044696898806872688766264019962743536941529345048017186445529009969237398134043246491795888641185674181399493272947430929177085047187745437652246508423284577209434418040061870818297436430524914693874629039477898794922447657808306480740703208051570166119487334219030118722066849372008917706007049514290333531288446878582723138196625042066381605010957059003340422159726654633924815772405811126864761177518468898535393093319962297281774302410744653896020458801134171396262621669962083683751617294255729661097863198000968410581518851771326820974226251340616345439353586051105439202014582941366923187047505514142469672428211075190351508898103492620298924496117511368706093742672871520300164664123374336431336795725048359761862255221307349714506802067516703210308285795902585306906703178361813473961299347979469427767736819690755399305773676019865521321308418013311196680298141298520818172068419985573820183495593571165970508822003826211677428024714739772365978632597531677914521178253634736695920142963325690152110299462346422012254245234967061303328619670718386898225724422235526878397018426228569798066081252860090115798160906236283471651464616867409132728857491619567623619972046436352954754832625723595162481982597435213181814192221772726766423474295820690227188010892613571460191154096226774354576009730789503018835371771509257872979105676925429919280373591331681707118109327964265649616896755535783536386056002629024875273336250504494336673617314194169696318482049541659794397986512831227855872334991709461401144505485352419642664628354163348822163973350528044410042162218567862741610167266069531538769191551620337814814778305858304526115021929527321329348050307487443393446704438198620019249148457441515638601726601869080780402060588287354709934723926947411782800760495239551268188810560114671148713052770798418747674575347573659194996411713442846198812759100849353181427058422071145162689718693130499823317844062448005643313762865646423728662779020924893555162776760307883951667079803181917525755285446848208434168843847531992565677997943896796806423496308736451387688370818054950730481203208164109706791072887570493092468104471543882965715297767864232111185137620294295443953277237728390357632239048493640527238279125719795867497757841631983390407934005133488203041469118358828826605554647524739247316163283883307859547187671624608782830813529089978823310225768779077558380163969722556837553156995799793590887676942608666701519018595115373295077357012525058001871720389148598241792276581528395368241303776877528084675307213844176872916244669495541153901153135662452203522479185151061527466823651115402894399186415927336544958763728527060394385796425618603442722522114769560566469531711275206702945706144250231764799593068494760732181958083992147446908954660989944196110257599630926541916230189797632773575769483850990020865436245640902513464822930373483722981794299746861035571772495876890503789309302484954443235768388244799370311530428225738887080939503060417352825622424722241186901558596899437335767461434512133423308506845674158195728184631822705403486758709701443763503945851091627709220118313510635326859881939660350152996782759666198049512496081630984536395052204442967427544262663947327468458299474196785643209086397112510312619317940858498680995385834629296642391628876854696381071973182454569392785518468443744564569846776628963561746969040498078081807827773691263356370799010438410438622637886447644451720162012854007147463734222835626917544521389638488435817166433019053240161138694133995232672159048737331661908330151825675606996736416100520200822485375083776092220453389925541089121018082184001739740924645177909285529375845667064306327054516037886956788308317935737747991761566324895186228651378183971746344280399694839360952438787799981057456659373911130584857363957974816984197234906763908476319113152064492272787194131458571613763006245324909635653734481739445690987300493861914965654732766701464467765798511571833107335402546447160622378187907581138861571947148147717551782700933547113547882614968106672973901190346859783019496688534127161356049589946433227890732630908065610991343610858688754663514469165709490976110458326237395838350196353982629735691300497881448862892312465797782451939331759661054414377530304260163303183124114864773485540922264430496610861046018994586284438661689275762619139246850680988393664860973313240270027001237927285048811283430787529356077046378916903673300946161278814461304309180327110294131392549029510947707165798264078939127629064462907168674960930433882966172341781948725792056761523337974037783941549807311346767602672875692245616539152766340155915967754898456351302255813342998519055770073390547899310497242631877308584851651892701865450930454909045562679691961752279957296374721474547974208625863979195310137821557674228216871100429875596871555652521789088282586700128506861679195658528803623897680065901156505954060054983238337400706148166051785011859287776117325704006518308439662036524957316052694964380982987507998311689761071143208611865257950190870640488365719218412996360164204235910346410011023827609677872273749352542911623131823492235923719286161401185091476194173585200758070706043425434275154103574350345325835388857403329656181188606251987555774833104125960195934272635365304921626333276550514980287978853990111843120717566852701826314556203476829378997926495125002205755666730417598550885567731666348031762826975568310700169678056886935612615188073950165786485868532325296928749656985497821738190719375760679969356723129013608710830822759838262790693248924524981471150866925656673687120594763621021770708707887826304084652274247523664781742562027357348170531536703561305232439474593847945235768804620658535014420305374981958414477163769812248624190280048871006068919997051167043646344184181103794904331643424101893858721959960561787722270321329133202825338848314695280171050862092131954632458412874954914308536174446527779641978167548040388670026510098488729611004592978624677673967668075870309123725955403392441648019983306996314245450680250725043089541986569012773660682680519850282457181833398684145581928179280559862408536726082581542913607602567508471465904779068199457028992223270932394802316807352449739156897546864612399489391130095170771223977394130010458025607908272222891993011726317759108113590518554930835903500963692977002619621524122962121220557869787422810376138885866701499169357426788622797536266435277549913719285894140568693683614888801215325705660847579852000061031241834229467040423887042845498609881088564054521179647082126824665385903954756162806386786103005474160558719845916071166647728435817104589788084613452671095052302595906205180967241487738877910633004926782461596293372439477232695343896137891734793601307307137748333900182437145732313802540406576190417861719568121407442210333162137753261001267037543021626067091054064329180067762074178903902525355862707563977078058792855146967266932090804309551104051183459139547256216945641318711135883736498386207771837153593812513775412655577598565348039789869688193943750581057456297460585309646825445377976910282398937014002849496263944419467350438550398739979799082526220121522376469400473858440959410961653053153270437331994854260223945127350093716973629189717705786869474384469644361882392617000937037296430964727157419722358754666432516164945094004366714480027984771776590325589999246203162675790314560780856229435256769830033683769925769317406839575460101678746632093739389316277819011514451110102614249023047147446072571002912591698202623518412325642535225645353601701107225686532414718934181554298804598384125564683732533051985554479847135226403130142941806344677091190747933779069216449555088599076113043410851635308573076883641724438427533632494022154872377752225454095476464432275056716958182561913873151900600757837049314408941807908313368334545132283021597450649982782479822841891175373194749575202385499391980919117123426171145962872865126502845338573196161430871293864933084958940699572121303405278555695758303688028527590737130609369633608555242632442988693501097309569996245661017060911013419504226148826734161090834054862644007809702349878709897477254621218534275010572636424365318318394975352281177284371711244602658030909884123438095989659107246300589369693146037905449658094152900414049368653022166697269390532406261805657207894180041558181559237388063070444413445830226872748962870451436779731716356986453370535853214045319057505611773831418062408095473531549551240763879237757975518804967302142053909544903902111116456253926810816554012989307077905890623042549536076243790428041842920228002866941901941937816157942432085206850564398853494242337294416595902083144951556163381258789918967754750846394333755876978801117214154069445666940840156878454777234619454387099193567186559934998602810855128025308451859124496770076098807487153631530108569681248531922722468809674895740583443601200192586454034456010665322845045751849581318651466655754015848487022804042290952834750731959408183385717613957354380249228634599412663016378319645842034638374885564919148193238134909849628336076605281498122785918621032203634559017714522056918364544255079153485343705626174441694249522697138680498286259006477144088825798586905412606025681984661751556824530091601068110239838323691626501610060177142627576994550478905085630756234295868296130634955669653956791581353359291297487475273252242660650552320622832845134915363286926838565404533301756952710784340948534321582481711280419745521870542342544288873586718828798807304449528721722906715369828720083732798347074594586905896350064205927113146326828784898461576107597388077863306876550531654385199894530769625620016293047371603620432710858086140795091270874932811072408299385691244652008431168441825698113865267416938074053637333513233926652206816928845094305125981704821659855353699986877368914364348723843200113347707444059923721735260127473825266243855217054863247830123871121433626657960464104567466036019378433322696369882304362977953823980155350254274170858799725917542663416952537442328709490996182345258915641228710771790284820741573135816254623734151864361433374414810384962698728528331177440092222776816936093859253277497844840903163769587611650949127476780709307022805282846893738022724699746931434706506583044275350409093998307031278429307971116344252324960951260852860061156247150834918901642331922904542277559858629414051902110885874844233375383988457189472259475406331371316795005780919946258245282754905406184088752309681435237680424643606478146543734524909551051872733831158179897463729295774591363334109195706049104180024496926579265917402013445033646504212058369122684904561955440211975185165548619765631053355459684012538876861350299441678246927428230978506039357570871908481037696842358203822503946953082461360739638210703086409830501773869881980003267831581011898816650758423525868784908379704079327716535875789472101761373228707766628064344854785989950529379206176150739287770899912658311144566819611392165302836100470781530107148866202630363176721563413327654160349883507603056301558278992984642764398492548514600254293488855305034232604695995431121760675982136721597688816865201981950983356147019135175557176559708277295291761352381079445253814914745246962306700449270881613617398889977734028455980320747115627777785489995035102235054261830622865608061397779942842395355727491018497966132169039426117888767177754410267444777790992296365168676576959139711761480911416590393133513088694458417768015808459631435113143601365716098735822045357462520835469503262337107925812231629750974597084904353963178410507803978762625202346272224065355212166241415296060567894714797789277341565752628005379578269700535106211889206798652100198684332564822093366275908480842568789469209433562278792447102191196932900349948945941855273550732791545463242965133500362701604228077964701268312047327438898899211095682964441642413380495402530838970566440398380802430405590574154603621688557019151042928726116805331907256597875035727321766412136076132391009794156325633725173747321946273933226882409995836149714909549280470760553575370889219808015872752984970412081731522108593738937697156863479173694295722544880605142736598268397143224118102607384206799074929645128176359607598420304039439302205797499067696580915660940814559244912269239395749219851244588927468486406406178349001695770511890250206469966811355188666229468892179134262773170874904180526509919974489900712177212266162329786396228923980656050665993970586702392232908176748841468026314438203526856949993499656426455694598180494737333375573286747857212496057522346695735388903529981346792859283197239367220933934343646154431542263819377425943428795449856847327283131412958197111490493878509499447431735302747060635714188577259521013498991754142756611276780314622736713268327716913321224277837705311177932853661241641138938513097775205436876139822355055570627618711043714051472452972747054727673494328676522159307651515730452890374569883687235871110200233908077966787941592452965587771068023646972937027350683947986959365117748575531049068857519881486031186862850989508599331162093076383934558672678607484449401430157754119076495115887532074214281922458947514522207950619238660324550112696337371835804080698475642205286450450231200218626673583550180468068657126318673507098415391971215230480021266518764029160412903126819724590277299052615664410297975041504641038357210957737858762856309642348950506640938413263912905885540456936320853367844958654443406671083274636694294074664845213269306791819951639714759883777110912397195521143449642297196502987260656409646619679894671387966860960483716050490991559632218128199356274646904442163595944363791032521615690238560198240778361702775741432314523984399507560819669016617675130823422163416301360821525258818775326301928958030176550618224494007111276824268262227272196062851474233008279692466399772975719594048573369750674365303712125883344715904291977755541734240310659122623107995021506579690623968640182908081484669078684314035879545923208164906939454080724006676460709362665192597133579102246688419675045177347799729463204682137707257688754560595891618109616932572428387089494055802501960232727113195626015056514781738922938054310055488232419385656698208811217183430456831945403640884236392667240463172241630024021187558996907980325674770426958932055455368708164123557378141334277440776463116714620033540595669864280502802309017487328820129982678288906901237764292336234370518818178217071301936288792912567641851549451648049089549748987022984942064734492673004471879706545059564304823111965096857439722174496915779887959229569410226247920818413520797323292265610187260546349952031071934263916361879391882008216057816332502628992564439434739872426218794195035403767628079706945661022593681289358766327922944548732134390394711421306569311807955139082821387611855203742473977473662588963108546734871654220518131003948870236414042010194356672106460079543524705538144726789081612643418783049736009839545222693402557208552835695532715438660310973747478559123847526081120741037140929709946198235319326513831130051098691692838383030990968916750626930157396142746935450026269086643287963603911020239211637323287901811079888653762937790978786860232474847658412590221963312869294215993701190149795059003105207263464619224953763771375737035035307071347029551389614520727372469001239445800959737399323376531855906208356275155959976994031507466982087583579510717792813936470383778912155215008860703975995172059131234628389560860847921673273611206228661435298265417637975990020299281108777635245679318027506089856713513055675936033080034362485818252508204097039076969778979042017819737676179539530342988439958797318213941160588259620322175406034553269227535553886068276230647784828674532870862418614084856364985422938527653052584050558605887240799692798706043377057965319340882925445436663451381877382985184239039925176440821481419515918788729295897653126878422968845305621155634814498971893106501907783684602033185440082636996736774791821567437915637192346930355169667267808761526207237076586172719076516855634668566381419829954318347626269133704366896834477867974827067694491047551715698346794956251726004193921952938007327319893978540162031787462252763448715774558784793447498727045304427225907868114222965922362574402243171382655694575720539627425173183486197290710570477865229792359469042939861351832383273424323930978910548067556721195960437649428830776153993014630939348825010826853836850650770659526660827605782295639557708254674575764269622904551043500521983462251302775444293985189475549407207099590648281964025817089898974738363733961045467656715972598296075680873686919676673347506374366460957402025688172973513968121875453313359381420381465391413050534257141727177712319716516929554430277155460324700687992313676817821810190794735535752783106374186844283545045178184358279849002873319907951565975700631536390208831767831095601634934506921114945882990192551383520991227062796363964789215120921439884906446101351804650223812493667810562859141527062176142068943156402175040523622782175259926600908901883335719083687348569279524447521925056082430579691608933499209567015152067199064569996890029495548716726958840113767354630041722721788078652116771547035626976551172184961019865123369929095263834943228786371907599180897721911361403673385597128877237226715123285037986205691910607704943544372583181731861704554301260833307779284955888954613885304991955534362845383832462994976881551119200845979567731094079395637468835443609853658471753162111145794505815703867831314239188818487993119580333145994368437191152506890634142963361934035367576570039444571515027193784213004203406695998072312711111672313439840360187876540846577860782364849392945697763755950662220165762774549394329668225864977397868610379141197734749708476367743111086407166805521019975708597331721644371919235084563280014995100175570415942948718136075014178008063998709357330003027316828516523150376085563573356568224508585997690186566793402600214956514039980273935277574098224729491756227945854736277599442890199447556380034208217652740573382285202607810515034034033902019077060820702109589003455829092795738725722478953826917393681548465671014801246844580935495424336589089954155673413101984423475383919226131989210629658560766033692423974919972310425194496027661842454640744752138036016607425611899846707520351719623539283749114732423448463944888035407114269391778070436492491036318413486090122712748642841288018158942815070993718245875325111575725025041638760064394216834623755445699480207729759977427619184667013004882593746557762373274048983829073566928826679179105692337898091411175370489851829366015736288337179448725460675992849389177392616395955466304710986324328028891666729663827367845104006449774640569080186082253204015991090160533094192731744148358610959666343482853691924712988462141858643838803988720935320398805727909377853921044608989269176676456858362356911127496191002209287495608719192849306393203770310119537872566338220904335649203051772173718388261125999872743414105736082343760788659789387909881482008162618853167552350149302549132555517663410371681172367908049044686267703316637817363828317209239240439589169072459786111903188502008045407275822163067150026378648464216241787447153568959127673845562117144635782225586029847469660767650909264037021214126128743501398028886812508672858351448455811022174866837137281947231200498519127303548397293895391380622469561114455482825327500583465674126553201651657378668995571340666983981677048683431108540330600602023746192504195138486556367651869807081673299640996952786007855530863557549420086305289143886574396105800926638634098282822728047463728101484463378664966729502808067955052725519286199834320794765108897831060857097349860414325793758328705318536390684645215216923428943716181865658290396392527338422118863190138439214650840156789246449390252422000556863628567072325346093472885418410638827459221607631712775840234242376278126500058853468955625102499078977321494928471640556001712146077161735426222219968545532871726061125854625150879642670118807088158200549116213888531631055014553340366601991734677485483561964847552624513019442888725024355683255375460614164685236611973057116914940923036115932576908111961092966731771353172626104226668941195776898507263200531705547559337708205669550339970753978477261840417186048773700238557913473129450333364234422354008418955404866538772412443863166925966282822162856784270115997665117681390385636875515569392567415879761229077738184509154033701983721658283858135848966770071639630606018001407792485776477547075043013564155785581115682650783777168842194615442016426325233213330701754157567006148931572589590471243898975759818367910661500769925733084845662300168572756687513619440938564156204135804242494459843462528904867439547053067774492003404188004843158593207399657110359910455784204766675025639840639031159495638112127357200358496553868691265093614583378931221765438351435873806339758764343358601966214504669314309107407134362369141574312451998007959664291973716088257213354354955291727328384736726655574590465339432634308806538805530722597697965798952288580507857518839874990651954370859104964373363526011992402704131534344538248810024875174514049862790990714327070552735156720437884551219401174027638381544906327008801080700951555343060575903841040971887756062330251702996920104225341991096655320080150422055419475221077243225288271551960679551172595557813245484650460944563947176444299115485786668579059340631184883300927420360902258873765767591854893274269803632378516350596239426931671650187550504419197382455497670597298301556648305296005985486193650566248802017352980998266493235771956627239373033252729075784501951180494789900318174222706500316917134877686365611237707964039960386430350509731568970501923924561524760731782005908964093552193012086538453732727270802709759604055281049890513229493536005102723131107653237980298905412895243342174747822390730664387644739661649774959923158142240928839375632971934142661625876052260903781616898116025186103381107859992922021544566806682218362080004503642698954423593135479957604422854222962026265601228198590392454483887184477138342121768692885176362352654281243229244653621952002778534564687883329136119597413963160563492266184378826851258373508378721665865775191748372586485191990704555532787674587898055861896058972468657828359308379656867239541662376727818908655039486736280920003102350315211668871503017887633884618152255752707195642863717225560338079818060345197210243448467979596971223499120769753367842418423986522133640207467472202239425799096050065229771058333597867691741132897508036429235061029761496308540110903553337234346582807150118620128439245448698948641875606891640109644907072613224662830183207955483052701111192137737357026366119287235837391073270820382354085107596318672385836601186646752571807623926859829228272930467815254690812154502743462053279295624298405722871985928294109151133002835352418208877596694841038755407363784253589304937987316307430014578312621406967292716925213248037427657813138356008776567757876821737832698670408192643641361266986741439064453817497657581270321876727889409032377765299341128938097228901822984735570465449268384578952437989634010513396939821089602164913295931964775813895270089043898443121299762841345573934571549507349678182508641542752058160210226163827643119452137586246734070879800742875062545007686628523261398272375803134866713882922049639621427979076564334406961749928823393170662948676134605377351673024688650728268208012950149917215667086602980493163474578128290572027651475193709349466595594853364957563983882260873112936714225387751742104140653885661735907554133938734030993917604823409400173351368678766068102416966242236096491677280530565987373925123400601455023010281175745517257558156045993749618126947342854330608316175230494795166288738646601532058710392650982509354783500072145118782834794981756710851608925718005828328308489800995592265419402200641133953538915454352903593376341967005122394914779811689663178959106625958383980223549464875373935501286668006637219931623054342166874241197995285028057728236979714777111264052868300543771115185630155583135088827096606481284878236844390271314351556622365107589252258140460588269281211196039115134747812238561335805473822154701564576128589256504996133047397460777047370246422237333422181669263457984698916130043336824646328250492147022705289581801672319932496764263958387552622293088768388251503331394609270642792496380821097218630501917787080871819567763723387660690408756773487464735278523549908804375129056804633648045853205992359850230311932431951642022823372092161965269493499487801947580084302307455907140822462976173557497720487008112351336532514091076647230803345402835725160987317273303548040824431723763022837596369328870897012270940270735176563931326599850868610289636093654873093651786180440165374243774198508225794109536750955172213723530540614125051880502859096489451122257391132913744767192241774489259068228823760709766465969262100133243455140079369620290802704927953354470775010146353320467598337180252413631516920093274258670528405563650391770045675343901289901434700306189060426082598885495169416970251108588666877892797625352139585525559727442132609326532698970799835453850937905532901697195612584843492740483440696150967927978549524932207027064728870666838098715926271075081255533789144975562155218761996877307899104364638032890094352321697478236947428787648910985029984237358053090534274987706727510128220890949035577421444748464730537779578928040286192675085729184088830904975775387476755369296223604131059707017044125656177713691412211106618248160964383418067747982922070644398548802878365033992519738290734630175367829851064370837750368833328263333886184788841288756440587051882908690578307219864714255803612257589342776503748625249933178059197670474200535814071147665053080510623121402450592588204608534847322719246651810283549467286324882358668561292931987724264210986143841398426086402229722427658467861312291878163019449521524749331833860697809757470027995329604397835104136669130044866671429804813368525022692151691610313164509404077315246856771016537689119427508807421849504450597583979529565120058253802196207182178307443737354779550703236924855991228104795045153897137589055345858056507328611045973707324446470376483072380514594873470963429034808579978994419123953059853102582260966523277732689074876657417156279744649245910522923563654817972067860846995998581131853057836198659259408333454607244158128387488201398068398297966327613553223936166339410630427202487138656825470289814494188373124177349223965405613246700116606088296729934204620335366713731040049794608354801605582407536188334741629290092325629745618556569331428220791403152273736722741284686558355306421116509292667314560823162640742701140621589127134437091806131063420314761368908347752703339921692913042945490004643615726543640242385142176223051856361639230271756287003309215480346521211006788087682716513614837979774095261758820962738313302572449074749542929920005589813671614029687954952751247233907290495768895685771415641678238808409446356270637502998582620537625523245651992944230347781251562489536022215352686731590887807876202550371297089386563865529384129037677673981261269454371569623580171480030723784940642552918370558488985762984953418255352646292310486444016349571137805967212965492125250725022073573861493335647354954938939946493235341672697916774911553080098473066538249759617848654025809878808945494288368784302262205447119305910694270098379983691662034824874779349418731283449544752644757316658237344217977265297804105928083584733491740508369853872993595665479082467351604283723874027062676528024045019433193551102545136764748834642917035508142308246140956610593907017540552921836780501071240476601504460664672480899762059350596504786263036999358529648562126417554521951927076789621272970243714237930641218299399079010064545418122922929653756971223591288594104615325163591382189441692712644668309281573074655332531365552603782254080633614886197959033857440505173417107520189563517264321032591811766415612946798158239218599662816837116644312358928330751697954807548512494263781417512013875077179994456406541135366072285589130423923904248984898428226374122177709795755549640155115815657634434497592139517417436383406987858211773685549304723973388318235918290504045220345690372366011096818994130130398619610544232752892280186981224578155381223023789232286335221103865944476391277705831267714979434391579415376379572570244103718567177558891907229747282278083771221517317868722784789670252545223936528346327821813885255735026301919886769192380969208959387869774798311449177523444350522971131376532416767646488353904513217536704718990588494378693407672828962314758277241126911011303554225842671495641704404484245169407630205426953042617996788222499096613079595543247733076102500529606865930345188926540791783616597027291454565030714038144653134103875230586176089205416053234146691972614199379025284056891037481631884394990037260177180748040033850381924641681283771815046450380683647283791552041687645431234665303904006891935640158694518886200409443769392542856645153155174158919685817444247911204091755102993295576408925125730749285359060345153235865889815246091702544593363419378820337665628392573408224884910165044533752059551853253663174101538036192970467555091563721934828054885875577725412658806482685595057102915534711457845317131823055403077448128934808942302182413277016133324996282615796812170109273918453459589354855800372185285004254929084361149299971768778093451278150915479016056390374410025067546598646544600529115818040197351342157317031310270918033173766279338927467724408205206454019137770136875706381818455260625683702670818684565638420814528544610721363049046629704184914126997033153033010622230555628041516936022896141184198604273141956367390493339541174561984688162259135177384550281362421272662751569367109464216787047234312106409756558818213976895948777486251586364920988529644659122191131058826921941897763724163627727414341834298179017520826210527366399081503988861662780734119812376648256539481189189060138562129054396399177699953075663876870231463623107074190823094271236123397684492611228535163188990986252239330906516755578125805677258509584917268963789455872737429475912061599053791996179054130920922557498842101022855604220619215530255445681635310008611519692117976837457245590166040626989435655380875083798850292254470871202242302701386061761168049634320131232510369655648349623175541802269135586563782299400090285066759347306486710366859282860256947562406908759599092893518205329834697373965410682545174525460243589393432271294120144241162619208721152304155269242843746569502814463798250202100784966024553902795210306603560030215580572268894773233541525488105031255728386259471970445852973141406604120589768405059236992724269711718196180835733600050522789541384188925426728780321428440280706766910754345404697093331048733978196520175671691487226239764345631712915797101152193408626787275434932334205783810782986588671260322242096741540351327046059772014407198427567828966131573496570291206726148698974351848866653506042480125661048799575410122926764721517145771204966621155058983972541164389648133216863129449452117687065169031414289282769743834351810986251537345548073950175420530433913615762589843944937673203737603311563982266133099707873414115378137474278578019323773308275351213675676467848936214896662877599301704033567177039244260820588557476956502988029354279789272508214008940565483184582525069054240877230386847070464125917524219127807382174896113499447802648118957945448366907758722301995362529055495644993130032246778430240998566258597313453202576359840930063313935114702525767681227451862331307184797492941006151717211998101741948715626092100063420095024207190311500689066983774174791907100428537552803380860485259764156283414753918177186189288832048757934816252241005141477541198206472335210363237599052218450860032479460261612174244907050326941839691949632297460690957559345850590112246193460727739245236048891360812679270253761988469312151593823899136569673671019049517397718542124327329866444856682205184336456983471749370002908074515088784494738737408167879824182623966555243302148835978266242792410521146632230389451392054673585590530158972767974396258092422924477513360535266966121040994927570039464304786992004019950938070801452882917115206433418992334872159309317927202662612768926677307863067594966498682453548333085341212187364524511164192386864031267098459432488293146843672774091946044796717355435282987673624255467062044192241756869538560499629965761996589258435243815118262146562935077680020258300084719739875848515331108945303669831828605412796118414090383082808063941988402197318359315846466765702421029867776912244949075438673998407206285585103565706590858730293927258876332097915244494132272063197283974886926614553727397753708336545062364161941011741880786603796544633671609410925645754318765898333550990084876471346494550585253330074187750276025608339662478714591740513809305033020565407095300062233504229404274738484786589446057405254770397440455875546450406701807441636655687551937464857584226635814525493987350591853829722042434461941384413803184800319782326591153804564276426821525966673767276280596017418307927175852103675878647048156860678784005301908851288532421908974949870066724921382923134241367722406389412435380850753818632203538166535386216597585535389992762214290815646068955042796523866213307505804784281942339434621124754088022725250012834857000317284479232155071516009425814572884410199499198644166649553397542912466955845476037569688747185244833174839066485076813405712762524141241354755598623291352095340069024727984621536664393504368071166179880561860152980942082421640419508811030316711888876271558023652346678909503049844103348032034567607291809321814317787865501775263061767347553549892557093227785867303989260946467364086956796742078868705878461758213845574511674744175800314975981229421317396745275401497389306838343777867390801273387015609078870823312415165659676155008292103811101897294081444358151620903491791976992873998717820489557723186847075071475424557784979694319930278441152904468271720300942099990302606356824104758392653785147377121911939739288402755957090567753186749507628531894501360711446810303786172700341540494559827906907932990067095925101048577331584452890924614691424350416671735809208312263700280639833653885022328835375657679837689443322259842122239088309858536814756513674052442696205413398458875377306505566668512676988769130039075647587863102269149041761806665828172371667645420076323929340359142859898641740882625987171050900802283200232231317234017191227158260457465282712578864153615046770115922028857288374704105380533726058368048615928800057526066624171063112583284865352915061183666798645545924399032166138003113626175968088842787151240361696652983108836899097725223140357291392620062375433656250823466122954551859121699149496903094081706618919799479349116622113099839056255809052299870037604368686149487477733431227718804748117187624178074253705558499355463558188895303101122223201493063024447423086617406331514296484772573789856274004394096275066963264087538191416309064334047560444559433921668393400546081012012421798110159981322928790486867447250820258049256582275064391575831447253975208335218364105654731278647858843449509516579432241145321356314239466009985400354136259377529960482265222295583737159734051404374706365410598793815759618398645318533070321471965381331598753421843638685814166483389605405726096750115400267714543075012504983166550218650256029522200876185300501734981133946061045390151165819710576980403040360731874662565088589569273274857508151158201060681583856378236111201159394783618336385789207967329380940532748686325343144104584808948221506677417571435251783970062323304655316673600015210594935556195982255453269602651044542504559589139654456273006603443416393899617697158721698592522998541386639117827874531639248060638492288051715724265803045148294789291573313883256557103368510870830808398178526658278650381854395742460984017738145545980885676610106403313685033935287217912561277031048480143689310847055827069676807049085737930203607952178494065965132498530540077895521815287718713529719748288020088291284478337400891362038846132209655949454497222870851982105444455708696663287258922221044822949149938247938139136631279625904440381699313397711196192797448286693864482916434707435119761147273040382806009379671847348517701846178619150716354113870295792500136137723505719930072459092410293254732236656915996763890074066819874299173765008510099253361147349906407313969071851459397322485573631883335859790000521872223623794217821667801608071008347780533028158217694135775250666838968370884281244887461881145414377232740281314770138757901191926234500566120988797349795863930204113819821137045428802673928743384479337415133143075611255318712878436931503487271068443890906331267327096615988953478015820602607885353702804843401599928365155850957422180188701632756963178022004937562736511086224794146260482832039396718371286727301029798010738190466204155115956444721914602043859074120480590263603169486570224996534413736213458487143417771897566180678512637848230626677322282214107245910755101863219723134304564161627100701931629229848637238966997500465697747536562312616897572777638483509321248008411686258890066471949141781340617307979801870848923717532074611513180529234004183158490831236686403530399593243149190899253657583093441219852317320705278681343067785597125267631004221701534320426974914923974087072753661875925946252840505885851358804109831523271546026321624502798880515026848003462103495659080471302132755246944654679136822719585938494594918206068862920871263538837542427798286102984555503322605630623138372778639253431266378657951277474603581903774526235786814755560977049885526566519757055027870346353656435631283639942150105924840440322209537010690940220270452259594438271427989209473837666448912221198276437829460222214397210812264869979460731167001450500248754669412815316486370040840355363157125687888018259380087661768306884880108626744861700489300567519029526732895688324517869271844821020028339369670744166030352169827197247732642506646588823126955125282316621884865873233550782500258356332331417984150254769633922979687094737948905583539716898257120702467220861606206276037150628263732698560510227063194867517650333210251443399698262229251849211015406700517471717410532618877261597601601594552744825225466891122051877689266028227514624023659217525221426797752752477808266676521686224297370346742284635541402857610789273739606108617473192602364985350072498537421207470825534545341575749657465197386706702785152843826756674598066713924771476109817967118206974026338432174939189179007604519653134386588491223562872254167003243902526799766895820066970713270680293980388529004008855689270419363521013565249670736837747951502035568404597426942515132153450587123078149865942081047064863454400878950258757150301624217519520982513470547819828056511589691704953897924381393775118313411209703104576410449644002753670945786449886726502105548005443368721752961804949097851408434601861782764418470219487133645629308612226793265311342822619284836337118911742389984768582455991805028917216334599775981040829783218244852995514737956485247398875262379971015910078334312474072218477573533283828647711551141860495646529378081602208063700160117385341050020761099758072993109942610699445392647509182520948557083778904513323891337097004405847923205924678245942947711511246550644739783360019911568430636310114735061388366261752412653978213593359572060776421356288578722537157541088646913223765597865830829445658408481388541936829613612295510334071283192665734801269568929712257360568675443155830915978395506447195996742851959535841994528559603676644470235571256537044677426795104686417857190729880723799172303807609015678890225233113550765064250703825895388208764883705249125741558084143125882408773697282154939089565759368779916934591280609829445233980524739338278775188885872741119673427658202042362278681491357221481581155079229812717327107118098043816699197684526718680927213959613094988726332139917428551937155189413575875326762545929930839539248966837084087936536719676235012000122639783071734023810922009154871880314838214035186138877624306934811156388349037089733312794029712584075962224372125130917078515665582457077517123487061776690069632191921422403837466245997069860771514849099977456147864189711351096670274382812084363306481097396993250737824118034358196160254655776948067346772549628190478527428961764956750175234283153405556985981965659603966555906571201343171444342374169360588896283277984588108786013585777930009744077063011901585665584724492788097564475920233761739049670193978345180149178454976619570559644344900750560404697966962415646131683883187872710700063313929908203371838300169315519165905693916374454315905122800859701793290258515406906960280676681385766122849005237203337817466532037048524780658470255938823555881654904380895481209688088111937581914728164351758514608542843369654508611050714807692677178953554256517109953334191593376356535265966543788948060896629199665328715245159577875401391471721970748209426298152258535406444227869429322271508130464743293430382284293148252244826015646648750729641748363212202176688109224392428194434223041643819154863100026084196925623507642181023405500152242488353382990882212397363012138785166121621060409679761470165124465036429072278324574614519500068226238674430966697717300064525994915407039867457389037011606865124877898858491268217761252889564999230173683015068496363170992463522113119508641721987158489864979308507555120119517913524154746156623251964043129912858079129673166190700356460553729574202814903753230273832725186559385763836083480635178604667797124188281933109940501286781527297476725043526899702297292017577938554661488123794098022694107596778839390755501889187383652669853026710063250425948252876934794820363697116459898868917768539054330927728844889702739741282844014890383791900990731884408025756440970639764758356675407683359755694351127295529772445782306026024039378817257183718662142932162905635809415086746026803681179678994417626807228903857897427027729606132710565117009634431077894906629481671520800121643420125952625883268486432340776962345557061935493175672235683288567159384748807935137740865710199794550861870587634273804083162125840138723749168824713558124443158153526970040447237170992058183662149594945060213680238951710169606004940396713895192041448634849956823215999126126832993419052888914474279623368331640909180857358695749120358078933390365476896880103679850026495101999122875408115948531470061651552420478350187472409701840840614769067218345885366573149382756102390481365002540915470809033758001541475033138086620728077133527970925190504945760355011971249794836775362558806786714312887308980328357202121276457619458897434911493384844213538857724003269324826180211011534055694071876530376449926809579234959386143511552902324724531792187987195709957412649265155645207675278860504691806659144384824778305332890912847665137715977836246751284605591781413408637269319283382490511717729153187800012257631097010526853952827699985000183500047463637649489842593085011054261342567246762713614171605654907742191296509244199560842161854934825078551267408884264689020282511260190010966285674891431399992547136247132372519050612888971554595188937901079017366302211959275858241263873063216241068334860422907451407740271818292075140321033747512846542306220741612350062940896423284261830793028398073859686775623496112194247869698654212341065854885326908795079761578220165032669705786066487624718425801939414702063628183691523654422472231733685546144075382111830257911470897904283982746136805352172357697022213443940102822394922954176223495194869737169154420134710312848886045315534590857644307908625428977793109973786017543222977436362123202379345615369584149513579785259564640032189861826784233714392810868561089080993847320597506187231369446748285377448905555185707676999534100027608988005668762703228050269792664933157931082492226386750487128469867070312369261568710417469247279222860342464369734318760017799940027883179930715266496930614706770948841609594197154667728670578964862418675266769072976667107231468926617477393333762715459074955841579335762491206033171937690032869768224904763974953746577311339937772201460025553370790812297978121324717911103076893783242949257589604979500231193535160413007164815137261240571230271046310597084762466109287230773321606731800780681740208651438317821264012310284476609543115637942457966444074473248219820747458231045311344923611806026387947343369011943046573002925896089813781663701581961732520413113127993123305971041695164665028388853877485959484623613811074900225820733578355858143027196873910968769792804446747378985246659305553599311417655339002982375094829595691423382273662954574062265189572273439707226374824456341131564225854774396564667919362241018028791284085675099346073116116270676857079003626025742288272531673921919606351147385532847667445105620485094106432716643766676674389617699552869292025372607500111649281068261377845779488538460771663999814585703008501249919549878211572366382427001047240546785147757511474808776296290754311065348127874436593937775674867541028700009201766689498726931646850067763286719199335724065014319513930255049710618436018641054161149150576308651453088723857041536273610408137766794249416567899370822467676074603572833522670817752718884362432819010151054853516963712159344798040432296058272330498669154657102541665178093575587925480006353296254879717170679564238687447422153692822652016599876939371960071030135943462357075819062973935464817146647098403863743396979795408507395047807753655183246222579257654968996126689606447035826299512661179324900650723296413132650734285001640033618151134788873659628410231017201602336543948770447480377685612118180211310398974525887114853135037983891710699912923842344353186735602029929822053024409160201734330649627384132114920618091344481574452914640401378939035235002575929734027609112648525890756432294409963678695145681931762475290658302425204698777802932378657567947184992777906570191721971440072466598790845347749876150111106992675666289402095448927975326833180208779180766969602720857520430873978329449787864299432084343880653426705919075443223453977751521401887195030392465732015391321974603087312967184364728232062659300733464863244356947798267290080931447505113931769233604150252025138060728896642624604338356696955321610238019543361182823644518407022553777545404926800807972466350408867578407046957586004072674871387978974786694887230144440477796642188076828010357442341124181351186846819378867822433547538249100582825985450424077013771185041264617564740188349619260012131560548008631318002433024054567171115862746984462190533975610142731021077176856372617702681073530784591429673026960500908257954628856042321599388490907709448779119097354337914203262187552188936873288665607939440144026273155707835760494887846156188860661421373524052207095685584497309439765496416498749085538439003593729453909242062579146454617851288177187719239084605708299863662908648768236461327383099915370399579424167048640305695354416363437191545610593790172525042518787114233007006941784333525242348764675439681220021779132602379523056329078747060736639719543643794787952610275242997547647010034564230928541526997722562534837905008223130142168082481045149414081082256572348122942868629189548257247372970591625079445416933003404482490417761032865184493647722100613630122705105566293736229006056304973037984671591132892753275798926465055705749407362102469356770255942765626011170237248989534227123985072437599980570902426296010242407468243215138652363098219253095172111417708771469612335245805219560966420855503450633024492574494587237182125403479833000579456261406713386581295140915348633119325165338753582424808364166130101250576045329159920217767333024353424584837425541314989906502725877926658154812793413360799495176279693707892863231755865088532103395364704959254069860026408963155080734004061705046296162594285807642791427571659946026928098176233661287793686098277690440699909538565464707990000256568973250511702302224173718535924998774442086284978356967468621069300532567392009040723813146472939587862421906336204855870327335760719698727894262504939062303586235976509377031282754593512893393360617099477579135687282878961205580724081481543363552719240417213943899281635174440591184395688337554278014113505147182618133569966251121978767154857141938237993020044321170874051508182076508689989555368198513268790359405076044248327800838695315258849960865031970144514949758364766270893405070510913627579365879605708759932872318924523923005146322019242406502006982517631646752180516822128900221095585599664555697924631204992338836773769091956038766579373918158082228531460267751773333794615837915213055193288048513187695360613430884861480526521009197253719759470422816658170560853910420809358452633281582317429740293133249893369025170935574329423599380631474280451156976707907060564000893822532847235271108253116733613006807290331668363708857574577152790163895340529046352167776762854187008576952624282076029141886093637647382287321687786995258944316427062466586966969113979898843851500767231552643937876980348127073077941399560617281079859086736486746618539830122096526863904741842629826894984374187883617577240139890158229801732049852149300020150513327044330955441613111973830288246404348337718613089550770330672522894963021675295646062231562601859184815738338254429509911281305483899280709908125506914862885697776296641306331250093564080417526341017563615887326648844303490283575682757534739645305010135366441605862989669577653131323863047077710164089512819221836188998813884205698560111999271895948694249306701013817254155168600966458297905917474874565374872845325559772381020268995815331961924205650033030336241943258971963152602333084032372523482544395539515870699244717238470445665508053848705739703298438785896518910661009961238613946278449980480419934181717280563391391203218759363900525972510619853915212864791056099586490114978392566304026813504399043888332754630793717941548741980607022227084506751864810912741805262667858417669201208644743480663135258673266133509438372301530059403790201187254038363446315484425003151939358518482520751140084003037770103107936374561223809498829668980791661592610820985238386421118084584491791409998719928846029924952300912013689140669638458545055917358131708524234525057044189934838397618711226686472572718129096818378364721100292766155432665328323994353719794465079365088123333004618437470597534103163186897295339292817593931351149743954523071893025649126066085771215363436068993949266654037140369172148233575048862507439114802757844071591974176338414352413050384409841484870805229940724403605716332403516222236712079868742410291182673147878493234473694379560468700115328410057644565217541778156033042188472352803971056341114586300436456771308796963030816975544581386746520703714361749470808644798930651861927483554187043298221204720056265550032654887410407058619398690568529482720154278613595135311384618152062781165969522095446297523517331905365003807651470181740148524876836213180894417317966902134783979659314795766793668373905883106323593891832952585591601629297694333358561183212518212702020858643435798811929181873700206669229044429803930703475640765624373879874044471518837522056116080995377881982012367782341639280879451639046085317858268113736236767458786527868486078792000958066415744694669757421594421903600557529920224248926910083924063281700538592869547413399215656111553896728593514171874967090110207077477547326168245522226330161711406791645685661822272681869336816810372925807609348675025485378911069177108451749462318750794725197215484867569013213627110354655905600068403190233483498237680498661855765607524099798504884942821476974933845773215434564655791110825984718892823792818308431300040362089872940882222074332925346106724055048139765323825208937698186292076945241357433949979746108883969948799995265164596725573198457821622751759860514266791825606920696069907933494517724648554236298923993293019945956094214200484614953845982584540723320479363019850596614031811106278568928776659956019022789426345908297219410252054956594168047181311762537880433174412218733888352218266882299960328748799050979454059400162112842772878495992870009549280697670544036698612608747688923249219828984794718154381556505630533486222063711698003458414875397943597959460123968546840911467067032920589570682442250656736672966012748398325382172828236636368846615127932656226505799804364741567324249936980121230102867692442730823415040584764385377526694429063250962739575173726755510174468088854341942256888196985660401963097611871564422291606104125496023890635601571425470461411642972495061891051370094652481305269260485703849758192486381045542371546451496170672008976984548878481528764993278902100434814314282298602002604268853288378479588384818752864998213406898132068903713468371672450060538299199142426965283053392040262970407746570698343809358632677046263412077432747429922838115582019172513698964863057514377265594924928164730356449673774895747820038639371286655941226587659982450329140432705011656447903607357799205296249975083151989128919429051135162482744071268136468930691532598885511821818174399563295636952972105112676011175059530347074175801717002155857034753989937282020053431203119442878689199608707037983918621976934255055486207127960415741160157712009121547932277533120985947837697294978975371373536308680193911038090906781031180588174878175933499267043616851797916736260060616824111233380647367814421557828658594650806512231722627683577263758693509470523521874747063271830005705055714013197397942977025202228125765818374663150047550746475234990554888626236905953064529413601569146411654250621822584024858070444452144303901031375436957199934454406319568826955563980066383822569795774091340082389049522333573509338930300274275801069375312211910347429210337682074585097391195783164268830665070613174723452890982223435278214212608910580908284534191009349422660923345016046861086727531424623322444040902178987428932547874328727042444066128782298100141713616623872813663012145539046861257948677071921616705241640778332422764639463239245038658751436383648577294997525728386196211329329484844166297309178441514988149230138737132179423383916209410524581214291058081929769584272072658544520636221970044897697784102009429848956669086087942524313525314711994924727277091342964857163728997513230204329459573364130837149872493263611397799235760200562110811263349203296756206104817854399000104054073711573234937508224717213896002114451368440156403254294761982840610038966609005072046651432006224066435096802417685896898217660898237893588515249445398694407370965668363425518341225982978598485953566902357285819732173773404400112738145497945720898065254929771509730982255071548492878173902134130627281651938949391221527246522013442034167494745771351029672171551222961623025333884783106451109450567912938110027905284412863106314185852701958686253310635917910875609139000452918461908842600012860918405537278247772221301102247184254114524220718706335198056340213573493089449674142232758361165457035464462310388596520407368511266962312173359073554459203342087402040433187393897536535528696339437033958754798059168333101171513262049447746153095136589950919155541233083842551595704802574661288541760850487472839535793644079169224267142067514280267777944571176257427394315363356564619279887846374261969509260574151932399469401910698072095289123721760349487762670829907069188452618253321025653741070313330436925376725943505820178133154212730960855127145964874186843803443521558076798439108037939152265612368745821978558889081843175340020824971883091685926163110967531277258925788789877925933220042026172843672667158243549199831905477896222347821295478916154303551452486639550237482845066232837710913349886994025296993751979587910913593477913588140014200621518562825257266276561387246172560137559986758945099346563822704765785775025252362235473974076861929492595729027286293361490014128235840039166308802493035828555133000735910461323171248801211536854135963476734241411086307610979353622172265001292080982427745251606041334521101124729826236674816525296996008148148956283009589248588525317146390538726649217557825319930189407456926682546202738175592308703600801586564738640002214373026117287047460891843156377531400615529149670575344963086037509585796566942444226255961141659329631840907306703416923942757077158022433602637974825713256778211102331684132152534980514202900048279662917635538554050928561550677550128229353459093798953449043413784811641066272730306553588193562550015694570328085982284053207424346035051402084831327901747490874449050209262360840163733325529218688027530435325442725688621365770638486894701485500598177769623804947486978798683512182055638891474079091460724357304931260282317085950570854166792155294612048276077836275122081850363401466484351713545104972214899456677996355559925548449487708620877555360761576784717300938890225499192027364679025952772151339677890133002383349542010519515376668932032175205564920528666358870632826544401070035438554115744605003267230850458832973136060119031089901528342301819683218581273724317270935674011243708898653707861179651958191051736939047146038981525488288906897268548665260379115236687455094397768040754560699813033230228651794469164896118387631609187432982606485258632110267333737750610969510204016608859946064007823418020411079486773756041779832305087902293398705122142543110575885865843884985027672253351814743010875533674461154731132390148803519972064560903523576193204342455334466763111455870263152297536217762220857736669918730448606512315380964657392660728370823518579236509367479410134565124097708416310401193228051047486359164101889723851923188979778277892375035356276463720052620319079051885031818613137259410102424306801571718112175624937346801557492980103341958217549480935487600891137748914768353927937395885148640199269575477434269898027279260084335045251904713126676200821285459986395325373052334561981375255275547303084557324335262253634708719759089137931735446552636656496343735875116560060692814792780557003120509957763754374578547664124844970671645729080451460202047271881866155650400579379768862553009233899058924871862951147819058287547913738671092898821837391534811767091694615400561698598163599044170032898372246369547645331199443189721495499432028113864013416491646833468551442325292239795084668256799687131841490468192309020513262114000316912746763638717110535745601998745648825708333243590923345602066542276204441420468209083889460249412627444316185024720018281902433569773182974322612851280824658931706652318870631251609237717415013584950831924592978165701286857999463188765938932030081379228623679699011242453107134060541522849010939642575238907052440554186822372108889183412529814826242998005381481726541533386414626946835158143259563375858696543779202849342141204267386610434477745516184217875233040016000780797182104543840566783755848278492425032209974622825733935461108900845835421546070276357519371696028091200329180797730845315388536561658722028584607895729558681559280678682273528094687759952302432735873531921011152631010313247255841818545383169878988213916536037144558176720460651441855269199942944976554545112767222295015121773276950018842774095538938075136262752218436350696195703455182668447350641596288689855076826535630213033603109016724389253344721349980995197288068732879962720201945070146842711098254092458000873016756876639963367428555791476250691572587930907468440031314109062947281556722741940976030534119838570577528748595686573329665406967602250263359291359319101346956574011125255425286498237109805148369432560132804433656381484190023667250487044105931861831350484163393826822989864324827821077860864725136814894191304060765844627207056712950758534688919608777281986551698664930613081206923405320864091584907630918518905000732413774076838471018260961879403681959935914077015910266846263077568322014740597462804490779273862973666275118029371847818715874590115175234134880371655863228704010676758063852935194163564517695110667387336724646892922571979262021229277489967656184470126426209262011956582987557955964527501267123254810143213011490929486841030037363041746586614310646834877546978007726021554557898886274813598071923925286277136542122210874749187923457461281920171774684648520739171177244345217641081784680410620962700956998591532311615336197450710532830397532673967492166215484499950466156911278684513682289772785335444348683991217452571173288572606876269921280862637429415064642161824350649534985716185560106262103549045275983339131448312726632603091855427137680682604841211880453712202590615047731142293143984404061271929172690396294254009364734730571316904849461654133843017299983950710839267447194979153322207734270960838735319092737906024734114859565625989509903900416765961854976304334591677283066128868321717531964957723996157147945031156325497509358547337509076140862167103473049305282830308974076664540021998011622984098147222054006900844063980215095656569837188333581498472038438761588019025058605154872203666724625371898024401785121906455886058484706860225331662298944636278347458123192691059322342944526632451710928628672706498740102983342720055653395391064617521288075676877082048285486340029074671051347199463334455178999925643503728921849156766614976203020140777431790565119696889293615154756963672288233317450973464953338281678612728894122563294172357800718916653648431946601779546336393720063907948796429650916925734409620835836932627731851125919875861925978983577530387392510270317201858381731634425868442508334185166760689990658266136340738445609901777694638395288397408425851179086879722504534496593212834424725608684195813827082575222467699976071127731494676074744112386912291428410190341025902073076644887585186329100644104003632401200318619584764087793340505728279937245749225388417851942336532382695963757181852741888415785183456215708995951077390491226848847525078614492358320747263909205433242741534765348621949491018475771473857141561044198980454613131121090270058803674395195131052841278348555890483419681903681435163068459401341429590702551683785570957109763375768698339489222290458551887383247501402976766669792301854172305720094054646285603704809189357008474266084690828933461206657478802561190085801652299127185756313321549913054690758316965980470199465810870912218332509621869954552626045307713639073636652838281408635739904105541092757055304959996259921945271871119786501709853633640759208061927086964265650823842920960732525804715875256149888568077442797442378826449004855521214496915153225905035070391004955350427861470900421370630886717404623526771504268576169454204654766250095239267657771095220015571779342731286298749928050082560496183486355105846613765240265400875698962322102222232152286110841656678532129204370459351620434612001883417772855217549828335701226384180025194658726128070229050620358453770996972110702574957749669690293027918055166934594074633768078949943389539128662418586582860751657956655946625285321847343183872921361522670876982333315876261179571972349895558271803340801597802890689148444588088949799414014197968107101141840700244565912831399731705754594751353114716818629295686683083808793837961017572181229709990204474836100671278737791108695889130885634648236264912096526682322931719028881355117221921012979876231263913910500625367301398868347112043608265542279823085003931507320173344240217116753248619706029439946585237481792800643923418817730581241462969778546444864853643041684080872854013733782552035169790623214990615763345582884458050511782082208639703436575940209677218689428796155691249580578750697550826754573766813534114208663227535485229140999857822370387789065465526105841569055835483638509981519972706352382560426814825140830955810122342575752563773666311958548885014655636562274324930386302951593274031134580145944398654697763232401788138654952412674794253192317952748713337909898258304238400151232070633755018458372926285463381362035799640708496215659334795734991466719848769136865987296423197469550598609869953775353359522223892577988939816468767571592928694207058417189130963658756094358437340738716928075597753373262948729529015222992158905854698120853135543827175885040239771005446684937078378390690383528960989677070047684179515720549028132016138897369517411108225206937290266843370658757215853953563114620287707876898117053186475903958607716417858134462861693134498412432487279981136872364551642132089379416049870627146196867517571143030649964823402133109401691684765430207604187946599908882333321748158622049529198404831336483602631758101999876639088414657876662843035094345111044924954871543152623408822797020544919268176600141045349044680710980513709410629277943732854451710027020495711433954247559613410761984621248959605148730188250536667272829890519330349773710744052770525492601647652444741459992281747260108895770801999587901369736865544667437677826920985604008827272164710985213788995232825367672387630746010556382929940462889066901244616508005142043702973724968581625036200700004636808643822055896358801644283000186034091600574866462050299039918778640431194689465677971098684136381470226092414050414834687058139594902087504677452854183425932539092353993379363924287541279848517910283104383160660002103403072007328530074805100275224238450458431373992110394530763359552458208749088171020193122497784209311774879752320778449061491792914200248514551649086452328090717429819868439421678112557698328865254786988998717163357212164023518102879443677658260406316155565341012209840520316382823677907492587472406208455940992721522887548543684420398249425001823079081881142966577445508208859491809147893813921433032170911079674119964923602341289400584675394875949778929267212522138686578429880954906085955795022673848943639104151936818484876219178184303361383845605260738258747778350107330779989960449731750712473112586133876464306352688072996672373744236363514630390940070620355921709212079627781447213054300545119883665322050452319373771334111412829805510458812429535925594322581916509476645689132227644083600042260774506427609909825280461484650590264123480536492410734121602740708884969732362165224745277794696828753953511058398948899915580456679466066972603168784228185890045211050983739118916157370263883290218516058308451498577071295749101154081837984334972255165180512446703643485905328542447167926644510628603133947690501861151688931339376030452415301750225996424068174037550157474268966116576339805632382188306453015079504036089049787350988954081388339777552555185692887408060388195703875169875300776821267042255289667242206775029416960656859607084280822883151259959063979224996604869829570481105366894960798703510890286198256106944602808532083532815100504735422796650694653809673032043709447810109952942484985334544987953949090185718491211987301210069853391203392266804680776384763889107206917065928748769685506448451555850262156477378570515157714267608439656848801706185096315002593335628458590274634573010732709216084845029078636434352883188259364151150759570767641724326088804755703319225403244028440481565258076062499123078635981282651585600447951482645494129527915448443418241905512516227394783128112616779388629972788580919817339819396468008190458951212369329789284080521923087688807992089919668190798360337556675468497933985847037696673271978532800775634064290694251654637130806302856832132254861688216314973299426181196378121408966907980702216762747292826348958019817151038539119587611163039351298418097641200306021422315725896261946005632609070462266259834308946106563711800397395238786331297374796422793290825015261590992261341371445767561418713045961807942531108277765328382986599139772571585798446905890930780696853293984079667803962835714407227841332968263869748174532281625368436756914640513882079974243973200068493160745518986600992621453831739357294408484939081077670909874327811504721637866727697934213335666781509989418093115291884719179245151050273153415928278077555248865498394017365755210702157317807624019743665408092606441193681800393720644468016616064508793997267597676720470479346478127581575602257122814027454855779130698327960881905581568735169626159043137764985602189348003038368590249516448835100930016089563307039612756445107337637577043783606872848552406653478601470338981231237331660982621931477360016717867641236600497026260286532191485381730858199160281084831648349244380910844123024167243313644174924764521550577646540505898050162574551579262287315355539100655697844031824007772475794737734286505129179710535184269780103934061304556130346684077002797350212614861120776873808017796921086266657609300996726582046748714477111678839044120484391015803825146452314252595802355597369623162457321463978781228350263647979041438196600965487339913068058080117265649793419406679997742802714835898561617407623623561478301850590934307324812556610500651133972715159347137852841976257474725858404066733289036587593852437801905685040569640098558657274024311886951841573412035026600255395902694185237151979229544907950375962461531969974616327683465431289234590879678800866121065508234198646132678790258387852613442388937143048698303052460390630966124426194016700636736679628491171399502390254497882225715018290959061673514766321459430129899497694984340620319005541966126367708222865408390480263969601823275159701857586497548567824874133327629215753043337582780430017968394885325945702663881466697942481165190962490124691315372927758269239477305245661891092653977332514692418707135326892138654098090825717635191916215632961495895036462656155494782432006702764750162052739480783879381820018162034760983653437158042936391897242455852047714633991515569489379588114276089005794499894034815902299982844875068822652329216409886896932168872119776782640554852634475915397924955878051876660494926397564693781898045952312702933915750220780814769566026646167784627591680499346814181249478841789425314435205924117805428940986464108907002116653098407978604081238363505021534069847501778661397325776956668016229983847508686974069945500383105771499762728096279096683443284818665401702877931615472268349595963372883856564254113908977313994999527334682935300266465297950664197903705142820557790282638458111126345202424437585952106252170442607914147284005451118468975261729760365961267614081820352023502849304393120639684843257563338710448132320970963181888418333178840617820519197153613260310444004302213183952665720428967671441837672103292392055164568694570690848347425911619194293434431867223997582292685611294439269801156133321290284610851239272182951087152401534916750965177248227797923291505655946446066850422832714520973140256206700039624509283637284324333574942112456478483980658484289760453116330250424767917008153095262822008116212100208208797488073377716257002039412534914268540197102351183399549438200697237429383313301360542353840987232542130879048861922498790831542483053218290001640286615111620251927087115429878279326190886491761872986271007316103856382865371925451600264361399658861493210194816957575765055875020415761359933044503205983865528834497624572705032781600567991055393159292553611192702793764823945375135285195018955637976804819842163020699006870220731383337959193341648566874376984385442114410925513444054390135976536087419587399991852471327820176099251986018831372737349098377675287120077937157673763730108432478233127101234085105588912322580328398001050086421140408954445149594332959721516218799067452145687990715926433850516773066229190369742232824030393372632126210024860371081637087955663323234912488685592836120488439744048259643938426213530199509717948598336698827013951725988104448857738652029006987364232316282219342573518374850099919155242031048611662746599418169699049358698087236124154025314144344863688383879154447580686528779609392239111135824849782592432079602213144069835479723332302323888186538866048090983213291826728896514966465926828292218903377017514847536877370204647477672896500944415787321091307482687013613787134431955081116318197025958858485063492434994355243186799092430942230968510469471940823800436928039024824750727542901366176198299305286107482855055795319968079822756583311877762214521474481622335194839357643792187711033250641047076873855779898956153676891222671889946777925305340291424692230295080918119999893107447088256922653213129999721936161890574147425633511367821903448096159444647227508097104285901216246013523664933331802382834794969972207327223693204523914504607735642498496312255184469927643452940948918149147816955516643409971547058399832914359728190423999023855560341352679551396536355366834255318117107551092958922016639120880898911340534145819042305847997853124693637637967550661069517153337673955184560777136447332010524497670200439827458141811967314002201269776139173551894736694046328229877825432712359085753207416740643276371336112226032859867894841054616179461103995258003564884032850252308917001560966032244426026122090472347910650789425015352824562775772938120551161733866386295593838853710133450682439757996799746962713347102505434935635553209294178750694981297851541030200888221156066681203149646024133683050531624973841607161285172331672978800277240195634154789802698147083771405540646636293359892814456037390294635938691944293171305549680932414263140407851002258655188335001633706834858307763433152229479235699411263054556992168928708983534121295056801618157501596955322650751196259781238193454151501284984201558412380819992752296617982190749666531143427924005863892330506133193629430311800135811511133546840725438876429934633198784893857710420666973600708206790526533508417697576515098338246571484592383780496562785941999197462589698360127989523506996098727056618274668389212924331400801219478148145500526773012106933843159070861541464384942675575226559785094180524942078798700261715186416737376789890007669756227481274974944617150179646881488199679646343812369736791958844407681153208299236228647438085696435120682568109194835276150731855377105322350237175490984165605623845290881488578632194443596557227178495477378495698146511298477021747080993425282046234424470024452551707190189801853526182638772562551868454829167756802198029126804543242324781259705696183143455517452504793309261909489736809674836613282113115083843302953147271631125695209219479826761578253018501462075466578698184486040667157589252460891909422553794693772333508914753027217609570908007069076235489691669604976311945307840686146061996652312987685941698569907316539912237722916891426360311498109561172872165834978626154869126377006205931206574103319498654533326433777404793744104817153359416144318826859449101817313578643907302977349685606828760120742564762628386248052526084354348634843238297260994509527261224628740327541023216409436668335596932753433778908857675718829670010270437298914188096746278486865912559520780321929687192252110372199646376282481145904738311403741589530496795562619545366145267649158895052360249383496980004171137470755984884907271001232274874169826399472204612164189382742528237638983802519132123667238646044491036994592802759866500933015217499757766080493355221450021597989498642421296423931339202451431755432538559984603351401964447574812869439823262403248266331622133254737796977510962741313358984240058580501292663214909730167828998824613096007567099779953547558074190282027665430616781063115959466078602016837648791758283204717379302279987876863394259829863071495226604999758622884401029586374521338391816508090276057910042507363440410486832746685068901210163104020718277491418158953647469299849407755776143464497070665239979342605848374319575721645269614260997336876396286949729044865430753693845228443590462497702035114460436115544607424533404219515627130822765016687348113998363834085196040697771685336754253497244691619416555199147457996056752436684961615380145911680498458867687360604936846653184505215935313469108031257059029766886885661066918289297993124917774403525633418709528179585822735274112024600141526651271029275506183742147147065236486868529554407658493616077497490154493463613273974498466607542472147455120370844631580271385374166981396045784387982023294554106970648479817474280485735898831563583986850025432093905322515684330349939748164116209563381879390926443849088077336712638095563630517942050533454999132695731099566792984885390905588463592904866007426598161780432509607567254486515098692560490024311710153562269432595886841354496047637444533083313001985557804247127553745178755872908084203870487771118554997018981106882759895517786335319669301393157410708990885347529033476502251727895977630688454997598937567320837212150180876163826486726650049769085078955073306852962285505485394608644703498464361351553299244854590213104525904231364184052553970560941850993221252333829508750230108171488509967173703641485815598143002730616646397912384202259364495923847606229890767293629154280896581940592082192303692522884428768696321279296700640307768153695714773351225193367803595953289122976925340857332151128655474145309161925551737465196231042476494489734072012764880737656501484811558409968697892639367365769253608325518744057777470685996563592126125293923746551210141899469081055544846117207467570253916678654445663159344161717350383141899327658297023096909175309996086848698350504558574590151608296511460586019063825163610029390472105896560984957117701055758198028812890651709167923612151139796559354140981034384174058725894174346217490694913561290942002669740231424160094403107686492910286107838849352839677231099597577194541098186935381122460589932641858476808979571628943079295718585728102035056771626614219230810491927956179525643840855524169743584407564456131899867365705230700182294284654764392402458264275603478626755282376553100342251576558884290228009209904290472852861877462774165070767141909868577278164957063723733867194704194993160091238365443876002033201842316060366980679559163364673723964801323377812354892784938907309718903955973053105067555078482938569334780303102700544736413887759651155790355306421859755655054397244401970265990962343542344038200031828699229282194789285948243312655632574001456365971136803848294580660500046633531560598943911968817244310365051292890901391971292322824758403620289668376887120610242271953448241152541502574947763350671216399353437309550636293544568659677443738521792600560984305335125501305865212470544393687079115248061423793183895101129321376475570122748414433450054930160182391781186840087122132705770606624933523692297281028394599236656766830785986534129768382658522083343580274375505420907492491490486872178383173544135511594164649852766381455522923989705813336265426285974779400455504714283689009577155261881661835676895428981362949863120657505116060779107686378762461910706504251416384558723231503251412942645938969850514542162893216758821759024439199509275454608507773385999323824441339611405235000944897237607150785431788359840736291005152598735258446830874109780493994565342250341704176175547181431690580183420666118842498317654487409184849189648747161372523298225393956196986669492546229842537484427620744654822001904016647720757957980597998560832309010687452873040112186684938200479832873413360082430270097305674067145483242992944533961325895832843500758919336600712080036828840547361392517868212798265629849619260812496573289516149956832432882938560187070969372956530600413379461998578394682170534559304512903627154949447668004820862855582618685107635756144390086643964191217273378823368296835959580571483895972229568136561529008879226088268044311079292171781980570737963798968134470074142658598150175765414676989919539951536760687486636511166949514953901247003956140777294308601930940011408080076711333492880180002762264052593566799568436311079377277930044558723283135469808454395868261428794464059322370981839141279145526266096990300467076984843297096417444248011422141475367597213892004368928728090827416386191686212308399177836459982270871540912745533664786108115914338662344606255963106471953714288317219900121518521598131400204766748522429459822638417098474963991586424398361839617310029621196600327878515799885193461499103593434343464769148973624182429687620437645849592654199850193478420426339499757026894031017904571287203091973222146888527677418689478667957345165724959793545429974306281014394395347202788864464107423543452758482855614321636548935474206815584965905746773744729267383522237441691151428796830799773763323918289068379274941982244860215418658693597490481220113028570763931564889528521853901046402130836593412016654611010884886245690178262921549842029865000379675603866045461164302360330893858315390640541397924522288655136112879764777141468825521697090592092799889653740861117431819307553254507807488760903582443170694511671247379345494855404565726213584150306687639295328585999507974051691312014484740702075619308880278141461496181963885270412938113001007649630187855042310232797997515731914379316958508009345977736790754199656480052292738736351458016358622117407571950075055169328820704595430526669474716080326818207496150810419603540813513874956772000219481577158457197554753937396698271829069468745444583470202808066013197878304203263895512181999548345896261002226141464336000452222723872670745976496435393261605537738085380322767957566766151985342313794938956136791121308349958726263391522342499999690031998661744693598039704566378842039288662564628309956866011395930083343403604141794652184017548345482438526425894662266790193017957431780718516328617148672599749231538610256269302053578730973518090640854594485861137304328444217983986653682166150398527871023084087417420523640473713293553633038981556926039521386189422049906094576165512698461066440244490404333846440857384882811828050207399259011820573832079839528652889896330478060648191755844930694210316605361770275339920708896989796690572731989332192018148064275149617286236321341376213093238780280142808244828337332427863532782252316589685050393164262117141037537537338489395593468759971692046088986212888021439784013988053166924158557595875408858800971611648015153764744516846633954707845681210962516695749411481742620600708558256100209773814303851480409440562612451747152814868151952936255223165455692717634940721795628572604335476470441047858216548708476894562112142896503596145082340925414552896356566580061338877340549256082863355960419227114473503046359170570119474251763388033531022138064297966638093634362539925911896371029119552735720372163300633658487361666495266886868021441566910742060088137052520809788404668086447686879079977969480457198474898934085580953158425818600288600780965680295438210208895371919549952717402521908656668524345360873745412976052838282627366667043865998948125111724124227326744102616447253261571668725271486745078267053058207465878842947368177773392306792643399250496453945969382836873624390179249064140233008620208588210830750840242468419256018747337551438993528851104778027405128098810296734391143926208906320309818689768708119920757488263712725529974084672245088909896131402092307553225023286380091135157363323283097688501219917106408831512963207026698696745798880484553349426859804380632237085213837952022876484526177615815336679009224645883055920703446682048785183718176475707398316287171834365774453437789788117884546434830955978056033655651464278881223617157604172050491285821247168341478648420330873622138329083723522158062229564786166142705355897043269392605728643753126688104666709837090487492198232418082107176299975124158013208868354519015515596345931303389426540902817710582001225050388273346581745618356601815854260660565979913985806402296327248018447322450704174611230533934825987203791509364397959839594265890564187216956627021836390872134210172658062255749073754183448412454534866915441800920521799650354477880764830958343358264455774348309241276780637464998662463045414610187010811937902039481405410463613146762708085447246346293131716494353226091989734340817999232705709833376818159241072148905883085121110718635668079759188111978750312224934625326713871890257033630683037344137017181359530754421399172282855942858104998630798029223493237876405291744380981630574658462510510930401435103308822695501082025040578649564138021956085586732753388076920854001100976235893781381679256490091260089967115073403122008935451526460617451822399698009436895226387105642370365521158237312716962317733104972391279303193825309714186273994543450235690725504353632675506488216309593203428917069564783725530871717668056689412189663268976308098652646667326321789947663525303539142308809536927704010797475380184693438953146379883911815727944208943420701489194682069506914133901457867526368050808357354463720256461070957999343519427621623004395794410185686480886011216650009496863847264564986063775407501836963790848544938655192021884235349806774828790979939575612812548865188492468267068014820177906715768435293162100597286582855991339151690715731972769431994649755936358089403087689416842492783571879002564631281711453340097840770817289615129888231090801340610395193949883961498716209382182075165509090322587584915127094337078462148581792241239896967950551015339906964532422999393073417709999076722041071269743146513322155495097868829339243048686510873782859589094507361674695459174144376111870273912041908024864824000824822113589168856430039191559483526926655823796766752204939074369310705275271753396094541982092072166912274566770603721463934601897745366419058699507451194141345939429318489334662994072733573891218053823717080382637601998678117239165206106952573398442043742026418395632393452245100482770541514469957392362866851297537239068312684274065686900501402272848145545445742100592290138514091513792442565996967426485710715883386244129862188730444652374919611457852961639829000807279372503598961845552037456930338014022416964279530200463681075843567439933657878736236808622215169750598137016725986383335391697500482619673711988062823861902955135532362003220630095461141899711456246244360439675065497383303616114783946529379331113006073402555316376808789276646646239772149988700556041890088498068671952262448494460736754599007604663066189828152313482254189296020822665560025636044671597136731945914972538330607713061938629787800727762348483209933107532550678354697530898179779639808239794071824532595030308553336743413886035485658936983235238086137268223973464997069739309386699897784756440119816355837336605478149581516341369853411305735073205665789010484920878447329612189109072351710433082386614358894325657201971856207924743497857826439059158893440608043300454189026439167305397049101316257851380733846120451996215225143732378985437195127650951646288325229487880117391944785843706553699640567020225515921955248996004891431422309313777947617717805549124213221458185707721804100318644323259938207100486929027410501962709302511348033418789476430519465163156083986267811849643263965236918133304288183859798129434148712712399654484997777469973621017010057836729569133210626738551485443839614991105517472833944845014814889323085773338657258032824622022225104874691387430658960143956675862113325971125792128945807294380749491506083120060903595444058639130303024256360501910964431303969763972668238223576014028024195972619372302103565687956994439503093310298157272800398057700643960541346001136377846059364638203823160620760402506159136848605631178863929363514733609376778986169646178463580301608006884417760155540807681196100478640651685123934353036844566210768276600670610326717915268287483101581242381760914327718337052073607615921322368685481330660312169575620397928340171138535784105045883957922246653286880225524263911625435487658848977794675011180780296316391819758532937164252464203194994464261542026186182971669890897532068582122563305849267843873691887481199315462497934787156352426093809221008201225838182121273742146379124092276460700903313391263449594995320976335907009246160732683649642608278818119138591409807905990746765596120279220632794397657987432589396908832759369837985570066139841808079912827151017360251012211998284267548940548703811507499452546753806573418970504317966721968997951586867835886311156470073119338832109788949588745684919122732020022751870629343165182032673805137159838826789919323825087845625161502638581069794995960150313916131863968837112261747410219762793175837040280718842689174928559749830208243375423229099428715860735836556639494768457223817532130970587213178039748036406949750634714375484365126269759132554192116021595488733427179604832837120867824819170278885607532691851477950447099064112042290867354705317070255188751378563879000662346875656138617336167868554193178949069452006930569612081886840240841059631241816926695441658122457526760685293878466731772060712205311068602810234181281661082202785503378427781512460501910306200428750238678006162020340845263918186384357240978172605603838306690966399527555974838450921117035859543068412666366021495903533474869460197303866792498637058142818782230880220886997681326737439910347701953898055605833431078757559770375939039168150693562941968008611030325707995758880559778673028098299654441203318911852917113496763454097885948807872224107236559873663980223896922797881419040473768869658629892947890407778234177362632093217952564945499171508482500579908750506676108658880776033179614644359798450873404453157873747207801088766904737004349381475796133049791298873760168055095536539872043900250668760516796027169090129664292772055108545630556073618547323452296594466079010656220917821068082875750933497509426316850825863161717451586171562485522303024483248260179905104665569135912484724696883469268661372675542664304114591215170427773730249409778261262951013415862527939052922673802399815040559599329905140682312008840011762843067323793949693892546994301801614097370909855955198396684399544718791584386239334540614930465360114929921419168867857986749649100918828271206210521260860560498180734818419630326067307854103160540205039777678992904738458049636223963010815625870406664479657976969164304117464129482720883692604537015350707049986755606227778884665062753526179273273569640711506553945525027248653323657908658455431022575492140756644802964185382645351644219506294071421642556900504140237452826173974867076757072590464098770722606296257188391978781234790437313043323122070661901058259774747795679725029262575890972307757922805356260403313496314961893002470649386836420215077361996832559799211024928885651497405098228195237523206619485381440597384759921001494984901425015473090120391371954410471342208158228110905641072391985395617314787205248606020522768805631610807927088214019941583081149815776361046427744531944147573568482461710242109857265324528600878848236230178990406618477907332865919972484031466713626695087266308949339776010696928386587349710416580638840971385778109504270508650428498839867214463484827294746060497665298850873479529171854630221018934114518102794274411434224642281765886301604845210282473311836287981046058168994216739950890654802762365341770972187135487977127873143416355534152638628907254442542538097205225986951554946592980470421768897694563676826313589558684864910341077355424027126631385947962576592675603614698543045550117017463124218299214766106830827329911156469361204585748410319999082945810103867932026622725320714920246001525186244103192043008180944413751185182747981861465303591706586722713658384833317744215358241231814021097214817288136984076166684081627094029581108006789961672310540048197837660396387606120712300774172567892263199970803516952917063483234614257860260023895221728479899900850680564632801360864477540670205429130850214314676827574964791998407956783750991328538736225123528457726365391280262341274140773296432967548815122785593933178512200938444084111840270531014929235044990590934811121983306840100128206298534119071824502640613695418706748482785088453976568488016850950514031674070132977279805335736353019367411316215987652609768251518943472282972739531267776383384467497224504480592897557778294447764625446926687236686702902375152325231399121814427024635384417917950822372919866601326008130503842161299442215810607634236869373408415950433290126895246771032499873420585553311568262485574951695540138557600247428481762237242516567853769287146216664419935915154772013264952548530846085314603452886109579464945706744563780390359785299373974908910976821041535661758803066984910583197804171239728288498350925889002435776090679460595495284800333789785700256387654342905278456446427623421115616034208765737532099548403121517675516852811830569261246007122097818038154065791397659992550554870172206657671705226836106515333246954798198032162769203283267837748763895691013468921446763110481208182180799934428041863000937073121443863972931313047979309285595091524094488684437612743790856703285142118511899586886899120580020099128595979967182170609274642911806954202550027210242179143675852562792135346194131050629404141228658249612232587711907639356105305534971362119353158124235513927214061285971913271011360854259406690636939835749228367978628074905032023057440734372140569206815733314377059259941280810336027799383766414850581433052129235307830410464654616276944162590411757577915125945422631454380312641068300656908067762906555120438337656837347508009567536351265453705379959951437417513257271753022049391148745190686287406797791759732473229940872858653138113602658864088731031321288396566350172333259516384218731626976832949979768440887573653039492253231754636757859091806886610630409449236143682710956566604178555102946410542284204729844232116332710680776351625781496739859525819799657902943724939317629812520713557048097255730775687917045933902171429956685524506696880011477429605165879291572363348689832306680429672250399776574734100389339928202502359685945061644431899445682274671127211096603912050820980417824518958324383971816301149661727586003037939180444364230157952569087619292709956881918522841818965555072518417936951403809719168316924097548800167825939242769501879594464878987140999022019911703864966520096762503920608542624851053647529194680684017904282249764813532370860818865135317064990657813379525226836222779458740555769765669310643579335691432802790986579159431377916573047940044672362736107553422752479510510692529494675005457940606112910379846185028650280712186941755397437858433002734488467065027193840398096201835344400569817275455764604781535497288496827447236990368719944391889563132252117525293350077161127160965811375876635809027410672939885799321929808549437334745963461184450174431897538117855075771495887232397518516383503164816768004519644821979862669593175883700598101483932874199693999230689698741140636388419120027730616152742940396524536278339741198698595593478869462002058198217824026418342254188099694215725481269861979583496900226515303994515218517715462018425376660187899258024382823712593057198395690596133199676576456472636831636763766202968502081157571872164025133106710790403274375646744544589066662999009464224252438558640750412644613740093611302023617662772611328286849909679747280158904414483339180814429185171336878851249803290094883476332167977541500380771299069627948946180551270871896197875365933051791134169128050988139032943563854204695494283684488739939098346970601790933624591376538989663268908718967482769685084393828146106726083391321523266035037982160954249499122814134168422025462335407495635227657041610057466039289561565895300797699109769733637627618361204220423064998119490834535838397880734362772307697521918838740336173014994875982196338404358661361722620659225132882038075229721735822480891502023306919283024732882381325325168749189840551657174865216616044029047058474051969448120551218243808608368928434042505421735924165347858406041489256446323437037770011250790224028609267539483092542593095389476792004370467642603831755480324850613163209689788561884028240907903377019302049359871422545955222184475411377723033098808398673710791272039515994940594597850150099468321989484893873225262678673853552332414591757132060457021543209726718502905906001700340200432407393252167020117181056156342471974595321426603137070939166142646617073900478662370044543683013910380641090749691598937730209450916958779865909337377210644167488917426921741509655363279732419614090708989623006613085269367939475054208851716440561214662347119898046236893589204590459649954795365652555114601574503400175384585497759419383549565463423541382912710910293267035719546647165869233246329022336119722895187277385283989969198802905512353517518473942944073843779723090455850483929896060803959322887969667932628441623901198944078802746089426489157210333308440581743781186772518565625419587476059032434209093129859767326888649296065289849351415412617320371081687895740768278157327928099689178209227749711150462925608440246178885520081766439178051252492281339102953197745460429866079196012694522403551001039571769973430720660920484405827884913061829911625022253395697212745680180195170850745018654325403318975826749318707793049544522585136332081618505066720067237250670724280338650063018965043999942060334893168109785272455938711388039424384197596817148880679793825733417971231035878678477747448835657105562873088000886922975750974824466374197943989517854524822787790757716016407297325358473772377472518667217221329420681210693035571249147916152134010834099908381961848523358397412266997848903453670964525428331557897165281306905760316697847545979522658849768993738281254134026910108091188780996923598080215587040442356330838173744767697085884571716852792480449886088973924241869931591431569875570501303196104699328451930049288973059914226170721236628693714088191314409722792073691798274771487707161958776254616638781296785368858095350798882089579768501614042932809370661660798949156218676513799084895522579636317272581816300656426388128357698169232803273732495136389943029395684494367762839686689240634171620540134378118882305178571994549531798927536644147436443710279785218191870025858421974041128130709117036861625412750737963985802339689342917873246990999378021541192672733401777041014125074494488251562806215798560969402019823412283236966624306120954293734678495074884586792799614870672848973072904149680050918609101264286972789374973371884109482463340450444217258876004780981816750385511615182330793242447871540947008720885239849739780417827946818962526502964767573702416423134310557002866386840503765106233181188444279511362095870212163339147688002782192626425335000869629795303282773734635021461961810078570736011219670382686472593410104368034975984363944777448956598757847465993193356203366713972463632328830637521982393275354113420953951981135600638380307426020501294356130815001269388013150746794445359964990286913596701274345484822375900160652620926726938335102983831020069429988982117037078360698499219109085552846042876791536456917024206216167189488511415440866567736422143810771083834827569880376884876146786838539535146842773740432058887970269973935773735301396676605147428894077912507760382277200072419272196924806357147943931961836725824960293824422463394958492224284618875375732893668787745961165377349245028369032427260943253592807835824605238744080493019676406887548633297153759998159084799569863837136469760312478551207428173150499440952120719702060277594019451753805796369657926768695672993612302912305776781543753354668492159435891842950741577263867178632807971673546493755987403600596491897441719763822433331794838035836548438214248592797428479575775842041437468220865442287702209572802204506085268867112018419534392902997873207134227947535734296798552209983587528465532879962706655881052988316961608059885174554116611528281353314597872617913030535884975143175924036165260991636906961203441581627040008321272497877265325127588251193658232828265630926068612638385020767940268878458787732002438239462963756126023556026963797241289306054071254770347679478651699147426749886511826304801936959645894567125754645088705635252468137436564820787122453736265512479024759777689817562968875157603041066449293800832289130379180550144142533003810535605135253991390708123521298239042718384637830076922441807084567427397290879486932529364142646553402091433243333912483057906851307828491434793957271652861341547901551797014408058040555159846756978096120171002377633531038302640224302148572142323243238192959300845101066677067898226119797382459196247901707674269567237317638947276544196382697362813895494354119432377415152387660590095382821847036803198974207075540907100440899911919550946310051474904397226193093681673780244635794662861295739747063913162669537587272256605276870407995202246837714145099461675011368946051490543602200807600500844511940484617318430685590499762554939888883177735071717651211769408722658880220315392236903616642137405700772295409439043375425430665175781657300304216464933064372159874556560082783877650505699482633375206229630383742092360173979733086385639510515842423587290485338675159708117536089698683128670615948171455508174033420542221820659049872335670462140189461936763783840298723488482541258371025158467951808414743682666941396551194369224167399095452551745603818650107389084609988136314868576169662450418582847435096694548530451329854753445600098045507198336244123834385000189063122361207853086185888981183175658586063573204699603422185609026713148247045450420471375303872023916932066453488107430829221195987129349345873644263738917848905520073449817473688144869849959319269472713262397418109688665016838361182273143100688053276566676950301140435569798083627148287794493695899283135958647964403778888611517351866967241372515171201369833586854975636889950785922183556741712061522338329885285009320857759574338230590476767589740034658219668418337056946752611167444252485595304046310701630316033106854195176890954391171318383003117964714028339412701066296788928011039573408156166360722789704630295287760992816863484438011599963824492270108442117767658383818801999822376847826354352384548250010108675200390304658133576189551756713693967559414989985836955995038824981696238593843154806067404912494499870840320229205912814063805101763806234078220289097722101998959824618189745896559009554659688252082009292555298779954590645305428453381996462906020866467212403206290419830380111104755981579556411125093282784917156540131360622945100599552429248675674827371230131879486182372327317511380413045356374343381932994978444721374640235210565458790376526036898352213872837424407742768086509588705667317031226290105207654275809028582503613955784723746189660548583161320800866331412472115408701403510494531952547286746281324410062769254524116418462671490084008762641369237347990143413473839269654677361144489502977131966397798065366989091962255724190358269929663115873613711671060594247230698314668733416761174549433816458573918369620285473319565199050532081841291434723066261400382315656834691450730499425052080354936382207504294957759560489699250314209201442328234781563229015377203129660014741053534462814147448107510497391156015933343937685425360685087137463574498583792902173759847499772295627387520829203513490356219660589121192702949819073774951000141001810696565767028167913400420965918866255108128678314482604746539673498744992059727351251637716224720527114498686624766703873706299915203322599395641377542268798894336871301534390163582754457378746462616079070537005492368747144595842296133716231916643493214308088205595210773568386870687753327930185026950083648804382343173949150307085292385146455901008330391739769002140888426608075650990398364789370142264509097741965798714673611006264443459816825473598181875085144989324417654070006881872810017059671672704736282152757284199318496587781893931366281999444738657712187181597986261805244239541347432244976785443197281274721138312766214605984753119852971458753621657946775961547205068482266742787949714614587551193541079486093192098404902143478093451576186272430244602171603550696927622766847185403755420358313208707791403391267716211922783398979882176403733858223159248415263830906125592134672247236170514373468626762311085799601517486845543211762901221385829786564623997886485145197728725525438247467575657606959535852392326830935534526755879622681618727821563858846424822722706865141631353862530400630192460248841972888680319094346039649788085369862108592167167582092703778464778798569045513364396267990319257091782728674927335012821300368239606739389183554770156770000879059675903059881584428015087498908473783824707753541787843526010372167243105463068803164984249498418131232322983086584566894723924550250409874937255796907105170973922754592135025417551719529484066395475604074905724574734382313694051985285276863194608296219774374933756193234736594086020023143305033605990938598732563299532536678114318913386663686329744273728318942376154047857308527874018822831472275548748541249854999641301995921682553051269880859127879961149803796460004835751617479695067642938560335906636882746900313826061878972581950363720503893495198160982089430213289323643689935959577669265970199417594935504588808865124807569527905015150136290362973054125912698739795902347165670658663579546689112520767741521944916706562500591004791320418818942608184137692013138075203797238721853050321325847268411074209128807577558343501320334516022745217536591067326237349990729153997055710635159417536207130834350874847695299317260257957659207504282086304083465228415677720100006090105883145715988353582076006297429377787584794741624894015452778115026191940049708571444782246304422407857061952179825897329507352564815655495824627756047144495883817196130469766198035126293393236601598670510861434612318131384092703136473115558552314820670332796708132097233829107320755818333340580662908926635524935741436365794870633613965008895537566429932989210713892726929509479413916099765924714385660860056882323259268087702243186149640097817359626763097029866280662890025409480545884009126737696848947468603163789740676055297106198986357500065809233340422559107537436335840173555518907158470032489233207206753686107965405016050027835915035124030779699510581731323954976397052301147183647515311417542482904310162196886783108254778089067502262862958836525347381167471079068845907683620268965683505402532814641957246051904481763167312267562303236474504738662474529586939896466594016419022665946385432029601375977897153615572518396730639660190407646121710775699877552546921751863401710275239773725831454422927463020144970881999459819791327630787169593699611544173030625716905525653185504460504725819048096561299133027271980380233558359548816752273846721235484451171766322612901374967998581389569306872538388822005883905473645875848824885967126772873399418142204599641140898654135278929491766467331550681954475633714208139972509816304221141583098734588872480973396779551851921188350542478179077307997833227463175309751393943243053805392721594567503771475379979473085417941953736390999687015147770267316286080839105400853672867842900125098608292038732550595795968996308889570252482138591888988705821634950632201756800427106865302000414469280815793723520192002901718709086657697807584631423952027214756312283272253009953612223001809616578831624177596641348688560323157260925088427805079081628202735972225080177185077238429103951400278969720599033005248871592129992514589914953880897519743757858742859184754240417366414759297588314646622432032766285426538757513602886481363540161560034819231593087195613557576280798048400186427101477972019986965843218235077136192920810509681557101896990212588742378792750110335604147967645000793123041962828054195963943617123236182801026982851936929137758286988239903457210094775442916198891769699246035921285866581562354854758897879680893106486519005370897690291196644959276584203313560146308124329381267846211044350061393163233080825489997021747865438452578503616040499441801691085008490668069039299547031092398902356040959710262114226211686710255784405886896886818963395476690637744075786285938130568837578758004413749845345758380072002285073915064724667240500510220137072586082329315670507751493160312565155046153907940613549156971878745793763240521480847738679101265613315073521702215728284696720802172142823572744743864988546376972751428450265049775295249803597668042030576268243019490546802221047733460498918803926398072662399973636313478456326440238373100259008284281705650976866022537117983082146921836669912307282710965345340105984737258565804008929019009804141694000220606400541492791350953990645320424467241641434558302977136765150483347871606770264616216927861210987924103696515583877010451788075498916507214466502073561556695439844906149742485831395878452671117831423666933152266539830438829701434986457886571372651249484784804263435744801378010586083733988612317364447582063503992525933088322036745147612726897312220648489816583700843329671829251256906408511340403628988511201892431641161264658450818701289395782190284020718429318864744498669428483424495607634904591674808389292004396214030609486087704270269261721231002223510508205563424700443403793943667030505069696090139942229358985666529320559725932736556665010240732398562189426086364947130402339971051737456313214845857341787538686660678167084945883689773047967886680717793756407246410088173323238496122504456547788974729191032115489354081072068025801743906407584295112824623685757693356766897333599388488681942068969961846563560566724932514559968788152236764293139663321518798904479194791020121354720419116036313991872879741010468876125878402179386660673714444147679050197883595069826074379414244073379955256265086739189277753182713479605646360246359382556743552420536062229212039834913887002096659754320619067482312586784903045494137633735876372616326400056303545448698865804982039248285691787582125302337781252581006393537082284418600192445700292410295947262870240255740088338117224992028408239790419629409113426544947235632725657372172575438326169441071108751949787933569091579349025341241031143639125498362692509686972583944995361809997640167365252442529185114545466359391059612564653757115666505110748814106585622446344752770187358158781021595598458321244902178174573511454127956568263022662005677497287940313084282666728796437067748991335905069885562802093369245508284513231707686486032223643627206100212115155561050471648178273051392513581602507042360973877053102384888824609971877613817323309970365414918597247324625285323475331968633433991336024670230105142099861723562624028017379715186499074156015116799197188349495640082318926374251576954057585254230675753643954917350809531133912934178400416195712081541401543970540475166675204404391262403169688356904625500518487775685756075053599108143956356782704276755596050717256425151770482459638110625984696658353850138255414355422939675983214630903051265617856798292134340857086238486919002930043152550315755091692419734470172313832976687226468230851306302390221078737363795703910223896391363078723141082940439383988469567696100044516075737520777444592455340734547834620163011487040088669284961427402556597421147757899993870395597218947400469133092264320363467065573155646793604162846793728778548612911728359964358342307535641673899312844413511311157329824381254674332516785535864433209741943043081359140482182854446498062585122752709324324149562903046304921337811800770899147790603992550142086532421149932563426560635134141477253101074227015770107245125469277045694860807611063389715703914757842418414463434745799868591105749843936306690732055728105793057090398607716091893881572138593898156011141056912112716423844570086549868182909061532281517552377573734525895108605116827426176730484025376629433500012663099902615395287312438690666173906170578801034279649900841903947379327384805346867360919071017263473508428542204739743661466128392383598552024100736626400997150581962272771573040470323661516038053034955477596546622306956510024268145727753600418812529923315860240224815340277602623137740273745034366597583583103047439071929293491355840238758198767452111744427950592523362157537358287391131539867719028580046724040387485902482051035142855732042179113830175077127321616222138645996732211440595323083259625696051581747951906258829350008496332662955930272698376866446801272211158263139807849669558255932700808959278986435109568235019482745001945049544020166731932545781503541544370037865404682333261417238584686839459162724542937127632999591144484442043108677377117421906594310001699786488749686448607018108176105173721186519132536018599558410257666951196241228979144759330487951506599632730473189215914604726277421970169939776310737648672115494478544972253893172466136219288641992310037121972707864669939673909222708883895868781750241326524537827279670827405079245736877297030733845568890666214768507791658617925232217408788976742809978514375030382997623453808691295303443671170724300785194389195132036547488604484260391357446837072358953987727247459154580134450495016254244804175557703082604465661330648125177196592976556780802252089463004764172584830857219796564590025847989943523885891165864897258059352493823632861217415900622485772246954993207727830902919393581512460265442732523930286518442954122119306179643077482113471021744808945248609619118170708038846881323358149956126674702243963310192626963245530823970259679367963480688809126003664773309993859317372647530215644334819840344703405787924913027296164348889341178657091271492028353418693477283965903192845248982584522693812314130978553884617864542393437692919239009526831347930564010165250058286587846773846539191330716221663259847400046575092719504695099101657445350991686039248987953817987546726846894783869875992029106372992856079237992727087430541037124735599479894018603613367672582367347355042201770889610378339266608681399388720805723740066031344758936297222643672656035884850871254681909004280885507162256317384223583545845805151323886187114228369820579777141238545225217371741554562933580560912135301968361303299627445145963833401781514473592517419947149382171401702726664924670768648121580908122374069917584457984100175584892231397097986898865253222290284996827099067574000159016076576354293634154658451423137924749067779919103325312343433108225719842593119533378625492865409396773552863880020734612816264912381543011858652444414676696131392082850177673909449257214666124996508825024590186740954207469243670297220953754126464991601859821941095945647188758698765039896125436407530031791394927427817410629794058664154602867896120180278761381231061567571944577841859282794092138574300605899660583068003950200977592443989502224695343582416060363758501225669520718321089894054777936675355486008183441553279483742757349735307281768601999330050204427094855375296661792494466801034021824947758493679278079863631526262578285958812923469757268021609210766169243415389386942107698716488996849566761391966395935303606679324862359130808386912629439154885829860411598282163548662135226233810232575556262809752948390119260036082439121519087921319173013723889862214244488331042177998654781811961266279279347234737540966244214928111201959604366531658613185809303453383879575039555442323584574417615432943302910761523524021250751994435308565171356904220739351861540241147277921858975532247043957463881113227127645639218970529609987200728664703074726770124699289721078601872500727241887737403422302278425004835210808208339293105770176749900305231958461891754114941481976791138176019048777588328551163133920020221017379941247150621906010043175957605483890334705471477756232140644819888845738583164250518774301447912618225221864552052295579479428814856161617838031437045437429740341132987126514020021894456183638445210180560295539209105929761206343614868312347552891207859230830185961373677708771036657485178286459012360949721772450745795370959692280047845672978775675893452331163401595203861371553006082508482518529876168886817033228227910053838287993390472531209555215249192326419632708664350971077499459438787655586703376959983432164218537902241094487657830783156525170742036697092548989730588986502042591858244442309546072119381539580330048183937938112044208398333750291241067305661744349543241697002280340192623982293010122076670851448151798768091900374427434184600031167615819724314098554400366667798126801361824858742363231886267758296807508618528046025285186332837234601833405243967624961675989825240309443995044724696824577106396418341549237023730918827487891382173961141765423764035300891296402726368451088820814398719455624551575238248861292576712388574500895832981067219319190283361703817435261613984568845758133338153514464565207932484240138726773970439165123983019257621065241252277028687855815535407895337365977732771366890169814991604016359265594339451198071859717221003751354301017206005728474307975181561009159753782136870236844000220043243876315398182813041406258590039696620077899570639744492097786755424322489036613253137559834150714872806063508190298512803313454216655751944257692177755216728120740411674045282026678207880899299395686322650903264111466326679581893102309069578436534777195302696028631992171537754947009784618073746782043707806723217954873951078645784329581435169829143898178917388121620134882633000562952910402664548533327841994280466496296915364589513113454838244048636629967509916431361694376481568932595824665256021583620205980700220800171648247303943134882975497619711081305921558447395278584334270876468429003841192636020000629002525691671069260047347361496942136534436166127082915931936806558729998171565274349321980600979008861468031569754132839846174971680786887929493814230393356739879227415453190423968212445340994101935608272596933302941565126289957060734831411869254702592433980982519218414530380956663368400794925367778587530527758904342595288103077016794443517520681771095556594930769104229082374215778323992410493847215188931868874565503587626697934606667451849299862580633280588386784755450225477031202969570612749246267615284491668855769518355020820529992714392382980368554245647265791724504009818600238782007778446730887305273003660180627939105898035179753590690923951483403297350452018437252085836278247988702181015154136888587062783940270648627004428625656208344589046819786433640024817001412236101683329514647874908180592723967214060140573218667562246628764662151123363168278626623343525930174702589773636977775791647340452618964464158623370508998208423270080681191727975096742749751978133174826180794552128937895285895695338195191722846364501594874603116364957297531903317638130720283418966634588825073472712513628477746159450456490707287828092672419978554709510098176028894269912059769246373943149615806025578474658607711366373575772036631286811401331286506503835636561038537138880697591907489374552959747035614479174246809958205971389250009133817823745530285910506053952515548091642994026613585286364184386719689293713650659903583676591798900710792877815641894483131654221444971985686602475838342684679918028079179860043715115793617878092955358546646939550497058952186701770478842955326868716258258931812765541784307476260401312620125479863977861510814768093342558238287086640842811435145030781930784795208703087881947796748562356833512300372671022464377079180803947810917009019786604757430868692867014559305198489302969693627840720801418735584859529432843116691869061913574826747932932196535302240061437542620750170883132171628103527025205243721681370514323419043433411824373931280587244539115981256723466804032952790540040571898774964312845790578529864643566845867802408213428449482811650771744455878198838303315033512714323687534511653395449338887794037762036796691542431648094844702639450255086257085878587580352222840030555208828470312871386522868846999626482086832943527287139231144349809124075965095257225181634577716467767786037689296958660178875361672507626088930457685564469815352655958125486440975162592072448001006319511135235046033732945936040781904506206630857317560170194561088836444045263456924838254924726554814007329402710441718167243327949467236647628448773821486807442882921905424800638770094928189181018227041297695236428503381089078247850934694881154113332322073456737064369384600965252704712417777379997523072279746974710437286426358440985302176923577810077306080536945033567868321279141338134236501091638060144475572553365484129793676771034081648252939156075463678622040341987280609088475449465320756991781767218556264709876805114640009225792876986999908547030018811287171150091709779675438554027490129365347946608622427769189576530572444730981737148625598740392768892657174177099144482665207272045722477807559038288058085835125453237897233916310377310801603569491947771030184902912366145552742898177056958837108631693661937986696838246464297440727923383757150691982829993366052810324885635625610861255063489624553026871836604267314215854261218326504309366748696211994106342122619922517220490228006218392342087930730318610988898832555680039170141463406233709018901594807059138262706221606411957823058468654506039032589200193041687876991416724849234399342039742875995168337147213091019812876213899121395617497948859535687410704008707131334176420632513083157703924904043706840467525744238401046566369940282816823949178830325317590052976268397261485746998385676097374563853332818821844063969079664474944103750586748710905204913177297484539108491084391789418380369819139038925692545294716301756398426536854944977620737213212450111035185052266542418629805562802131544605531321369532404130487866495268160098468420575405351493032628965896542986398628384209935817355651304606019216369325807014679156454357190002931426840029048685108230721424868176584558746100549585668937572732610723725090711555068936441628078867159251730739824231871617106930038444201904629351680841090780861841429537332841855577940035564558472817373327728017108122988795861164396409896013355233606284753660770066083785425485985382422327167995755722748207839290449722814092681924010618128409559323002777031989944091751126690879712916354323241487192424426764250767093699064548684370713169565435680313135245112253034999966136436127231157043448337529886845342966526167540924219122077572450888706553822543863406049146317568979606862110780101625675195709043632377765768858127798424339637338355208063266765061147154050455662177051344249043548824763517165568930523899708973026626184958891327906950978445035437290627955003370013826068620264844515253200250626845376575542461986323980112340050380074264126086352646691082473215634279787022010035288255384155106594986086624921032728871427418360914551442989346690968529348957084159367515734833941358547844974886350563834318388586934607444340596998736665486906602682308375603856484925180900051339936237469599775614582187671361962182473058534816354191222113271819145868614148686976957160546214160885664049650160689613740938317563259184429918245782666641821716443556936632768057915245003056744624264402294878176762974925716190921257970065050954091208968745075931448228471714014555963136182496795677458565075625732999519892242859727149434463541983520859221720505582280034366916529774990973091650080447492933575732702196549950518284434383977436256285835781937889125547631924257269261891206786636912839111623007063221794787830157139869352623481503965153673317727828833520838274778020025597273741862482598049702819218623999994741263084200230532363271390953571435611595350474597862112526589890645368730807439432240196707032997574483673165518768564848843350464536970880616718873459617915159646488497973389338210315299097434266107518775898349868562877250536530522780104801633428133944504610352371513995811073686221693127710627803265586705067144238103525464909321538417691971721583055822977171357515982864465907754599340975607869024178447610380709100751920465055107329290873700623722722239568043976885073102921254973609564390189175065055217034388923328553487702326610031878592827052819273722685973491170361287964234765478548572052051818209592626295778052256962487962811210076130458184280469920447490162043738806751700956362185861167675589648256387472926351407951725944773321698964753697678643487268928957340037708788696503589050883044715325660890462071543455938018665716837929207144781792188481179182254541540682721512362702526580934355260832067947287451157197441848628698229614757682824408497175830131430319275639675797052676888614231428028866451223323494857714782997341940997355434800992796489354271128203263331718068950715854390157161596820293561721203846203667553541231981247298377249648450101765068389348175597718049327471189101715188844719914162058059274301091692099131501485461482537424451945334042875486476884560767699669596224563041347184815167829330812408458881992534679212061944261809369898223952524192233697365950455547427654656035210002693079771804833335273569578506042748367653005629771475740776063995061070796548421860824399417134888424150238799121371181256267563510797358122895613008516144204876893960120479192266837127303340300524840068047832279246301639691607641117538155639523760210629828736025340361027518725876934145680590229264616538514033432032903969657472153428790615468289826232227327955235193426752317617141050852985480535514096239272475798713050556777387453729355278152095507270930567027901951076713161655770496556644416856289938122873216541852438879913331255351198548660853616855262976672572568750903463652762698117980589665633095643172572308637113750852190357727900428021068619412417891559562533953559140589157860097427263463528447090622422039441788985007256715088273807136323198437323340455324853513174783943428346762024949020970048410533859466014508895285558144116030449779332104652283427807838643075455431811089211296309695504804784527740380702471124404440359575911582882649382601917040963257885759165021388735502338208975164734291561662197939730916429228931860944715935325246275704373068120501708098526577124342226734774548137562347029044131665326774116135525089741935332124942441822026721170434528652100081363506978305088244377243259874207575719864507594651674851690785740817556458727784770142048026056019270228170914469129207725861299381432618583749565619100657662150595438095568518382869359368832823456948426454641636357230371313605783166472608204148520372583436411719425787825758894579661481047713726710262987975854831487583819931452380012969818234684015795378925779859258248020153725135894529334480984748531723088981375007048834770461146154472416491270857855396520338447410573570194458477123898930725848037858712165999654101954773868126063420601395943949447415546558084327689688276761179688673083358922598238207554855487547420323528943328562049231434195149647166637382577751595448092485880880674154412417999971422099992333226197384048674705661727438297590071672328395468454485371739759436890300495787565801674607145836511668780093754421029638690328223288060035832651908306700955684443130486545294717615948548977973449675868496913801256717131530425748341852342505494200815794817217670942402107099212760536838396396583610125925283924091787273585637808822270459730886388922126084907557533555028731162664037412637586712329557560960063184188603286684873335153827615280145665264650121648104861928432674880477956020486298617983186202386353841619866412889761515948046811088349850097155757451993636365142728359719506903731762724804654074517621945711208155716869548174767669862822585699354479439085808704744538939685571177302614462860814726113915839880781910669820811717179605617147529723040051590550387181274103885445651010158348488407151797970740340494847509102019236682310395879070656146999178958285841852564187885411755632001393482730092810286693670511090111415346855451490525718060306714301090771310205780001071265406047413037077734068607967027558144533949643755690933786783171058722260898859985688374742283585034233588793422980967557939378339218265810942897463248228597228173177249966653664403344610778693852446129616532549960045123985029378474967253648937783048153503295552440085656764546799812262149355771444356479604992416778147907381185105324283446719554899353198365618507722080404550072506384075345877141777794767341754375855353081227435478057955499584861162435494788077588680371235216705270723880581384243431323017085591560303940944869829046849072530787770108341076468504694347765359622358369723200620050281483843976083447965576047689932578476968690242286922393436685069717767213617976064108519477949105913338504222106758522056358694339998752620420828909837984910485864029671122671847828905513618824032456648424369686465425321429356742933748029931235697281121973222621807652544073606733804489570660380702612980170327828821033070740856246509807883148628171329427567487247379206610729593379434963511328213929172074749529671387117142546273610109549949759959041183000105633663444851905986951451887467844360096155776366989824042326743114004317548537699658089461818152497724191946458928130019179255755093642253464232877564715453096622865262890188420862251888115690392343007762534898522070760366250412072124806671254711100356871542609061720539824223474393498433622795297361966142274998944875558120330804920509529493653674200799619307494593912201722888339621818425734567546527092275139107286853248564901223738466248725692054084173060616383489541585709836119787812924232963862463124191209284255015091512652327884719479773121959950232255867890659195907252316135839168809312226253001240373438510019317127518209636243339147664944317211010211098370770412502331530791109193958575717782630684468381067673833053355105600186751381855689538896347115943691352696639989605945435973591706484020812277669875657222426413427392747500186137882401750516385661094997390984548369253882853510468956988043977590674395587112292638343294609013189165619514797902936529356205644300939245944015010890674313736978438892939926363727433064656457380079121218701317030890891635732097908139112922994978096516842986836272825840578030065060360190240954929884702310189828150081634981175513563250832793207300620252293538404119910001109600156123363699982695787030920127455127810337281765296474232715236089932315961831780347398284694137407993458551952520444066210308365054077644504435810708634449520948306507406018771804097958381669078233249768418963242421404005866816142924197806874574288557193608582350646118088009338161279738982172772718274368395406441481867415923665508910408682450674478275795615851306045793666323954888778716349722244941222863584036702223326750595537874051822763922670688629566024921565046235694889934556960413597015108791508962003931218436371229139105562202871595561187053575889265330731531810602232175635050717524421596379699314319211829770526195979723442702467881092554758979453188347481121292774692007387367791077033638797270896459941588362567450053195450803239753359800424250268968314404527684917240616139805008716444525225416690908878504973577609053167947733338331486018214549076399399610431749463030332028685875515119859483701118384604018675679550211528709510235029873518165286479177499734522859578955732143473952718396609750404875173792446713373164876299212145895577310350136037953752202678445234086077869801590387582141521720226769286296367829293461595192261500969924252557938434168354229569124008908786413128090351868079005700620702685787143103752897672710466527392137858835771336581130438136876260581196151915248415462202572051047814785442401483479504455120320463652267079653346324285588568969841420337871394796380213808195211897442901992260885868728637029964583224630554993642553724765945873236829036016847961460883761051825776135975995579906670901595395945231361960014881359292776888122086201502413220858212979081277880184274073689112828723654573063649465249269969456969703576988933014715484319609416475163376894056863174218145766448453235591333578270111469343135841792676855669205755913093967692232786853846607873548945113997725974286916145724010127730376777267307993050587278467857346179143122999301138683383890581143060213817816243130153806759232234777100451480026976301629724838158230864928648695272438186207167164006599630573911578889858395601118027054810872820919588535481706288016970310645828733872303055544386485199558775364357078268755982073192762496924862515980397897824638242520345441751662616452106002692890447993527645170082877820070732256008090548935508394156748767143939977149941568898199834951779814205047023789090416506554319225882645644028202994128671909943459403137000328273849872615488749181241349233702857569414118228223380045982507154147623230294884334370459754976432707561397872469724152424734010674987440899189128108592233275422960541123842135867270366847876169962454443844227394597627632111151264234454913567588098869254451340480917315610146317449622035623783733448264254868496635375789771058829726942097799242231751559678984642284480832960988955956043083276612732074359002430241850344058987911375485505834580792420853154405104558954333106462267175142144454280085346845094529834765581871786298221758455447852730501266454987516251365016616919169099144035642774185610807573832406130868258827925936004557633689408245221173776008231341381683913932105548694397262428174703543257945998935551768632123744245354319631110738020543774169975829635659995760513698841415843824516011388327405992236828084728628212449699966692537401931931317666391677023403260145946509287306935932970457912934898743824334808251099719307432659613538857483656543991021003204128050781032676214864027833477679836184013304590821613293853372451520572191540451778084328864560991046461355981757803523245427756713198598580113561576607851510688575926843842241967991009184255889676392441643569778117666441599791386831350082490269859535005011004246687953252108382894245883801648816070436818349520035785912906720011801204188788340966513346505092569478027004546908976925140319999912522270196364659199580786807999931976805573184150422797538180211022783294386629579199756711541177062071788895753097610125527095501539213588010812601198402431657665484628515281126606026283074355650058975177853028452702892724093966654520205567033777152077529783240353143105050982533468782589087395342717575991606878044949409125342998362951745349584937121483659305391597687512746383862405288682209023226558461854757031286339402480703080959662025701254423324314706873234599669529969110667304063692152769873266256401067112440848224767725012433720418323843004564094312989387849449274685879128074375824800508590259474025307957249112143014941329900150806090241089252891137331136637101664397851903066274538194472923702886809608722795732574008618164972159862527664909250412041112906571113586497039128933503187011183526989192972823436989688353168921628353118252678859404098235571496955176018419621045000027660270790107658735365304113200984206729499474658634130489400711824383112038392347940522238786503590264791026883835560965384532846727312859726107473650745835603373612046976176695168417280756262321337121772382094316868987407010160157444329521901872016229827089534714462295620595484461185975311402548163563525609386256521270502297350698293487877834559645470978864701305048739134643780112059565788209863454486362047687317920396818797326931698177762028734323083874003042616278887225356961026025200956531362563143255222872375169844709366299927022536805178193381013849124136768367568313363475771715521113194337555134168938109672380690985178064667596306338232001855617727640624241346146783613510581042578834775705032810607149362502950280586178875403759716277022295715209881239192811998741871626336468748587437985704821687849298267483503600226716354443042779590564918134584930372825982719970115668091604090325086418410470997731901060543601312019102728363205509615733291770880499746047025790707918785202906302932190183972971144097056512319507424562399468430601613224969058407386456069370869302900745598911566578053132759263439755687871364173157041635257962697860070811460339649218584473763379034825587594660964190929580585750897464548836639592301021837564844245005052121331509819540774508190614348194821892989971960623442578897537743674514008651369142024874808787832544062930231214071910133195658002363129063037028369878950136736769572463797940730526941355855294448656350132590598828409451088162394469237043225202783036225960301564076406933901165814584270922815098572718529935211000112788251654333600697310903407223405918202705568792429595673443248852517643552436537079525120644083340773454488139072402404869162062514704000872026750560916570743462385475453361369507948771145474055410325330540384754808713058447927836628708218433792817499741289133344404185372369075284794185572599986530057229470443404792920621448296622979781573570263943492566897777487531775894363492428783011066116664187699251626955327141090952489734016706189344041844279383369053499065710929397770009303546795830002326345430613987416031893497233203612831438742955690022019045700444301650547838793131863950331622321518776864499805605896404129921658674977260941958948185303431697230811259564536433730967758166216539654415402784117975679500236494011678283844127333163902052411166736720062751529662368719203872125523187296186542358011072636717452159562711175453491527408494024062561588180711787198009495911636403558833100029496658842072362373492851712442521023032860918114816146284004457315645152478689725472691492201261143709304152182449894778574095408555566230164236818970910921614827681582502792271694238302005658067482671653164876706740480203220787372794782958460138137270271210224426402417312026034734621078962901911790647171328027313135451447553525714566203780608563330817736400345272535464740440938897442960622536758603772572269632613246228284031758819133021833776400142637536956894573046874488062148263215764333249579402700561381858349578350981176029521386113506219947720178949477580290864485236116405310023251629924829518342879887506990582662221977759890828253745561258923869514637373878184944113029115209906868196986196953381106731176195285369085041063653148406042167654225175783598864675500307108881828855060958601626443700283611724715318328001672336584189075075986108561539794158857250647747417912332480185077365606940175271270781217728448403786059316603857466793982399424828144084276303098599292457195343327768845711819240561094846646146775690262354001714928443397405784861462236235117389911132562166194162025293207567609833502081007227489971560186931374497558611179162339979553089395706167130998978033077802654030293123023268496015444876638355138913261026363276334561227887289077504094054525464892904132326889093244447346508653907649638177708715553616036926963801031417513944046488167125157613670070268313245625686578397084955616208479724302433476683826214355402820986379739293561915914110819487000492514370480434673142206104401664286383881485475143299763072672130894506855060867646025663179540502909125906760832530516425350654974727120381016383246871586168463618198948703044039824336539702137003270437555426317312876051767477207029784094388822070577603533200698617027454524907610818515903944441679178694301724123134476570239885608506432143362884303969374262635509325975652430461115344679351997914095408555643432732159114686313550414866494087956145318614890474007509421043548328234633863039387871124311647752835997341098518263995702776661064612015708776423064355639858789923847258859458567317237099609971598637112189278260507280309462696425326530332281563503357012681175962869409211230464382631878640756794309809459211134616372087495682584135561737592035981232629492691229626353323385896981150198247288439107851576053564616264995453058278819110871688781104617449461722299567671130403309560572128356818904458073742455927535901859725701963884419771868532857627466567758390610057784470250779982143519079644307076279507921628243764725820141696209582164491267779552225554528491553925870566001666268334626190800451318575135371429289087705117799655335381388511409143511584705633240810707489711636487625294677892124634751858554105392306649899932101290346948546242555841264564992424568934299038296006310573088331026279039053283733191022237753993264385952994002994363664870118941422397707457851032682405334228786876200347205825160185130966750938012522924985401923999808173034951440288688937898569431962463342728490463710844548448190569280793986696997594556377924265847705890780962900270346167718288659811941032548387585890771585765429736896500373042671850738682821027856404180395205327707662818983926884709031789911695814927989800206872223469997053573352586815611576376483998035456039325000616317170919642118715405518443331861013831871759250908038127738295930714521467058465224273269459369738527420636026922001228083784287833017552024170710904833197641043465955547049951108488634800017114096926298110612089777789149965713254703138745650902710414952295172248237105783204844883405098333318622500986418894610779468369627621798904202029215830216808186536626462952789950072382472198906843086687950548292921667570845964790894937181993379686335586198002162768595761331869235721374364389166695015970445977288777019112782618129799564610603677524161067825166171881455069253647728453711935329446749839624458667306793876182057024078524221210269454387445345943093457315892403127839117377458543813479161244581600296911159697736674880465175191273112738131091335999110127102670402038692881752572921974709751040265521635327617698440351962908881882957767706185791227096132881851306208326310235467057082390371146005418838245972036735896687559538514965495540045303688255387262699279079639177972874415252389814941254606849709039041395991261885955982938154603965648355942779239871523430286428928759092287602816644706725985249706525563948241954506950145017754778965047082343236012000402338856061283968658636548478138626894197183397011097644875246361901010108610504767467238155596828673996739238144448694755219783228287371247180221613191381864275415952073262410010430645490300661643038142584561768250124887138048879665123359676403345551199441855928774879874873303119703964615605619032136412768681736663787727559808092281424948843605294995261669211989899709088919701968639627063871030938818940461190739959749520942640306851722631881511737546858510819074719584300603091302095648943648039718947318555298796265390579906808752070603334014504069716735614424688901235380279734535611540049016137186141035534702103113138896966582586383152347097387114724119776326349832493547938263751172041517234386854541816607802068853122909371886760907792463338243960953415028712179582125414062219287789647567030330184067439456407465116552550684807725499547369322192890113988062470889826193049462920251718980977066456908839725063201320037903731009270586595038757630364604360825609505064676155605101777626111751878362381986225387864055599668646822080753670407143108914747361667923836735101711964258832772368790174011587334214848407453338679231913380992140929119663133478493564837528355853916441810854093203405339545498634837995835789670699359827204018261962592711914380762640279461974320750568628947306545686761631316661224730313520634554183464517512152785180555017736893101761676657934118191480186498394638396676319349327895301407691768921448068258551866816042938362586744793773399371110005843912946398043828608842865352791379580497661771606264994152113667254068188907201802215782944119676964880600011633534107551649442843338750011418426818566186705730255685417029840864325811959392884159638640188512517985829428859029020573921951509476919990848842231870180508357428085124947019401024674592687816779912065014711428100562328828814630342063770313601998862139674279008910041149281561495714616804653387690634883370659571235795959666146360927344320703636382176864282369314328185345567758910884789734919839931619710662728096327366687968336578922511369654455953456686665721172782830880278722029194772761780393869492095883193866326665707254080434608300372231435797133986862925876823384370709627804538882259941648764272867192824705373902384357470349411905587223485403457453227692120228068161186530984609559940727267568937465901739829898473020212511986107857568851186029528223887655828954764952016186344106476379638072944547941120757274545535975976113056617427249987821328675368071061463480104544093050810640531186106275622057710922996873823959332959561228136618473456488547075284187719738304133169285944020505593075532838844821930895510836106544206724219035302991415428582941136378878265303640305789694014935629507833611572093303199581976485169132259888216293003027126598603261261708570398944859780010113227600770621236264164198224739383136237129465430399226543187342212981005455290977199626954820725681715600546496569150245107159032264442385610262074446216992075316220659838802270428450126155969825319413171272646268123844451753318843256285169981866173042303046932832904309693361398957130933327812162725791498027172365002800658375059798859122655313901061260664340526071454107885163103988298504977309841523578951160089884741372654498295700612110115911730942714368769839004492240927270177655847473338065840828751065238649143005283635361245015104312793793594426640523169328751842756858907005808924044075269182883532600361677560944570934000383829841619380067507383945814985174437921098106012162199361539318499169437480895546505605431723401205595477116319250074091998717190118151233189955820891094057345529018770341959481225009808053872494722182222468455364361501650503508912240766928127230038310021319966042384576404964123135346860939351425772066867612119487635790331105992317097417249713958129773142443709275690513256670342394232489316487562152674658735761745967837182119715131091354297780552802839475701577660659367214123819819651135969744902076111538226915035262809045438730469004563460784597630033170939013796610112553933844015266201481473663907423606030990563235850842802013123859630573549737443965841454567427262615964983076723814779797163999853070478762460029674272597949457623843387419818868899007211024112316616570106652381812149501448658519873452391030061119825170262004492055282493863737602591016412853601271546437452814196319840079234885632365752075658145668934798404463554908772449591395232363690616338772796958378232846514928185426691808788799259318030044110251973895881782422168398016966852721380358036484266253622820412824155550538088696930659478285370285007960198981333526680450954344802981003101170808414696574707459949521970902399361797167555651782884807038848017275730075890336960854544627442605410081512931774506561825674179014140233844128561243479073942675122244153343294414325968990535195540029089250184077690757759413761499973746102593683175132109978275041676423599589021394844793453140730436869310934537985767112024538830034398187175463133093824268669971895828617393417067659765188282624696286870967066400263900327860047291122775266919185847999195611924490554638290804423422682656038948443516639983828340373955000919312754716480644297626544974291399750453090730710573875179984875808823093371760399187213389433746471040877765491031374607139005986320976418594284601955447950374353827558886145636076485812891373162743851015218636327660727642970841164638563294789404075583136431538990492755923844191882877455606558667621600393304576057242547085884083507311296960884909471334349198107839900863655540530422203363284548537478384128372481799559703470387851080984036479072765802250098210724861678008408022135884580593507734958565121603625743955476125358425658432958032302235629693194826432485324340118588235956725316562043793132682711225970984011095427018618141059027857194839377677269463656868912131737718448645570624721465397545767930621044947981102078681133706379385665324172391740376087463248207362340745178230893397015734932592986709673650874261420093514209418074242526398447581352872017778738013057830616369518887897593289463016835545062742146636066381450160080137302739481884687810727880044387345302455876331349872467374855844798660609609000067637745100368390534438359900926859079887071443281095635195519671053389344935293026417561978573876555432938662818766173905396697248065486797406959076299203392093121378939248135091851347980245672123345396111049622085203223082975635321544519984892239394914091529269808337587694243265811298342920519770258540205551994155654438550612927503111660669840810504703847244867473014737769778332914187652656722079343675210601171489650865971107306143265751505169315245593113963281466053271092959004479175266254645971001516618417669933269884523139935058009875904679193342721075482702595981968692964800681382521942501741917340441739343317276294116842693537364137131836008997514473370589011094939877928101873937303911082713509941850521206430469679654697298440858638370179907126844649867102755522912261775973034460347533159948685225359425971503517775448076904797747228983406357523772785388068898555216720467981947940608649596131043072325504855383806138341943892212577158728954526058450107341722064329887858155242913528037715728244740855080614283064430674350221693493049264908462901858880182311335863898057884662637589503734626261211382504496487179377744044277528911104741794645649717451216238230963052512674602153722217490747187629485372506980186191936445267820834045443735349618702688662340511916000175530874556663445336129188522678510147322255937468035730097335118508095991957959669849374080151635578176878608636957412287090865366576818609370902929210751291679255329769417475586030909922779631673306215277781386391867161424632591688816327511111165988168339353128995589264877229606296541319760205604897327992739866842446246855002629209056851248107288684148899838035065539905468632107232530099362433846240390826100693672146305804780675813626755360070765365278199389464476242534053185069897010100126202751341818582784080334922042555022100976729920369283274208579798518107382134469134666180778943394074783200954358217332316502742856038428321984045034719101654407069027605841330029623872689686433039979212667339919809535668764364730335886699934755356597920138241141618207392830434877327601395570880903301069641005553322159012318818005405014205032076118021187090476069203475317691887592182685811635582964211995679732790974794380026114982485887048800808136597012449027844132942143125751215294005267747258876673751326619767018529220408588066586746914703807137065305211605272021438791292159576880304964018209547920832301552038887289350274215944832973185159537597201372355815881745954584072856448198305107042122937351955691118122748100524327932382480731084304278562371532613543691475926949282836978397560725140409864353248649520219444314886183379365664993524098254671766519660059953563694668849590936785412776029522806177109498180062221148210941094817320095892706808759144404981466435234386414029394775360347686184712901259049097674133000083007970518308528392738332799494651331846037894067364606392323139021821308447901189183329020848009528671213442314125835237101752500358659896583068269753392722995986667596091427854090405782221306063524790423787531699928452144592193098836346065105030185254572676960368586461884463893651333827494079200723905679247939270505881492849668092236203168940531181184482855916676119296822878689462664172283761834443877455690001847180554984929697394525246510576507153404781946955301302950471618899729645911017970491128495776170522686456924326490974486420699118419502302755811526602657062058413814109606834450287715469018399201149403672286690021115152831816917338323274668177137351109275496171033328929655132611972222164404706869304950838283870003868142355965733215901582834846699266359946292564696648079991713492111382586853032527704487185708520872787942585294845968931734663138617350676577374656067193976283941715501478305707386143112881817630526647065135590521462426863908737747253015646840041905213588049302828946332509627409045737077623683465321792101151895961793585429438631025983447071746085673069736155928909370502693679516408629000585306120441341302786073364991383446815558214317370094021743481272196063461300190013584287279380349204515563444605274862290479926042055819209768410440316940354642988265517248341454702906039019451679438962508816568799431781224393498161522549443362583642234992022378015120659045353152999735039443704769204086484241076418761689991745432488674145943526173464319767695069899872209247458215195032208445445631735144419052321448902166951761780633492722457936172361651615440517751138577375968072964488090439273349484654170016344033933282629860394298930287982395127522527189273342471834339207853023607063589327266284876196624352275829082548607079472219527809415100177566964703094968955004909178211960154237787902316331950208618009744966504463654880695120192290306742704229873464543262777553895111428585730584329470960399013807951099648848534739901227471365251916032616678557052293257233432498855525257228189071143848652731996969920270320086933740969481830317212249590600286051478388515190588219191373897158975305313688485374756522388401733821612652296289614367533481767981635861364071724047941380878910295173334141364750309195323729145664817759742919387299104334355636137836162840070491080442229101342455642748603639076855922424711496374428880897700651220937981777104846512101707892609210546029544844638825910009276082828610835993582645873415780238712925353514626500027542846500993974253139931073030781370916067887471682038348280243970435449005142911804301174386104918144127413008016277271934142422011520616009772859828140757386969041559798902250040893645159537763112366316553859390079572060337351416594720680986245739059439785136027349173637598859167791492501795814435442614529753747964469368003806401733443013482294404081032571100633710194724032652841990437095078537401828719224716123045078137932744313950253565575204390004088193443347906517430247774209239038210952333697995273243773803301086498959321549423777743791427753369921728742837782641935327339547964479174840238404552264923196186293817317823350020357769992507863388367772526116366904041209021746133253659021705241448210371904651780201575699085810879280349312399718449607646563374970009344248685162799003869786758993628823756540338170349271976947556771494105532750333355576765829953713603672513915899300163500329827390909185209314318278161315675906611125875233353708664336472153617830330487147990596089844532059380854293200453608094897571191075692302471565987436147318870575029231633794728256829837812332282868703087865739808050812434541438875954815452764871974468721039340843385861143542017708296600132920973820836815087219770480397910703110462439260045937526018207480486577783277496074082929679136606090168733197761267111321962159344463013066253185873137520786759442567523211735591432138368366448005227210954328360345849954999231604094771435429367301829994087101226951781720355496113280392260446075928123926262671199251154797559255325591469060250930998691836560044650836320042069714607407492760077170190752919191625242180512844515611012742589421051852443861783527086782969209054516623553086004543745898238255573427139517111203972426450180537502872129365891961687518213307732540281620467393450195441374114733109587534499985831460836565293310908921998856432535519834267254797763486671553693629191280710171568546823966211395132694889508634143670819877577041328902958730668795206426036474786619246852139052327117184115963983809495334625712267660300711713943536057362317335825017589600582141572945623739910892409683917775922141103683576522658805396672273283719189813635535348248485239367355871589666620896605399994201290592580840628686996183725244322113964642720913370568321782887619561135136798761180220607188563872516634748408294652804442929914747665770399861588573475584292113795855490054005524235402848919160001319873334146348082158735584721385206586561258645754593149671106812235170245648110400773065116238152698090527887262021691519728543682567928181919685998973389587316697640699822646320324256637540212279002746749177940294507502637225454579490113196069820117343738672348478875600016894344952797872095319644218502150556540244608784947370185627033236761151605076723553373429527869498938342405906258765357150650568554440276500018365712062371237126106744040646556041657205878465996818042274595986118669617836268634406467357134100173312772767372156884157624799500343908260505111194137501846753240793200851912888093723605652792922175073403135925408568939577592910647055162116823116687206795020810087692667774961826592943196827728027478547457319170525672262939517758407758878857854411497664975504190425513953768764459089110839011254607188763495320868609981673726320226102746243545679887948633998043996086555819095449753413479653193402535925784738038934681806147696893799205074526771820656007911813072493001254893323222557545049280021180946814444149128897061886365714738579187059844482676433716279425464173030206553355868743046165714444905317344415602055162249029231139017055044146067584291055611164586550468692598181265152595217755355773065606827595085748295602013697422679663322148102597329322570844422847400434097456960695398126122092808242349364530643456771246422293805935646597619370179755149411455552754591597180615207304026941404382632717866790205095205261408625902600236965906870556200052583391282080308614185482412989646962239040560802419034817672032875663025704545456908427077622941722493266693078432734780687192983201116734971918897135025332745607644961369420767730185448599647056055094912698272136933267767976730068980595234522789792973115484563810081178564048105700802108451351734414588577790167744760664106883618891300616392523179073052380320862526577006762471520069110356481964546808342884316801098350347291119296837796629488825827070531990653086242264876573286372875939002409054269962263256506384766654432834201915820494495043608599055903186413296328992640455762224519675185982109642264087950719820891023751448332923063334477031620092011219664594114277738553846889983115081186850672992612605479260609632547126481165928722069995842695199888950588518240381792502620344608634725172199310033189796108630375814126051628684015233457209211739346939817782620850399161756555095041797166547072558688181350551261887840729365450112761532534533558409684605623506769636014774729722452422555677087513002787710339255720666664535705630050355460758968233515037431895008819140206633655103832145967634769542882349761269094962621809630269338067481773816193353515400653573552279073196358360143226265631400288121246700739223917751391159400118791733686596205520847011749224630251113702749267008835362376512500241746188333674819344234761875290840171945056100308831473852918867835511423163887991233680151491913984087875608364914407866783839910755188532392211880732217130870252653862492464802864114609053263449212100577597913014452596915790883316990188487865575185920296056782780894065180698947153647869327802359504979652969654637420716182633269064905165046548902213229349154424680408697472918358103159382097276221267344038964717384019839756533728176277293403339177120850260715233184905204790981344967802208906952393619930012635077438695014651338316103835178751583007548858495396989119635849838005371636278791060059585318820394837053925944336227359599796939826596019817385728996241858470110405855089321489853198370738630637138308003823335984485831931264391931995711461940163658314784449737133078633100175419904554417432761975935095444585570990344853992713718517256440605458196200623843573731615339644921450418252708938554439851963808361861292050579136989612422807075895667423123292957379370360488781206519875547120640738692508286006134266719921706808217959685574170122950593654681884866385949606500994255027874875596836916733031355617765066551954668561382037301400005167192842802347475458746996523761287542773646292384083773299419724947620116134361188247793621340455861879139773225542888783325906123382087996714566230114481813193078641703034856016288571665106312226680255585303356455945407146492967759617748079648531181319042223028107143444524992944028788107750765133667186493289438470378251553065243311888306349525208535674589704974939002778421601364764481102202863839263470766013616099814889301976268437263922799463410664994469835621687252645175902111880682123341233461849054415502426959408170753806759747001928328835374261066718221305163521290971417135947305424505281798296999523925565204889918090389258963837048447313766199507056202536799719668372120593878034512970888593271135595272233897952248095934584298165976061212590935928670083934191615091378961166561078585399695359483674447632272213515794286484608325610931231053817385270549123038933808725425129731989102140822608067958630734563260055669001271369669111201113629598669966188481835533994131536596142030448118952916781526101211939957852900131326811641639352180115070056275713333683397919884900005401763504066515176397287008540352208640189850479239997206981975506255726416953826858838780905847723785826173742328192346241010399398922087205458661599082028682101566748918763664265068137916261004202529629832068323678273471411653579620755486554207273458973505783675407923277044377313596001003131322764409623544899569893986335155587357353644984010217008657433009629473305736047134100761040942740095363233436686802486108838239140069036275178947826792724371002405113457977336404650155860765980445520615655924555422178670792285243337264321136954554166687097187993350401000987079639324712088372744634383366333585607500837940904665981387976470312277351099260722622983989309459273100771577830069625487703221056459627546865879019943163125790137369424198144980003863486688903139139121484026373706533339992159805813976805849187762283299123112619909858809060854722752569374675228301553538999194770854387996396951749960655056857687203466139069393389911238984504292417655638924671639861638106466149629329675790169666100964207308148000116284375292299636812124283142032777166184249668230293683048529561153973414064041825293793654973272259104194669978784432540973374660793887890458875811133947833937597627086448356960888058879811617249190266587883476383910976750310186981183737975058325635244816162841294522377557170816406795623766584577687001068776969437054446801875024547988865330051754968151458635060255106981368292457571754813267397207450473401664584761512142747594075110725805750707001394139320522921853187630175903065043876184083870868866846704337078883746268100024705705784201494573064464449576566400033755445487044111158433070228027965634849699636063085815094752245858183785146462446304459330592557609180050762082193289750083995121561709736435474632574519403243129944518051764767788704503170772630129110762435567762219726898688893916418068274435868886195776866283445136195398979003188243649768678773832969903529373408307003228462466759783606883488311557045179442944721877021287111663271238980558700611638812193663513231878557929275885644029062956870262486496824289528279117760487107108547513220805176601383780398934992998901042159973329962545595090895340993059143372589551329021745705468142990648659439437254501261445258876482680935013772520164763577306131700856169257150705937151146627939937062399947021048050467243448153209594748533454999114865439776102256978687532336644386436285798525154122230672971430382453956871506256233960620645458588253339168835425000643117021307445708641669881698588590850837174009186946787731185684955539854405542828912817636647857180028617321275131258117556645274099207106850378410362545360649666627606044119057300663011551328300826815711957411323301372168468401029749161436364306655116211396972132235601289711630316954130244141260758705846108610026343621306763097909183320222012259059393765744935636056066193760059675583145067030311500378747357465529553399226459877074459554419238003976856704368143977987652195223661163207085242797035833346214883206353534572781885001923149531471061894072091840559528378761863308786943146606513119694651683042997643238873932903175408375053759363507850213627779611919343810675500629849719703536473608090071316715837925821960469101759542258477033438399370131651386805708015862631196841238898721961220549038050441714397505600420715306860608569917399671103371574968870477244255120269135396128102085208885775451198497505553533404125274735752005577167001965319722836574723920399240352234576035757480828158318096434424457435287266202695174632105151115720210076042614544247260160650829795566356646317370070957348607454414104842224764091806419910529051514232516959327459579189103078343755000449285587972503877142877922508837950224200926473211012215325385419327078340473906391349991971907573385076127475025004928752577210872271209262882783765592247771881617840161531554263304542996252990155221526743767957560506592248736301717580488573014152256816507303633960850118146813159001627017920896638648063233014715145658370981658876227106671652551241061970526218324883912709524661424425210734398369242696940786705251866737970423738764981831696065079252788754291463022660262526470656552211921459288415707603270605497417875009723364959043421934743853107030165041659324097625478956571645097870882585245249522792358283813739201664113794290231798344181405136258809805627420040499447756704167064913398759565811692490943506650060556639786587846451229489517805859230883906013234538339800170328622028696144900031218801480438852428896084540425507050882498261632202330868411313262775249342258373853825395453608898972998940563629011199137654727242165754507699374833964024135104243843736104338755092713948599770755981462092578296113854045971001945476789892541487351669569869720563332024961361848951284796102167930061961523324303624467420487215380316739554016729031965470128219736087407068417796782069331893604859446865760839267878307858778151670493176915816741450790103820110122593477436156121108561091533922613061234111513519161620616609603571233958343910417769064603913360987160704019184772781118082211853228633391966631625047923181011465427097997484904508832788088222908602069390740436160243974791873632393044693256198543883122788464665392536292377998128469583755374034755502624652969886509712553613916736906040881540165000667386346687411614867514789807596744367106355736237617259969507849305030342257470990985518972062762815844997755130749572426974673696937257575659494960526204857405839092835311778291186142292463107363280806650277675798462244020003624311901271239446596364897954060946705437768977782763096305812901866590040164204685419673198341871346362374893454622680679118639267533152678323169120512177109185251135857753767965849134952861114469511610146434531890314359272656817748035395824402223676759632309944224924908589837010238317228076037125534551445635510692639470171322448032707888618767165258880006811044574103663281326118346475674721808052367217694457279448861258540618303138557598534715770901546612043969585427354564297287349764705964718586567162403754658321231581072102153992672715211531401329071648953031199021801794501875342408180728721571301113871968509984631335973200102857511232522978873979795312199140524838878795200220888476066392340348498241618569670972307368773319570182220172349364819750597279438591142765761891127544212582018481892437335242991933227310088841387903465368076486736771538498958003540581434405268559777038789745592786062454824036323185992018638118738089541882343911595225866779568950774686281277972763136836435180929748859742788827902190224792356082809597135509719016924702964055767809402298448544410363217255904974586795836039490223245016527073029444011440539668903673339506113603120727264787027111701530176695695985422211952739496371217144849868553684741402379566899109137953232984405669810824174346495040403718187301244333847223109864625300555062332018579428636285155846881015938812928026411222358075539860344603330095221464827422575213087957631875843273868029959777359467419210410680391924422564878046713376856236704672750329675598923692940873401166673920976491435229479569411425194319869329102965177169186754594934775588048750846881139760984864209436813950995273316432467691560953469919979552658732209189776027705962066234724141808785254969979637850546963277356728891487852145216754978479690885503657434670878933954615512627416787209082996268561236482235470736583390008206658322859423227071629504770261921947797285500418530243899815702256464957249813586583753004138683360011504063338563898534573484194927897217470684155923344232126750520017369017117962836956198766750776795275882429126447455631571271397588434411502328622266269844463898234079353521611085500986051532422389169116492608794388809856409891520981586687426607003056915558477744310253687902416144528473812371625338363240217322803421459120837715110862306108093970433501020651336423660562966309599754308011366767526177126176517629348665394611888055322186944010112502151393376774950257495198991178043720334657577138764202009230999540349785633049055683431031654034447047657927093711960522738941995065636611586807014144125945429020888573577679077831155665500085626474805299701217391440886971323634140969766530724086855888107284358357633980796617297625574710482998478986172207811000828878493486886661417873937871583222770268642367255809267748619002824181839147633857051055569353652418623488707901392867169769700270658077320229178312272399389578057908305196479622949490561006236915543560653057860146292191956057146121367041218310816512576908023424008967911453011540396504078032809961703102173162348250927254094229238289702214060052974576563934008410234784633624695782477288927652138683060835881768745215928518909016288415552440102351566103636158104897849669068221779494097415106661422288680436767826338030780060011176815022093021813061161785258769031136138962259536830864536782616644635872108817003618430887955891366261395410539353065757535450515424858935568456600661175024766992521554818656351656160987459233208441004038338393487158512067465825240241706412852084923732551614194677676376098188569952043090215766850834864965605526423372904143908472636644144121909861610932100096151489540028015052174865243700775295241764087373227212250322231146976756297742915348163551344689492550668312057171062138310645227487158604347266412300034423884962029169541466375126105762115521039267993799114244568569132650717520077655282563549078094573892044613519288395581649594041905602361132214031350241624625752362426281457481055292988058132741547161672248382484122077882804099914467253440719532400230775554672049539716289850071548314982513314037874589752289822584480718098244500315585834974895546018096290239160277414892869775890804105580880503848846759385491798446219484436278717627687949191998524755705824223354659926267771039496091535918122605033872114523680747893218507579552486943751085173594614182778459752261185408140360622463853537987101523836410037642818842357042376173196881199351639837665472079253883984823681782697007260556997211870215290346756875364155071560588488522659195765730097524117145411406774972818745518955008511555563897065285935134894267492481420992721212911454407115773360675983444301465713086135611447471473406801076581719834465150634524414607003036629665034854590755983272971894110175073043224810449340909308442897149518386870797801104447573223138543910693638666214578605837845507313563121185582970498080836989981962022368068112138813115250168090381724025650281238939532061867908140919180269495681471571868917014508407770729614037493347685425437491022572396584582152426724223756531363864181225317960623899950416331925713408159634364721315411696870332758456233878287773997299004865384891626464802501662862854684543096462555597763514418183636576830688105049526970865199156537279900018846895563068948091459784328347589757358548073265528163811993459080725496096223340053418547170894650319647697370487735730697969342035808556844933958978495335722262216515705466113263617539552897785178873781034423091064202358224344053192454491581296639855437960387599716720365278664966533820873823242839122813468743673856045089224547220679236512168852254611384386534144562844367769777024136595974917389945660088239762836689063869277079721942169425169027168446963661111793599184311266483246307121728196093841039721800516126988455115055198861383212276563749155566417333644854231568496646938742559558748010157678987852259088064636476646408526866570318976835782278739663562738311397898154639969971270734047698186466619269184972020898192146285695371870106346655145698941714290281220918288997815104507131177990295874949163543891402416571683474954667771453248430433077232783424559113150193481014524475446645699134803054796700368510327358571832984363541833613716597010142568901940269575073352940214342958487146182193703831427673723031033306983230299119161228743556496052755605814502608428579051398751336095230330250185381734567725476817907500976796204991068555021753722845352172855742294139716604388319024098397814438239383695070269257432313952706335049599450568823742140854952898959767914902939220885612307941127015882429551581880385957566942158051953317383913636795993727480389509037911918207569159943363279523973492819511603540229244194975141070543156177354322720684925843382218327087762769467456768534780525570227736758976537100496034658319948041591116160680027753268182621824646652728037893107630256907338546921588422329949256448783823480681741899043703844717227269922796152555554512380356159409980399282090266859688941085802047362957022092169882215977363593246699877862447451750962723413027805417538227980221757124750280450352764448181135135695220520093788265518861225645673207942943605476828212995951209466912241755002994557348943687343145750285723231423363491556129831884568445421367543760567936341415255208463297711210184213626855684131503335805110662669448464050718209251255928784818163652495203234644370829873873468819085834839913585024372044024770743964393321734925710570590091633262991994051600317374712870687726344247333810567977804300492676504952407120809689152416666245906200090344096806612118264829336473089009070403485115988746641201541252939425915489608437505011982886840511251579265366932114992454916698133841751921930058440789856707532558266698549894191144685320276830084827720675227882617495343240190202441685178056682369793640106548775661972486811371740509823156935494322983554830215784113293935286778587709410437240954902403010160209009344411101462767302802782150928740587099291212506441901736062660844264954071647476204902992637699751684105944817049008315602534748311980056851908990803143660463937731236091458720574949116432294680067202716001483669993791456768453864365969791081684693912349814240934502401678787718615072303414862731406602601201236160124543029998023160525255742850773513376328476383874860717425370634922110149681640673136594963463753205126803699092880728077176382036036593563605670291550722368027343378969794709784947905649592861675734184467026436574273603501953392366496376667464421427963984289377299940517689593994028629506743516990503280867424965743239958183105463215348844613780682892325692767450750461644283055131230702735551528171466706309292849675751829653081545169977596288399928644305481993612698619789071138070999988925136065801117161887956913583837449235167122361480308125026565495444333101150550817311063833220052070975281662824366554657313698264364092428693566801513012793688478430845592182753158884828586590292493250328537757480730018298164713188082743933552551600866678552054418374339482439081255918049756036996696294641951376254285377728114992009189456782241517188377621831732376052772538422842276160317223148853965160499862598247441023495078611347769405594085719850581923953070914440274382917154203848330695173796170941664723697547529339307041394323230682819876116602251459729311099297735129041752172371196183581037871635415422001642092551954418286879060707864307222094057795760826789830344853109886644670307105550480017352057568816462415412678157674705694461509795657579310775381648042961678776332477506954241492646735162641585387432155426711044556662111451226192182528890289821143225364516671513268054784260840070341186507593651171248704385359000173556396619118022436129598374615926453279031567640343891613414326549340094138143207612736890190794574884562385071530832624630317789993207467303615052327274486852102983126199318393006926828054419099950009994760306145856158367701735252758962016841032989389580142557939526379783398384381681580737629564420980933380710535994336648466288320335963063847121759537009286553376283511388135026718046664883349250683473696610734572230999293839525278912865529592669683582674230963196006203486940894023839996299114707187236654458571558768279179389435829414721211587964435738830029785549470610577383872170210177652011971864643702139505148391455572022226514507283464491610883486459968827894719618131832404686935197224388027249180265201055172233055531344558507868696909272959023769586393330173359547126340314763408727219615664495523747553883203185717284101157538309401168754017617138772297171007990144246929618937075150477451803778920422522006020082615529691695339767132761926599444365240602612958376567122427811820755358208140467894160359305129483976025090999207924418517364837718183688048452251262066568962935697605591818810778196364562997224747166342807213751173445763125052415531100427323386725858020458081844189770887132585055048617952980828185999544965274306448493023066180388230894621739065689132655968353510178747668622941723922316393519869761353827487082550876575195902544317090626146881846473731390419410328925348535682459054679478561008852294525800514623757201604333187987235062595122024608862962484171853089991194783777998630780606823756128273663411334057388325075674323255972063506310173712370656453690466734469634786380863338029492099716813062841365310041047097775916939230011524150001835027574512564005059673380857392595439715847686220151585865690983472802493644116137160843849800522275312554578475729846997203987705531027147704694207918619442897597749286016631219724658314302246552538622150013101596107683654361957791315935251343400986744281420039329352928981522600782027575361386365621118794027103203194061800513153897817736805511485113814656498583471829747763064401130058370776754771644966100206184143224053016133814979616957266214383133369863775495164896343948250101571189849739216063134677807018043022680365651141237672110206311854129087576764769904836299468599036645277419328769333518407309791717405401630385884728673627059046214569938076041272459930542906098280621989168720701482914804798588639291611348367446084293226780267638960413145265434063389386678958608265774112047998948733247882846419086862764218455055565027386062462757440450481760863395581079594205187816480070312966388316337935316006398051079432416889193144053608407897747367472288507084425975980887651259265995065588357058873309966986810362645427589313962024985388163476998062193189592319429310779229767948426978344423865498190487911118958800353493922549790492715381104017244111457076617861182752479404960563594032085026428903199596279748381604634879240409376059562891073846189442538984346220130543671229357364663138956153526300630900440006344551844826614816654497702774161545057972873677804432182763603127073311145748656855746199519365492595046984098035660019309211643520909191511496034159265450445570813203743352868531051466045790970557796578188116516682222161906326805731633316994373678563289215271071096238555781158244256699585206109143836202353674854659982789603955607971025628116985576565957643321140847519921889410947681693995663752393372160859824677751418169131170318797128020568686980916313509304968033780469949301330167094592858666102082216314516552087120979329510653685683244040355249991585880669166098223816208494729918217526832356677104225384054481085432322158153725372940095056493059793848367530783503893436537301242097354255329323270283353016481106475809676245025519238124292869714648256852423663580625212080594469398531775978898282888056633733787116157666598079425792229780485730499915820371855093362165372857639274441939328579708228681072780318093201520451159052600148257323873602124877648825769447065433398997105643458958724169111796354604634028557123564620171535362748667630002157504510287666405474921878011157590007884010296504287316454451442071908145226785323352167430802790550948680158295400490313193964516957322838146807029401201275431426914073644849683316085346138994175861584923841917244952107818210591911761440708122948538663643561656046812794845339794080631504906985134186427875328013473028479601998682214655535637253353092288720627885627772083738467018620485363722888281170037571943452133195479499265958547261800049038879450212750674031692778963285301553329511462649573736395274941899239520419626960813000078109204002674098176882042806106092026386689936476747361796081024021280112958934752120035478798186067797267192023862524146804205694715349849265377095891697148882339432507894224014807128082348539496417218490689689367619035357725722234162268307803390034655395493268073883809074995084497064277321166676015568892400450573024897110467332403572511108727562308790467017970585997614667990005951002383156269573062357308230578905511875177314419925506083429007046990640631827824644050014829090045764867230445023871682265260784664136646076621539518363549415962309109766466010460599544793360591272909628751255086167836664185000545050326639779946265579968312409775084442768788198807801822002032484287840417428644321067743444772496604564293054009797122583873188397410759099752410020743965317962232420351977888077082544410665005544554678285365045810391779713623806609986924441005505387800276166487232570708529082033280170442773526470661640960042161929179919577880272200881198182914742628344920702609845756398757148716674457872552315100056226603468267859339968528076022955799967777726931360456057464219814430206399079530726889421653975857407869608845093957637785276324987421135598840165789591570266815859861239761841146186059920026263211726044327547353678771033346657095142031713090606430557951734642323094909734781257710031052162052145965748449794737385531076732572490238739042174443327774777687147043862113092519004854920982808851631468659987100359219523192321179008795934990922160478644183129095632409330290669298110708877327702929641692867822786032174629873811055058317093027460461712622459453127480329519509353324028759508611967615431307981695908922155605365193380756582131267637302656577670803736240104503494134898670718933228040039286465299839304313245322795228039563304111653784765953961383202797836862337897700926020485047889101221567373204018565175471783107768966296572630921142584460682154361093130108207856383382619948770326253895875572287789536091379456857607014814321882806011803829453535870096281276978393237551707063495522568700230688530870947132091314533432503769529366873594278056006589566853892718693151025949882066489409513930230405885886494074016987878578465554964261121143008981956049475659091815670591258169075986414917211711375195160685188078167573691774514532061288884520928518206108682417512527537444400485471170237894177748253391216812913964543458406928450297927831988237501519515918363022315877266384374717055999121281244716035357249925148337406258194109026570024006788264045135044697406997998964234541691135500297591201203828873879030363838049401720376758310833194122344096704825520794254426711658395902974605156617712730367680781894934775407472043750563414205228420205191882921145875168312063718110311652757622473463924146638859261781553934144589905565159305591276592707112060774007578450740586838787964457895318531201446340771496913164522937816185764425591472583709115587035202910403979655667791212429793378153187620245076512991330679626058924563207405789462074367044042574456777641727284923710621097099841761604269336645691487398142535050962567357546519485237378257614029269280509094499134789530940094560954250927960308910531426470738662285288213984132134649248132914298463851280785332180495422283379698095830993176318380669236937573047290091614064545775867424439015078419638743447968579059202987444948624348026985141853961805601969975744825333905483049865358224189328506890087286198542844679526169396049255522698292543269575367462932278179373161224607437874266132038333722247492164875830420600285239957671077278159696670597216121191970472298473962947395106302958263086318941894266567356282884913121902970150976770908665019265075458204042714503327251365647203175877440720034376935662655429855357591436247741367691531176759847528317965386530594253262874000545361714114058240303910000379210065137159768367350344783067581260417673879604453945602191964125338737538727742263975582013796241131182731103480922745544546039843157524331603303543859158170432706694276697447517095804063142255137601372472339420993706935470520665869458840362330453466436855937951452368503497517815241610915328159643236909475986012579516696808087882083918093496308185291152189519327423416324943341409040761343999532364576081192847958044143282038084168821225015757766340342229135274870668261113330225983411865127397736250105948345829373055939620029964430841828173331641953510216087502630888237817821947439597138729709378070176902573327206794925432061966830382102008032867914676471360217536479156183648935663384278290142330981349140356557475454870713403155958813655157919844891697473788232722336941558683471869679591121395736454049439295031492240666160022474393847944136322922010301589348735932868348614392893727928566109585766016583974626494990736964584213116291014578892676697520630496756578204125305264082723223397741632886339145656903076793641012815379750327085300555186129887662325796206154662388812415396451058835099919616157729567702800671374525072275865363425715953572987404930092164342626224858745096500709328565689786052195756363834965567103631644317601268960671596399230770403518738908050453992942700313085788559021418796897290823261043085746176385310042276768376234443803282469441174107391452475517366656452760932910834204655645738873618373888647803287878010542704186493204552904351646496123847965513760047955622068506989271374762297609933481745064543702887476075781758753834040734854102021112683200577191056202371606021650823193399121119371591173088833971408362098356009418952169190078097002185167971707257532429655013787932884784493209154865498856078947223355959772381554552181923808180747545816251369207537383187124428027835179697388964047583659029476665541142904451522552879633793912511543856366484612615519889712760411109072352971432217367483076415645098733887262897696896809050014172369811135893223100455842442121529305978376681707530626198689390430710914341491739972867407566109684441924221660415481766837716256838399234380835460202588338348747347407577067662298397638164784777849205280590266055598303389156625599250882251044282230315003491006600684868195854359423365585740480131006212435891216916465615708234393334114641452697710682689210057894354916995235811508829094170109250184824805067113887271557801033035140411537122068008490478102567025356118492032233247686678685089259064207986930451904013362912661470525954427467165384245998128850056944936420214196589411775429078026430374820210189043222039415963410376785933704160112663785936874441455503268323580254631368726423451643370093880660066055637483187534656033506385273203707084498750616861228696576842675848312205808936124557359737399392783347885188573161115974921768070617962708260635886203675395190523556858878889290564844251556249163912062425381966772702292988144126900331160626425102928082465758426670665171241493669184862453519591118962118691677120425802259195819620579973009820381305859214310005364252673622203812254549623655939247478283376134482791449568124844238845624605329987304245561053755921796739757179882240010134742138374321922283648342839102695317580217818725710016439136197992816071371864767874722766518834682512467231761076525382507099803555640887006020623003065414958857201930400722935881834643479936999649295532977577742344300326858705966048359487699433916538264188901337757238688953638001127240755277602914484372572810720187913629880215908183646082092205885892669875098162589586908091854910145193157263699710370463123378759346664800493110806060623256372418025364385031727969817752103228270423129692571173495820595530759770119829676755138243044329116084745451495279411564939723760802774766519224711280856245645610735257718066629857611543424377184784583232862721043837508533792734405670639475314966306946410563343003645737993178836911828590180722240006270229394012620491250000942891121529722819585251463988927207194653524569905318523449895162776751577594381267723044520339308397956447371998313671142971904687402464336782264505892081931609631749192545695006129694353129298717589101321865082535478183040653872531989067154125588652975472046670077468752500882491355235006854324455406720136306024070488207715969868321788128625734091724639608762457448473232297842308467776561316099185111193208410886230352095420411917690645485181797403605446853838921351135820607058593252707091543610544021391871370539945605928293967024051345125626835805644984225157753940633260660650014812412657079517125102893804194782530140000000393442568777156961943670079479707171823416160392214753114697928922545106416031601305943028415820773775137680929168290889950787791493163474786287642329681588118270303556526953844962078846263876844331244542664541348703871310934702094864107747835656407250333216669075959759764707364372585749713628061499408316359140741655728772347729503137171849104649889073597981571025488776742050230891756775985707553577907308483514448626469334708416546295084591505140902261373312063863469830622431635018861638316744607252127072224613062596327432690184210125922392462250331396347332782293316779400158470229346410315766301333336037171983599422031027005269731692796286129680675089383188373458215478953153997403214639774892873195280541197124014199984709073370429151868982048606755864041946098740145774099490885475796920255323191751252166500178426345710259600494726911532500980079992358112114208115404722954562300970000706879545704395929318496484276154467997346355432735016412834050577574612077296639439361072944557622186519341055686208874607668045132061141785555949667573671922315023495913396394629802638649140232198502414032123926159512631322538041288195550867214954248020437130428844282541174227478420120396014124544244823533937429052514821220092879259377876495419804648452046215025200499866086245330671706877119144681540516785267389613403037020247844002005310942776005054054158373466728342331913574723627996697617697203052847371411803802720673762638154044605722987390775758146596730103002861274258646262685524971813722007260123695730587903808068889246708546908921056218591220885045706998153656082338311327040825041660307418146682534636570841253434304607518153500916576558368961756407823256289000043836452796037893931815337708343957445223828577339560733346585402283407463553656597887579639578644482074792415511505454494522177696695057175021971073804720252652090258239535766190061020683910955732438142258192780035953002697782854489378757037704461307441344518194743099979093368520997517373178071222770228535327541984860154299725682569601357366952779501769200455514626944780201497012861889293390372971342346265699519428263334435811713096990533847572325997322812453540383624722876792803445554158629449638458729886444042445163909882154205857589800521395167657833964539448703206996611662195106396484590542204845556454432202871318613905585951143619107643145357227957432049860672937316599536438378960395731993867673771607948693044060246325508686641009596506871067856114967146840960079834764035089561576319779265956621520358729327418125911594192981420780113281778453126520846301705755735776823710385205327527448041123390240113687069615048192070558193321056932072684052136423571579477347573844637531034425710413626453343722631958085375964427766114563292714677879628133288952992015346596235459310035827923608231687104974482766599201912206264184676778053626066943519218517467133802847978264911356139809478389393209858325057318917124262226255205011657427532942555703202367562593621605092767462622107921867632385113737141802125744668949381386642302456764869684339235902594003514319479612697769144934062564566525716052002770665027887370587805661691036399101171039853634885593572705361508854785604258034134333639303072316478064540653114130695002487730170573752564573248535867673019558210926102055352389887648710825444372789510484512747111143494133238899646783033327589701084233503710427676665850066907037424478096259897970952748183821905861544762888429992855028795371255332201525530050416379096564060816383171061855735155142132152777204815650736147818895511440118793765864074496392586836719691582423290610339238229504650473913434776781911251741589776599573130524375240877525911600443464495982897372439586352055030140569784088847022236715572784944187385699285407250459706841565735697348830034430640691062604991005169215160825245431790378645053111505224339123005218564071735245496350677672864657853386631613090028792700142635207383908627624272108424285376111227105205273767343571405429929598713392010223483739676585314311639404800802964883601989273561405578670824401559717200823056201089997636195707477010164905377408454904817416162740174086771384136398176416398783963503764973014978292007524308723416480439663214256533566320074423813815337944665212395408910785372119034181233818647966508587531703914584435036034135690568652906278674739816832204848886211196426073359604251176703088724600992601057827341203614369173756942680995385807000436492438808994246056378144335120188592868322341548116301796217011283491442351903780433403281055143327179344541972192234556978904845460901762234338209702811609480873522873841292284581026961887083747368755468263811964886513164788292210602885339997767445886439432383526197708355985252300887747949854385926696543232438680643263261256630874759972231313523591412085490045455726970265973451783702704532975070628042180080552434918494481254710516813873101743841151321348178721533312966668313935607285380676915803170579790428672900652313755288073229764247493545153059816049226466618561886535726798483395242456864354651992645880441682845749728891870677330916257061928900638011935840796440412884619966341211164448549017511348726106532615105772878294314634808103242592307099403570277378206070353101035972009544674825423902091860164827833852609067575580196397998755987392498256287197340333113588714429460297189786114306494769992969565029533217110874471934750813168880465639773712559413211728378873210900691368993921825655588439940312003615233730721981738963379351776118852816315349189878458326974482939826902150453936849877791213260038240717449612396641800971167673126403594668433127378136978052447910311166019868117656090728258358542224471336531016169085291478624067401532494590818783513678384279563099615292429443464540259762544804214121036699427836407086070323761284346306679376918737195390642178130565780646691649071801146395414657228862655114304888005841931679104754014743327255877177170747487723181110446891575903473870040062778797814797924736623715058568679395581547821379966040469089769477255019189227206017799754250084804606443573490757808869903437375568294809180078775186062724148571243947341418049862499397412966883551597405517760550765603067670738788950885985672383057692852006034641542944667843511093818254908660428725897334082813915949798752425175365216254466354704989811407399299986107445736546638378590364962711391095643419513996767745389575784504600586057379586681305640482137495250700743491539207745441598520812488890671986164178510829473751474804945752621417189524453199660498171034298878778978100497746422631576849219997566984396212004420206844372806937250281094131636857002966507265066758909104942115509312991199240570803254483034994157445324762419075364523433235462888538346136415320143274305755633838217651694427734336130520408967582950518181518735393616017690857501860203912126506480137322665159110551720665409214435111814076106337785191906999813590244520748660490975448079910035475308575352195304117813306269466206042537078234985672586123849553925331530713816473689116665843911458598976864138861727771253883681178342906437791532790577669617389143406255751430321608425551812831698470865645171436639992376535559190842468557914891302740217638634194162516612639211653954651616753569164620484937507843759397039134598096834024250568755082714656133936323371369504693926834518918483384108870094333321781639483233862513183361585759887849613433898961744730335684140952552760775628420030334260026329252670168705137851201462856599907682561535154008179081192394475170613012537035530902521376013904594171940565748697088488129490871090288492456528000381870726091263227405078664545788625603676817227252757139806109854206548568669176802184298614266646947868471869071492503343802336450583205785077124190747683415188484607495737306464551573524678481606249351204752732190964239507055906446857602032571367624659031888716231636073008654477710485005359168667420346030894340842217194060954966351072943954904561981271757824052672754076802694788721771302066045516397805979545142406689692206167527596079441303079560835373336930559282094123020127565503395658784387853998873258995450887196434094794377358103652623253264112140597290742746623052657548211141312196437425929044279291323091551937208130683948976828746883428469593482375966617467352238987383938011465392764104353268240338586104164414438898196955039657412801118441924660001080257002000078695792941377746914861707613135818028363296205533959989495243869735031762422845730062515908669148039404277646978281127175799138163382361364420652536402368605714004281574396618628943210216897560344958092750717971963390317723494981190116571995442444927670488751997545817031812877833145772258496214514613927878301805966683732718917495312076356442999474107820774895105285403589170103776528689008034777744988400329820155845600625394140792891592879043256559522810177377320034652687499830895008075237047803697367255771525835467703318000112087741934662405561449793813443148094425985091723297888646789282600968322990212541739998941121111336125629181111181622518911103657881204968500204511477259946365295622048031480971444250182112338920532742185435199455228716832577635935117520582247166033747306859777978684366050750044527075449283361068454200132850844283612521304000129831015145228230895428398606430285163433053166352964137109040665945192411425819460080632923859569427696674850589896174702995999185225287712343412253407199021976487325011793949296806473742451667503673187497409529914589931101684912588277915858624725618087902380310272019112999346258594149900236103482050754303391562282929421804061425901828420370557945624911064160279432900155053281545989103730391335472765968427829155121507206600200216587876594328171451846356682484846456854333018199220412164099050470888938184791536198605876413482418710446330430175434042719747720708688754336049874061954561377015106929234428524448564063944816336474670065194214157750339692910708378319210299003175551411487314256416417047553723684628284207032104114369065292675672696959091481401048038023421724728345806946859935214336364855653526274557339644340324939049102089723578624142131546284215762486402269905511116841109573436023111202026623947552433690030893686511342776734709474067500892087526966950201666923466143199068745852915060258242843154075331039625586848726915169598620043812979006945234991904410763927799418852738980810754319310469557391042989436822005388664965850625015580639994633689998919174113543510889880885366235586948088150135412497315332365630692722600803111790222239549660655942790472735011701945826865081737042240376097269886731339939215480708972158703770859461664435390837056286244367582654029935674048283575644429094144510776753891218467347120919205562745172862085132986295632392612680551410297744047438383515478584043899597029268878854846579677246143277039397623240494069892171990472717320475000137984522414373337673788520410252397964269150135234640696774574027013260256701708327833772368587166552151871938170123540660790483554143050387911766968180022564975826010902589646418851810369538949808472484776805665202271268309671014483292788555528773857617400791673931090063242943336547242938216156762446562546533566820496972085064963443798206473189395679599884548034779501832813122024891769218322193889093628547934897245595229425002691762806531086776083002626567299660573555882448694330532930250333842796127155293383118713934009855547264602918569647847562686975956785726815811704079488102040112992947918675974455490526017287353117050483037864328029475463430044000505173497646875333758874664874544596835123558816656499540358107158644856272757916205980340483595955035123296689210596239583913582890020980171628520642405406935183591612086762242274750748529928128806962753292918191071786793939485595496314234157001941295502018573414598021544461593188322096784027361374978320980948011387439378278903713924291002203774103482865725543642113616124800115670233276317860703359308833191860662022442318756667283616893503957181826534305806504822018529401746621907099856443747116588639688437843861173658590113117521708143083198728528371129676025957063933291501348863767023914920129521351505976554983156764413763117037756422396688961661033908930238872754831853472004655059721708502293166511300197821503815600135886361375770373573803068921755591621327335180867917843552332105047702068010401641758969460457902172864331155149586226758044031663170903353338491989060688730211048039666002487035615500223477939350490153866764653034347097058825039253358212089697064631622119383019109228752672678512650593312544671446559431012821011123521908947883798096043846033328910852910315480943783282428143100079861528210085437759962427781797664246323136459782623568049825684511119729348952136847192083877478245317393309994245324156482077953229358127127908202251811300371819683312733394841734248150433520500096421952569568985110966823820175753544273287187312834757149989782581430717490037201382328389621674570654810194725241415589359112843656046368354370264987066073457937716069043431534824763363842435433115671030731314654373243744790655288834083223779238051269472614020150168780022417801980932272487360502351134691125539090787220433298739708718176039716635411995788198875877694871220227302868382355798863620744302051711958319016758679488493153377791836311145820574213564743622439443763704796906822376376415450291997380877836894506759353949251551986918329294360606930595262379183300920069596484786637904377680280868191394546808173014934639423190185970611032316286392167920707603852795875916529794926136976990524904005979281305927831689328273793124560703711722875703101022052898549998187848820553388835316780270263763207555207207942859214574281249650385077472276500292784610131448530545542454898584721284422807888116152582876697206929439550142462187578695485295876666290427689699983914832410557287159086123506330558832669249411355958029659958933033443479605208217888871412016552384550347351641430026891338787200884146170690720613275823600055043507519780523594454528080075425855976560123383211694411538560578777535414952536538262330489948250766429076265778930608842290350684547690735009662338233574863237803382350155186948407286946783654801823765956251227435705236632910194360262341602718516876364883421762726229250374328569537766347115709415967206238749972164527734788614943316236040363806582845573941990644755003941761689958531045405317516908280330061522110872183643515725728827252104966794411952469475022002513191316757915900539540374339478651286927521868007542910243117857934022447613036468318244912007338213680928522331195263633312899103003022322164858811558659164192795694544544556624021047382078639053792534272972530198119933037922065241169270730115682090588426476373287794057659722909882179237248107149030075323290839151888687969762988844433477302492791631806747960024983088938043680331435368753473555977152379474409341294687047255883536864629521669840881421956771433937358090703790283252328745221570611522536953415744302420154507645176097124501507758790775088507484968496680987101137536775230419351151288939282064781814400785025503406871163540035406538776059748969257938527978598635413363440177973591596306475053248946460718082104133405712104982651116674298433664836263365036011948093168823199688850398193229117726482967841807342166712292860257927842471031037250246754481749531546107456910492763736838388991623100144946708093711485770844685290343163486829713371343361089672822761391923048178559000860104017808908983467713177156715967484612778100622092635661849275864095396238946793186980247348415044534488915971111657916519680065733895831309715736927430438022279478277144369707624483941001828851213692352310032381006811486916663755758536395326348977737298983923874323625672509488856742769209098769015274900560605478912367118076264341837263073887822025278588459199042165753434652280120882242214820323996735221877863903781298003332177467750913391527004657685011075548360770213830948688496078928097065398747731459221839173703451008707245353858645093079634370723819293271583906418618519146512877506827419130503154732259567535902463322535032788546803344058649947432263779331648073995868471348875080841526517001774510544971079302258850505662891659985574393355914716475706780665240593558684412222948269624363138687729882866220822775691277715637977891432461845707617050242950665408750291721927792813254801910707520254449624387031046437779534884685834216485902135205776930505842534177669783337574586502181528845287674111628569454490935301968781983175615792231074554269350183248799014629564007637891707840351922324708838849582866214168241536898530202246027119008686987753986350431780244975779936257443020226835400887936418192044828587555251488776441809651016792332090294672973337227371325868593002702228975872692307172876116640913429891439648767698586740064873094964568632871707145547286527886295135613275311590635431779055578471797147542330678121009956703859033201467874464594314468558402176934322752726624836192303666049581024443513158845696488999780352888517130121660526966288380663672099432216506038167329339839449734863288303210258958346171357143838725014109537002337139488089458528904173029168895408369795551894301071743316236557699424387846438885979286782327044289164148225985202087076810047011130161268345662976800279340142250548560381709204374272783065744093280295565233352756249820649147451847538025172456788956665416909938002500639966050387747796878745812012733491882253984883489954017080258036676298998016334451542257131546121552968374413919592488228369492897372331258685071312954567266999999283041198397174377526642104031579443788142266096632524264188652904181220262762482599350940158407031222736748660719682864803351134324135058918138866703806808726010911632220913185408877751762852431879129239967913023015270895306386227719681717565635090849479994293773859356504760940366280519995363209085946720753503761755766882408817450644460538732796570542942834635806142354732301720283627924358594570728436752387134658878897020104999821978922548250865605119090081679184206173040148671552353789887463104201328213499159715043765202350078888568267764680249540715242860118062883257615089135141215498610437937087674348217659708873278355966560105511960241124172611509533927542815546075540253767435330274671456254195979013138504432627044274239251867112341455744226456451348464301288796362330540618831971073439031664821697896617368924494914400001153118984734698733756806041171229518096656502824529222104386014772940935361948094056498122706720743288717474053032061722521242494499607110132413602128561523931702348057446210093918839860576050660942612361874109161588284967590004216741005507053493113907983055865083015839340320987482584084974028490910523468353979665135815756142538591031760148886281297433500822534941018442292435773170208610841692123440411612363151940876476987289456222890820242143685338720029335343289089532446504903800794785855767159772860681434202854074057885231173757521541339378284788549970717131134915816964788595830155144671905517658060383317184534644732455527842583261150052665383884099706243768968730986110195401242479546872973263158856848387004061869473816081732026023770267403813677775297323670064119907791701419301391468840899013395543279946332469556861528905967662836515781950826112565374294791987613178122499813001319019650504867113946171164976498386478085689573930467394599445871135198476629340504666576722842602759191751699049096197316539510294430917218740174663219381283066193768154255644402431976732449080693420114215603214118450319906386587115116733818460436799711492692899006409378063715326027961920272585292875678142838212136063679608556209008327956026609631433856448281307581028508173872905587843920286065916473755810704731426534581676457895027288348489543564108631172515970246272911161508049422467566973853990855699535390606797466903741605326960497565672861372509011043585264541305821240342012215519309576983096496867420420659665533019524254973588224882161174084056837868531990309157249010573006065589776733432002935569341393956665104656356641086485129382161654649263948585695965818488890133209614778131820003599057392616716815590092383661834045421035159893093673703264748560640341055424445555251617369168640970794617676462923169085446026366933292657357031809425400381362717123034509493648033578579653378479067559924535464149736671918899400399871822940210590660359100709420933213146107978179755704464262270778326549042574880539007778232594209972937998431495746490526863147300025759920691733290826339245089667714913047522134458122420844480786517227205911502747636723702225138226651405897832634924212716757133733216705881688545020878497960449783757453634132676668313857152426366924377212923968337108268051690986448696395256274967246525952318252429802179132566077712630766142076310553146001586253348627667877745813043434762012110871632856504401609530748834669967651848944215051025581761658590130077529131270918417106022776036442324271469620326155286095676128205415572323951846437623818559039424609817994275860837750618146286868945293891852775726728480856911795426892121061102449496738811023456853705016235655518596513532392204440242663675428605650682059851061061679091784001776968955665801694234892498222679641556678806761437849843904154216520334366648847937618104409898204764809488363985055405269622909063483470922719641741973792275427749129838756506747448826057371658543659557726812569003532036657671107240728439485176019197252618895039305165592813813858227637601844437423107685522870233237141625104217382655736593658443159187176249114657132690347405207485188520733358685429798563876549506338114134270193239475028991130303592292285652139851084956096036716187787558531370442321304046566079900477041723039068706877683781184638341352819305850946772409148598475876325906547377870751607297497662702055598306917902200383460829829371258354664320830934563774670945201719049406769315866324106147437375121278882422265267442944934162024214814173980149525602218276536263561994516389580379472362145723283741909010090551637275109502850949086608149474420823675167090847582133754045870271395924110931853901564082992187345404808924818706061711637079551658286296544872480572894303336290522499665394977092897738720175398131361952203583170285178990368697439260258652305601767669242007657762036677684173426783495023585589605396144177127254834824378099935770740444258253128457671595447380530179473018080228494495741967190750613368989956107347280393888823084845829407066293292549006009566232481151630339349903544814374233777276947427481257893284509083228737299689350054360087236394264647840635228008280789079359324591096346381344941946126408368629806110084419303976446619070880458687456485704757726446239348781125149521245891318914507122194239463810268347185110493790838130388121428548648234389227304390431517445093989795487415036552121209485628922263403004084401574664752311566386321348617945761108598092824738625369505648506405405367728411654303254316472713524131920013596889891985030169478668296189600350094307829921517581983926396230997982510267848447038317199077022078266633070618194985622095013003448988255882163681456332522962625829740882483829842411879659826971012193897468818280583049154814749429894880367025804652661477261266554092553521478869314998533731313132515184133261400825049727265864589938402847077496912144586208294499216721834452341083340102776053243479237908759688129829182016963365661636191085108255257065677476252387482155972155448296491833486997966115484676004826072018822384430790275510358248597211139138221806321086343443956334135476062017879539149779024027689822850215327765689414207638727136416568237136088274116909246695086916740159778052568927342968841688871006218907841511731373630062938603196410991988823160101511609314340999886227488484208707580993300293693463867282073766448925455066546105874048707522320210797776610374165766890909959974570615809888275872853267672158362372674912267845214684955801351643188118528127858655981232830166489566527597607090809171339119675362680396832646128139857485599204189710988231502419576322984637290487059561715430064723499100677844314571742934609555960363242971284123817167289284551332733036819068337517793071503927104606123268730106836200265817746230262664167373768133179418914550551185147284708917099850977425428099631976555423653357049552016101300380781669182885431703752075169853340746181588540834748599700032857970075827176492247249568057268347116245411592142222356135635354212347305456446654764591072519092416878057159054710820959774768399477518857426644968654329716085767105423621325450174008933452768801094451841257663630214527140764290433167570424134019118049198026980396662522463924154902647046003665058613712834901664070357837776775330260395262489037457105207581987326189871073633671252503776848066682801260068659303118789492558664696888297216137678549148674530310840796257036129463493995065569634271314229476724779586205159239637880889256946681862805103503517537722298852637915241643088677470964136087503136785777918180341604252866695696131172851759551165256150386475151706280465911962503695885605452723348641787521983280016847909779966513550182107980140853604154107205455037469036389038573413342342563597259315540267890962709016601720421549052589693913032522733832839104484178069221733210255886499056729783131510072619204072988101276455679855126764701294370834819406300791844348881410122013455059744035337931140054773263674299935401698611627717404597056051329261418313693831652486696784383793308478818619297652451038440499289881086799695197099706095612241274248238803531965667156845918917487792179964192859379181385406862048707910784944795623363823517741585810316451986579393574428061876567917261752523254362235171301078494707821072584371568734679756805707594217805154313498929922204770519113492613133241613324026064949686188136121871291102826098329837853304307429994156465753846842796708193439175881478790373028599968670208629839513930388448334021354799778067776519041436345587364962480136710356208137290296856742865362283325964366317710486594603533024128126675784796522777189688677702685285027338709562398840205569329504648858047008894035468265341802811501795043198365584757032171833665053960417246965567993927213781560300617766418144803035729169910620643059831269495166356985311026332263225915243970728586456078575600372439066215286297591412476330733529788908603227642915773221333196032160070331800039432973747791667401708271641300725307946525804335419179480692858413089716081506296705386322080695387973594061992357398151470154970315320925284974111153990756383250014939762273521002203049625086817604120180869061015890765521635569377704572712555362391086128221686516385292842760930601112630985638052294862029945474507203717138887855390767495052337235800423511201593596487637608033868026231074231190318762159807263003506404149513516122286169510331995582294745122235090653623013238987124495084294308617048705922982588458991946120536868237687833876708795764687552124924238632038348439036103485382645340572794485344255801723878347039653134651203620160603144872240463004445801288221160960249748581172716831858339293105113469694299794863070582369288919533732935917399858223853246554298198927460147647250363980163456053484589353827653275761453197415197562561920531781009729741208785777254529728762321973281691656917948981177931740901519734406772724168388174288854939928066831493139932572641319451725642668789209489874575829687176310019236747546277134326423888516373386877148679646995067535182001334594294671303629026568374269133428407183927205357532353098378986874668368196199327123863363431807904168603705709959734788572399216295442935799252213319400606361464496156559869481150424570744887300485681480429813524065832652246019467917825741453456028270626331735714928493149537534133539786612192031391723018658076907707608470729179082663029287478337655043018496164126613005397859966038176508683857341919952276037668931882405525971943171439194226875410316137733950923673310990863696444522450305922372667113013843134828228524512008500330107518444485987005315458337010767559519891496807422455540813351390185446458400366571457470764926308893125943007030462438168941123760516091950734689009713962853870708332022272751335778836472213590395967983999752173443052732229308956561289777307114855756864673967688568000269292482101755048701155579677943909330540523180556179649102575584540298821607072945469599732604778164457758775281999303237899360246265890250577950732401047523570085941489678539079988137703615258285957369055122769100723821178614189172894963365155401460745644777410450880313750770671215184635947819408197546174154250929836839639789596009920604926724093434369393986655171050728375028520535747181136088824405027508164571738219291346789768586471233301853424489708653961515160026122602245929884901455903158791654879925678596466973757937045242109328927358632420395179594563853391394074489416337843427282168645379322633657503196987242259770925948220798607346123270441149654997980469519600265796664575077485876083847183286474437952501378487007769527366180934110239440417502368641255038214623832957277809075506270253699359332034995099451566783991457166870140234951621998623297109941906068958429505733429025696258958698678118110239526039686628784829553626274155988813754879178475888237319328955364505424619315984937211793695887453430375997667910922869983830863032154339720270965443372090449692680935984616952379120935192350572316185208457419506253462609773739214879934295372528539675228055858082725099124765111954388128411701816855238744948813182548019928946386410740960296098755422513548045517530217987268711000268257069622115013705939871475285481549361192667694932719187187620639271320241719553794469973020074892439092931196276128943948154802829544798077792420110870529749399709326854187371500063073508103433780081464715938902937794905836712160383329409611861440104375899401650608084667855845191818381154797087249987454622648082080480513346807983066931998566636583247426530980159203214125201075785474253115228050535242161279515018943016529862215556636683349251608816222858638305298166256263626303963844918206679948878572553640875504017051983824977341982833730546727007235329299599645216999725426048772344392682688446527242671019287515084930555638934576551556520394837940347340028643322855495198934942468929617128844792673198031769680993044294290285213946311488005422091333047160857862224591552291950204371794262063888233009333006812820317154265274295441639332049408427337628542538890614424887028747413898380084622074790928722319029330779763254258693250248030124588422251259446525022493768224126396500669317322270637928158119094839336973365543307687013877640809665024312329634715137455883840791303315918370623405089714440224309192369507153305500983677650307784791357604573141063830939247846821468915798654422999402311088427595469833124043430723313729817692705760216279659926587650141965068872287493718036627767335267153163754600971208781226287792654265015096037028951151755821128553497054638082257773239731840886784569689394055638468783534373562029298204964892436339082385013908370885045738588833974868218510601148816399907974155004816029061435094363672447486245118781049728844139379072614243735373863477757575414783142306648470996188184522626341240632305922590895724020901684725590151801432540319606303351517321497429493817803532650710608031425352581279165056283800835338544109309618844571409216849087348996869372573406430561065970951428937420656382765178781533325074544484826261199464913304754262471119279883267364679429512474571432141985390894885315113376799133611367509736932793098749413874549525782849519627400373721977903354964054613977733603958477190222393077339608089642928836868592476637990358480212920727778466642150615331082903749012010126466926967086820107558677206453851185146178032486951779876666549360493392592331944523812854842742021807499443907502530189328767495769325031981658855913597909204673066290575546053108656717283331457506588945294383519391718111583887810060824525035774868792314437481381996861863334750383917332315991713541515131711682027867517822032130795565198204674249248877823930707276909712015951249895404019328188939059031039341729669858677250025977174755951230188344936110775085703728406003340426798011658552914560481490242987111236828650264752399186845110282486035512859130742679215560399412610801547695927636684186985193831394311087810023684808533338649518285071863757683615856630139228821537652881628546763355520640035611032061311714180017520619891755842124957236132111976943572402090831740285102694191046195374001094504792693044677017933995184584659407852677734702962158027601623327735547813187112741954606498080999698598022631739820524016928203217837201811449154426488525511916364299843421349488982218024114925693297074844425976915466727573691234410102062916782547811110398162526391169913183223630925978768896509821907671505076655484239843118184229742845497767219243206111342565252943591735652280100010972353880613012782087718854550365933212445608786366922131210596750671324125398403844113877692227522272493504300008700731826651201968387864961126903370430072962833336783627686265748711795530519152329255599716978190540101988747576011661293867050772790322897295269966565782582296691927864462893379934440843214807369898913756902224666014172248676506929762189756888414899909267040292337757283106892682724302021275551079215737746492893218444544559684388505217345853334972892960806784974766414283754882861467994918284972042210442184699380370006317209054088614571248941288730548805070832088584991018735468472009177007272810188255764285750493342684483460538913977090878517298214913245972848307754719357054578214868543226653235063127201291450149190107523837033708237222750166023210695905219695066407496317089931917669123629593372996048160788204525287530715469385658337517332654021138247153213513357890855235743609415780591706299741537002477591733314613088162656096729470026472504721632123188321899437668914602837878436542007064199885682265920679400512949339731257798928138029653544646787082989487869776058347624014624750841262904233544911727324583680179471262051600364856758823855477166103320016012194732110793790831044292622402816697161919883889256024664625567139043955219949821816280416419861761042564461406610171577861988984643069995217381436222099684160468024254881272332408358036423163470048835309342399884368076641487112609789785080958054367561964572782077023594684054821910401739857693566829645220249123092311542645790326496154709603586313676805851407974527936148975511035041269880399385190616798082098837247300678991192133612087373298449425140323709459343207829450337304845556984744102146235684243776095829188812985383660537211108824752605026857544578254932143926586562443617047784487409161120201108057738056002387502453519023210550468141943896628476135106959659661688587354786501649934165795488434656788047856160755965586996556859592489155201113556669387696129544077732176619775656103408977908742257039839421447014330910695466534631489199179295162079128019626792773370695789731596872183623348369649155718227851523651930248508392709675917441984303576761845868246810309593400425460022463595052826849576160514270587295795333938095344173825915515710280227525732753109232416566931115136247331791470218371946490493687216952680525077269530712039614781633610698951398489953186203193473045322767426818880361707256979748069354941012616009194974363981591823572750212745026505643556122608817822565487044846815351860175018357782932409260544128247779782015368624038926579330603588372839439301048399317184667122376260965516653170642702302158996202876554526207352101026386960366440717086044781623406633894336146764945981164093126406649545366751569641071382382781467724037791228215364076233395953689673567222377417278868563919516103861987146455219606265982864700057831228881591575734537782244791148091445975630607813677279984575912126570104620056536254700955337522092848505858282449134145796812134437093894819912409588998127477634847306141778094104966717540431531897407051934544516148949473558521227150772438367533706286558808121789826202052323064280374975934679107969077539903895452278686672327359113194012018069220631060470249754130388617048853792424194328705308733891062566825572053958637937355897420481598623105917925725615420571151409560875374312841476952915117245679017365753679083657651764932182285813467496461629909076493512911234601403325062163630296350900772286338933567660775558898852537837151773525440042113037259506486479339590263645124274625463595541108579013175743805853167676292136286762049758802511704532173446991770473719520195313665411978610583405683544138007841507615575891425798164946984728355060120180981236663049869732353519314512166770694359892161134304422988836367054027571490067172267314001826201310613706727168662255298178799032320171464542297152096682180752875692485969288082743496047728077718040232716673437632177040903259010611573051257800739834087389743106794773005236933772394063014797920132767730529944775868810245683496147340024584302008455504302905686244910785058241061000981654622484512470461342613504301804831951195641353635472669197371268436406882041257555527538977177521373711866892433310021871042528094198854863669747783260820103501289757375598846821452609620144773549304509992704011678297574497541117440262993291952862723619431613697127971657414698409321138105954228941818953136369946281398341804861819055647063319243832892489851850387293823025989368961003242806404516615528100373011062804862165803419070393634784478150281796639226443857803257380332449203530767867425685435077774466405958875244063428277998293430992693684242245537415573801795532765014395366742697547469773178410977217498230293379436554319590080261839274142377553478875514657389411850217152530848360566457866919453690183593744838746871253664102286977114428952833081283812609286631858129498462743529668048717471453398927247532964231917100923188052714745764428960223536553248012684546797010983849540389348728536179087319935217448192360890031127274420419894768841552734348610355739589054658215723822811072722667361937936629169314842367618723859211865400790565094307691331039068963753440263682429109069556429901678746016787647031293845108737187633150582658170912021861247516655821873359712357963619693068826917067955459169671906937322999652134317544154616350478129911118437542495174308497799122059165195622392360609419895734990276001932383442878477095983028306068968797828350551192085231437172855334157261200557573397160731536281696101960983178847907448370068467499486390463987527468778416746238925579415361739696230790861300662837409862284470328113081793091189801530898364379814829878491075923354059422529570625316422746626492443254632347266407729398413161764645420907066062100970008912565140311802496921580853629421705689816048918740277865873408687682816931195456370849656929121909129797875245457744941072990291119027099103031356517111214374211719947763808116784282047116058488625493152300224626030237145948026199203984145838033983343580096566509673596972056743625165941048943714875304741060980083110723805506939003379834206928934128213135767875001878343611044153310676973953585007824986946943344233260041383979350789195081095733071556840930282430748353512672957669960605696510849571374952795211680362475503604573473587704170347439359668262166407950497326266322460925513644663619205205679093684271369552504175807436236532471015744649017183284229097244857200673855413799222007832591932239952753626997174068332631763246356462976122512413804134723708564484565863490281308477665174427172761698082321358794722646192699430546333903275762750492022171820663537711448195667712813130345551521633447452005897990651172983558450308426834912672211714985368618622312587380176229768230553300881727045385378483762673307909926115254914183203536342013110084115686123391778385810346937006229132317348965041471599400412497517606910467227617613558661119212409691924180050112423006198108913849090647421013208224709914318606680711697788600783980686533263116353594941507451287632723345019547823506427366491929492132610704481193928828452377977452375488121383743320241370700141625312377860356011948226605660229069644008437230452633413745233374758915567606513292846881239744008871390962990351961321409862752426345380088867806770433176476199491311046593422240201223926011857729114179766146631088957110698635187714208032587615932102383296773146177927117367712230803782681093852430775012482488980193450000759260393044267844408784608546956462313367489549702470293705984385402142299340554205378832434957237989673101291456717239615442292198162482886514394642151058141722601474466635871883514529650480003221008756149363647368509455308172648597801846397515581906704166386596340173729760047229254387101349282229385831555119132910074667967319805827820621927155420012727916015510522378098744992719785498945267362762145808896157143256520639343643944566177412119016647595391180728983291247916067873841102498459749099984241946800955415647254610537112305489974556815557111716225484892824888846687266611849878471949115316394474550499326732876346424063159715921566278887814616863621457495018364263775303097038157430184991656462187072319569243660410594373243117407774157120932719334841623025173727715097132381804375827750023521631852772196997324681485012190223607847307254111233642557752467999368011645639270236615187884910602080727201444345095877110635103935514816530557106079580407539278241923315749318977284256168436651785604243724039332924224125971636346854222188601792119845824062687890442903138102120794459124319540589740264878247559365439343074498998238733962551670546142929797683007115656633598552028680479397106747653494286182309556326976690862693248418416826101966840913524512133777214354532125694699822560657084025546106825164019843813919790034164502081902101995614329047835136723077534918157175326533637971660805374484464053507556072255969307776858473426415692295049350860408491435616818662249209061685053072104837847198408291582495773135114699549839934938652217125335098190161848994452433770768731346456140016988279672254603896725904308010974900525921146359622813555381128904337343843500174704279101940999717936607681919694388274836872907990862059224861416582876203935524137761552134638728640305856667782458469096470671027891560462400949631308647040874590914888755739962083831769505906624235426394843745213301237002425261011733787694284207251838318332467756985276457183526518264100617868570809240362227436071452023402407519383078343513407689550852254644470471536181325183121511636415207426897898115918407728940976492026322341430427192353877492134940683409618791787949462220890905050737557593635752610319058234624275039317722419982628133971114464324642994744518115976072976249093008774411857409009298240717930644712882017231104171703625207230864587327267535909948865904829752235220343304293386556692753962474528473155079349818715662905317002675401762021600840079537537825274787460436742342732866138115024120908571658743418555134927696018488159764777086991675127027454368680048686567835386878419404321244728371687054858005822311095879948074709635799756987096193415595845612927271070956812339742068047959511600475973887416128427203833250977791564871110950292896302026446510223139690421867942016601477721600697816319890897738440234819495140917473697412997002062940476652001023247100245944445916396372705060318945031579442016379014972820472069772844048737187828033129807946563307177672583196715013010341377491056335900134983407520542509356175773118688336179008137137040286324463207980970640975710702473885574287306533041760886879191706737851412814086225416567314530950506462621313707957303092441581762170283220243373045879208754633926585073714396793474144391055308101463406235088890971582078276465136459109373769918570987268449749978944309090008925884770579421859427039972753621057956670989835833405074506677063966858253721564238439555945464882151826476796030430483372515856919410082673870886798111324962388597557784385709529753251485621698896456645375142027711081813626312823900245784258208659761381743301701536632369694013340612226710946850084197781940432384336794953397645047699797327645992614280053004945204453513897089423549126246699620164826016446936812278329826969943401438851026498615717853045005427749424710591882238096016040885888032410782784963174498987681166066895000593817878553249567638657307770851930065731148217048083653680566472723239831326067273664728602361331869257097934237334110174190918256848940389166476080210423605523535389196207463211380739406220304963399657212218229465600487252010392975167006011266517273664659868012733163359755869380149326580658566457118055909028886908377439658472359139768285900373945303239602691932772152040049320094257010249210127637018225597710293687896702008100301554763565930068953829929269149484273380172038577056844614105386656902684805985767433664689026698911975039673973023076726041258215593863830380633841073399838500384277568822411596106654613826478730759290541168628779544429354873844334946329200314824378997764012095691350202213143726166586768836083587925876633759105290991608972103666081450947983799712304520202628138112843445898658893209849642269119456851263921735952649850738556919317253813618409896163644935669023264775702663826257480076536775037988263229788109484732909469815924250166311374706462859477742004131441958790493476382044991241926113429775193670720603233451011608738094923379202513190494518667380979732742940483224574348842461676778301177289475458210621125175101308795712533314928254100909891893742314683199039016307374054459000393208844749224696740957513128164002611576728281026554721358834111206512593430201402907296788236705333956844627088341030523488855523554188623376703405335620365559668853754446916377877019273734619071340581633515416177922043503706405683472981636749482089995145726303427396772820136421718072419633321986581225093682412441861973567049694976732931978720827394570222227578449396814877754451756498145295361681002868007830954315012202543200003929505562096779286255322660516775807810481984921699169365190628546845260183575351206895339936932638784245326876673150519651383385084222506523598152538227865054399497945801840402164375449409928792316499303679976273571077122560571962978126752712938016990552950321906567398765737453063976514596497980758190805644220182118909634477071018219887920243055730109180091413204289560675449127445060509129393889209600882218621913952745678009534587899717533700361823816132132915768981472591647694623991812688267009269562959169939529788935010179073259102804730584057775944598685880424410771864382423887457297571725666939061576464828950110327083353466932341629096022140086671591596019950857080463273543247802729297566475269917496480998126826277452932148057023375819806118324322250450532090456276543161505695486364352318081230752116663049714319112550535881648743932698851368260078897041496615957792311206309229203742177519517946529012663318112729571064767558590209831805007351699751773542493850914853766588877604924442265450099893907692448665351552720206354695902305083484067138907851786023756662055551017222974691514814397973055569376864802204888985779607352933699388982693697267650221664052351221109984734006231715797115578604764690378681991304525177722455241900740663259464510538972456902983960202555453346341782280438827516379649841933368404938068758312173075756359691182707173736322570018619821746933172580867594353694279598486214988151667438589282432532371359965466774656073470630813856668346197578670304770087464210722847494722579828192129593740958092504710639123027639526813713163937096800182042839938265234127571765639800095206575792458895640168196919334650288263668865907319025237181921365916496521174289447955032287921839963956629911012827591611404471067794944192668479495454748269613275532526676853244509229058711280901618843674960378956548062428429737448256206050505397143445063024377737622316379918555713792910477782148268801913065604201574215598008787724317322511492849674845784092903654967937072028276862185349108225137744181891518771190888318714834988474243581606845312581463749527013926061340473128903936794117098804842227566798789466071967605417316499855429615750790246082568833427994602244240480399105841335162072174133997093694871927636046453804304638975424137797310388682015324198740701128986995555998659357666536051073704292233925234316097150548914876076999966974074208722435803073300377834598907437346860531246667361990820367834967320825525358003229658906840823096316706380841741452491198599953046333653417602097726708504578941281914980664562857572156343692654382426121620508238078898151251263099574788301478524212681283109096836569266390524163204414988850288363001497800230035116679989273142502153122370203162193148652482767186589666602093222946154304823785633069997505567580604168195686350914384015471622881519124122340090802998416942563915790357314465214893418808190673117411757189690571133357032055236730977385707219893655933579914148351286266112813260340317667526998940418935523346157186087755348001203023917027701494815637554410913982906668308284019331151924770952275056503301591625580623456162561161668401367796589698012616556169282652911159895248833890743961251065179439275316015553325576491826501193028825235470012871001095095011834769646814574319144954808297743835546902978718429129575136401878911195318228855673623600019940103132071305521269434424827036250460742239637513694774036879984295451348563605819327289589964830916712879154191357663729783363881088284299411260983126373031689455886634105404478826150497229361623490904727398548265867155704980339024969585760153451017430070969831121410926579005228136754054379297844741708944370414201848000726167845078077325625650262045750462731202401418404294945208641618134212634305123492144080211015901501287357270692529849691782361804787978957510325793246665679201430746889791523361195005958234948830437381960486140037439720392435795100076597703394888057759100215864610841336727575270735797094548397688603036532531471283743691598338257055951512201362045159731083752667336430775045573882303295559238789456377043201380626222007363864284078794818114808311741730119315974236298150629806434004670308048585286897707032532036015991599416916778716591411564768816427229101547597288791216202185187075377399252276440103546129381329037105480674286555519642326630274723837228343540882872254345626230023174742038449603914040707918685445884433022291236812518299183526407347308654999036507437583419275620843744712992871947585263358495785667073743055616564835437915439721448858579672808665789818130189283228977596937931471458677780799355179337207336303716095316730604466717141920373208443239874946416145162917496025628146226624310248538868060207148347584270287486502934489547589677556968181207933760306464384979680281774504564206171142557720962008019546450060625859823409234864793821346029750470026716844398025222909521851742240146077816819960541907689359977468081488509260303711819107444684722980477433227536885889690649193711146736490593191551455552412661018323429308447856344252750062891215209063503682135848563990046411930303950700692543701131662890935356874957609151772703336476153344401971186735633418507448424663502091927503647660651726512874559931245306361322863431940356181854576616152963079290027497258865058768398831450197097246805626314810409924122571819247712100327902309360022890497248180185947884056623138844526451636308717610552243581461312456442607408293427374770354997875249191991199882665667597392492054803900077244145977358099695983391322072746568326816579232534524252790380493521887009252463745219481467673669828920763760758640396506255739137152934549320940961110621391053714293155655746022091004765601105744568020091419561479120554805010178439993247834911295332839986099499449060992759010741994227725587360751730843934894737128317315732081915402648434639015766119588160081918898425755643445590644973978627986161254588688024492687388868254717382258476498716390465177498762636774819677143200852526505138268135966475419525880158097730086411598912622425484741770132779301483310695897524009938579065618974368437339736017029348892002471365896402284439871288833381672173035098555077571672942417044805073835348834738435871108195500647317157733629325484394094712529849104853742153919642650117025746054814308853510252636161199969462604525247281016655300639380507533298066445193684208512514792117833217215659499194981630430419966781401035516608001579718872822156501992516772334012795971217494523329678647362229842173880003842686645058350553713321126984303605400582645278499383496849746176353895268937084771501154248861149941073334689700566721812678756457779469559177210413826827349106028443164975021640759096739099724524858746945924854812665309733278518224570792540984207500296462188619611628575698497846942194871892840804479160314957405461478830283356261707323646831900522751179699003183325755374318237423903536893945038733689713350940203908564850877250539325122759104739328224283146547740685938184255514130287254768236980895299826845013807269522785852072366655777160194222689362470287098446952628175141798072580425847333552560950097936492752663273109099685882377566809725696361685761325916755959930303559430769525222374835302581493358523665587730459191246644951726911537796915788081373860040942764502322085445028181355350672884328284148869776839600759053590051717040368959033591924137699397102089755530302025838711131471336200073959316803163763739619375983547328290649287460763305620152890849224452049653212917006449716158180477956090489659110048502688020029655469479385738256975235193509665007960795578555017724772269110844615539373124809056913499688872007440267364729907843381334283232934973367936650597261805476123421997593922813418522742974861036996899031904582161900199826297237156522755056288298406001621162557241797433417035214544405035090751345043947559515323091676491870690764733992302946393791013035084769980861208640916355297178245756958167617568288858273402173552218279990170352343078576102803271657853864224995921151329429831380595611859883956030041016594822900348332231328007840385433399663427349619967836538829757612646468912843494057956124549554575922261538730330255622870575776171484767048130877870312045185972781367396022700171359597443518420057974100998118533226940975859942772526813351181507821868243234304919708257003547950886854009839349447358709354448840992434097303704552373439612028962965597229205372756344087283490481562333829480338908189892215888104000234810552640340839661894382593927529973323267882284369277358070514921391198442163305876585593296182397328648536470871822583751763607387761740975592476769696442296815938766434297127062019685515431894538738185110605836328109850863983842662346186055816744949810410324058079739649491713865163046723536682692317088505199675676169611679285731729160634028536093678950761712521130499173083955813664070569771167408783373470196253609236388334967951659119281067787755621594927136844837030158200595965096972770773584672885619310470078970595710868279532581147475784923499637403688618629256497264590287071709171333956814236912141872429022628017889077904807421807813589308168566551293577326048388470320699215324460014610485185612837665084956004238849179261219240095344963327825402219799614868608594572051531372292177805041120495678234027401048263470813111068682736961757080539702746324324789372213175862024194699748136789417852373864082878698369769399750571586280613655098148400931708173306723533648209063885162204785223796484089092077139136636838009647196470711102359428460541746936827167917389361264856832516409622507805471049711239920166309328797687588080714562928917783121656377127640940297398969887689945290334848155808174038296322291600561420714921410777209339029613966817211001133821279725590288174438234944938238422550575833631089191138611802939898290645965806067974701403906120820859129805689451273119547033976871016950619142172472348799997855892986765166489447529078235347856287637980306270744419118240886623464450568294434073932077396338007227048424051100473630536053115244478395324192796487440165450118073373496784254800444654700430726244870216085237151636997384761541256354152631589480065846862545496055694717475818443530597337215141189576283550504327830148031978714551029419339519621988899608915196576081189565695604537594218229945650435838230226313817962513196027156550127849915193426560146654219641709070692569704659927883379254922499518562382926909365159019319825998733680685858658089182489343760432185879958506503032374546625682321642591573046137551432946498475080278675837477641464376436400719474623349678800127221158812476614700660123066514995218570285576816459524253747386780038647316632337120493925842114340017868597890552341912911942535221986973280667127665805146511321043297758166901557309156240012808674700955268358566622750704574746023673255728918127759904945544741391107801146004712700081836797685747467254023745831121926275400758320304974195275196198546010428961927033680397144541172869887881613825391350031348121886521162272366392492918625858914152269330240850773894321910059791581219855858726664315031956605256113910238443005671847099848977615777025568188911622203028399646047584276225376610737742747538078979919106336863650070710563379012387920310994304453160234716749070573421922752182683687981096421740394191322312930007676883922558657045164831702315559447493835047453470721457221182196235902262200025476488519343952432872965673099280716650948035874847288986568164722864658820274226938409786357785050476311676436361111090128645227698678465482343418286352919763342860848213398556048777382393659524947315712637877569763169344487094937696070229070281927592950079704280954226270409877251554189486221522174906971754511431955493074935851661456739381156550091946411722965712726238038405519338988274761479941395181932424087783143721277509319643700680296995570985749514412780697317542037413627443762522038300025125738433712141630240930584757612183243781062348348618080462885081201816044100789800828584360243562327726422050434111510820267552344486291084107273007854472464917583730901155693468551222888562893876053335702034177784090475082316001471539008940834694286286678652563424758002854860970552248857570950295353501630855287304219849434483495255286633500335922896714115667505298671365480673892836397502367744192081238780582607009845987398235166687248279614696024779189089567617090118661449638000223945988768667840871079324011486135703668991125947121157183413564528562153639824414260105522631552069528448194549110963472848138838914248107968812891775662112338295624603129871529639738832194717313751560793320944842562498637684586541040124666183104348321706831033598910530547785069518210253532500317273116046231901494083686899620685804057142778517076875645461927656865302373138311040796162533900334236979730358344429557562376215741305243564946312647945868508043872938489590558876699205611572173371674362069351159043621382649875534395989485946067285086943955217630683891276138306000144504461622062939020517274280028269046235127288780234793674649897220097785708391814455184157646709149596994264380499346392797501596810001292575163760511932611983312427122210322804464661710700738551920973830684675060166586126157248492541101944361409436262141249440621097057991761617249812997531325489776777461540752788362018996007114717362695912911401696455094200873233443979652879211316705072889548493125326633628932923477801519609280027557806588533873527795335687832051682938589260492409534524267398254382605355227388416556673687634383635271166201959115446205719634604156329364275882301956902458842193744638713338962479470124586681622603365692870465958218367526696575698283908121807262050008577102097587996835413829411539570098149745046919306778075248107046817997812479198063171737275150043836775786018433533315125188875624539659635009188851800335279974898299970989730970875010320154579391422136827898271557473059949204635177530254278077771385507386738665928490475762280433211672470088019082217343106757505474843962668560722724951332524030728089876851146364665064827503508113050091429109453114587938256981053247647311270750518940705399430419373275613733653792202645282467996502600671664797584339871675656667372607343945482960164005122812711871603377054167732007160163703887958819052390598705601071196098931486164776886997155802389619403534193752931792223977533354295268752409198935066806001080841995661345046544502621999779504517799669441574971865365885152068742102168726124097993437870708366316055249949153787329381187894710488966269490344949002439928855181933890051219382903050677882508872272873900574766931795830192696524249361647522773876195269206044446415832327022906190268204017046430643545308019317825460808088095161600831200487336450571678085010481963646287862305711899805601627820717246418882408312743995368347377273758956801367001543001483924378463725506298720046490740410923651707302220706611687682954764248568877532569133305490713312194498684189948977076200156331220620062462119801641052800487516152521530674110992227870139984196280851708177131472903779015539343036476546055196568940936825215417569982374022281328148952035560088206790649770944058037825155148436949035358601321810679608883732049721089248658819809376754271433307627111622781042727515676735476596123234532250696982435405836130166796778081958707331026786446690926144904467546057182777691454427050173195655330578834932178921566925804289659369849408399720843933921510464055800175040113123781550997978518387672781666250818366711954432477836655485238623355366301495806373560099314666815527119200776217111509467056162072181824164945229749629385872322726397889726542812209032129910179134362094662589548831432738312040995095974979280027119403122476680647824542738690258422480893383974517323416035934045482651781389315753472381499791291931534940007939996910511084363750347146266082250082971221450881097997722442726117996290303002121735689810322327032620611937139265065343134650296368108533069524329487006503419269099538258826789670144816944520767596282084522999717243060316931943477614734263665632866195370647318572189341291088296969929433930615656750068426392872539568983508227955242266931275939955222947881017659297942623165998756021247456580310111183467750909281439506584587569591282573703400829724280309268458278973724771830325252701129438441813872398040740722899826304090704611799094292989079843189435276871906994224280462458213246704853633080473163801488980343855825408691880605052369544716220755195857435187123770949668858764610831850563793721075055893288300639290043832187729333816561000291776631174432112105473022068279912595005420545345733499502735868113675050501386604278492441105090009186988597506314314472733808854948877489253423521417300472103710041736641719555587188677206874498597863659015889508268201237214619626412898465546732048658593498550824589487273025884331345200367919070389621571369539438626733248275753820755540868644207918553384617957072813551219785016188623909001991157927585591834656717183190823789936106794784135650863679801931145040097110705240035825706931265506441342474160719530393936793959933736904699166850386766080772725796836065333847531519327941878964283005610759958133279092581156995446336246445704729453645184513794151038930955122263235679238755706917630201308698353131095907715098865854681786702841385085671261483556478781335087901083045157687055167564484269652436165244336534131412376400963740198237218512246430990539925590085978730919360370913187745536347122022679115905079710915874314688327970160776798998790307813092061811401064400748882774047001963053609575545137146517941684002708512125540083027667203007648601763068778044834052113845999280767330899781798041228129851565909962621846024376905523805357564241662533699034724220856407864257832648327907216760431810661097330515507355763053355783028002097605521338156632458695341877857966426539584233643370166403057096806749726015802247466026105936212931119765092761603298427217274321877365368573184947676975491855253273165908319427144316599430535482911574193341864981262401879077019510944149625275440646454745248855294142071621855600830067780490435777505474674956859205647067981224751044925542391141175711697191754088182197919957972096294163146115271764268456943572216398579680891144194712624431250035969861303433235198313174178584595976686278597022229511576175903027470392320553655985336872971019117358861057702035324842018948429700135020611584528154329335195046403534636725835960720941429767999994019480055290570230707239558370095116554052789915562379012494993253835387975328010788952153192682625864501917768089934550309896678458156639059554938241837333958237820889798635357530083874886360175996723602501014801650818345642710399894244669785258374929083651516753025762397920436229889298819677875836717456545197192569184219000280868055288404924561077628564401484279546289702726370055888000608149331995097217769664631002815745981172351891187509340369267213306578555543821432629424336586163857862288385984215752658513549493193427188405815773021743248005577382910807933242578087396311313172112644989908095054814607224676712407102231137174330573399234226161196561545367772941395958324064845762661038936226219176184342233638365610760053532821986485620900351845763515662395563057448757033433875389815967141592687423303990139481872551628423756590328114036924059855333925147231849166117033683418132078447071241895252673157903862435236182125575312200905398902437435475820480171439366394304195962156775081119000050432034247449605994096653827854446397279015436380827630690382598882535312864316700141966931336227956616957849166121491247677859992733332052521398999560050055926950289126563429099253809591383298184304718633744345630203438823946783049975603229321182063825198041643423912747774161578078156193190462006903725077637579866900577432682843232201364941424940265741282309885775731754856416322127267362041141274386886657466525035972976297983463313459720087272159091683169982444727692586682685958662766716162607343051359303440479288840784314163230288137819812070569781836065549040301423502598953298113807850586719754535810771899876247248556996008044814695336978063490078583247865848607585386268675078772348320290721759515720349555442106454086008140706064434206096648845397204235690989201373974363592133083960527368983193776698787245558467995283264344841442399977068804502085317827927820890709592356272303839147149154120662430217116431511232123509748271614545315144637225503285930262009833371943658453499996581027104434763529072688258795869900377997055577269467409892082016847914379669876191579385341712463951402077634011659871801421458292067765741922003700039829977100485548790724143135545612898039859781176170761047122510360596414373283378977968055500401638422184210894124794660276892123256889693521254615436215147824186147506511795642029210330353677607740181056706424009858022455484963692060847103743495134979725283099834146712414307208218399974690912896037256273834469663981956045217630128819227007118489695316666093608133134738597461507497772422548510460651816742005430214584615600581836656938980049633243823698081381350953351576524741069066246192508571865607236100662425741532062450476564477995468651849588571726557383166899598604405465244139955420963039441951290504927168947008603629529047403879243960565616310216725868208380648444000062965252775728103315266407576971564623953957206278651377451357600019162752178043774229585340626132096714453810228063628221260524102828103917249768248152954827971041953788859372729432690426726637140069622229050191843402705782242550397023393290822246344184417807439202108301214275000393994299848933746238106529465557959898534369781692058871021898935613618741602307348315602770331103557311821310890051957080161847355545900438211779183867251530113342534392543490506863599177803976071505516511910039858678714830977214460127790356960581791213445136445117421585022343443644011496362498350551477322599588027263717115918066175471949283958468449450418930965748260791123451967727971006001499034603762557638306699604347028571447319650498679115216596102001421022089524074504059119867685352712604849814012859397110645157323576402578041086900878186100280360655835327200116849635893045044993348154684659921458742624107624108795209762241335578780912590930797481736048592017448004224627927062346193637142063080216825062135425847326130083581426475151458947054294512257973583891497171527747515238413899055582809207576403709955190022310738740908859470181311777333353046917603255334420858450550994178334822744840875996125420670324753820441398490816519701634086831513488255410154238656799892348360784161627784805476251463398906071670401613612549973477059441520597569900808159546063473924457826156821569821445982583180339720821737053962268442100149038880142128218555322066272528042048270046907039588596076216446810330748609794917264159750773742200488432493151550992039201989364809953357876262252509570675322291424056842858138794317310423308046328188042451032123671190324929559647047300266159567973669317056578669459071921063252449462593265886539435510939573943937542207100819176389481559431852217569543017879353915684747953008289051697854674361257980527823671541909901299212060713077192785348189614550287127677779110593144041330756416343021538622665309757143769954051884264551329357703652120140201172426129461494603842585915826985528312935026010670009427579355962619356297033198513352135170795006997877765454074899250189609773844626783287829014184446699171722752632815691105012514702103452767675652655476272797915996156110806670596217734932851605447276802614403231609109850845151483868860118504198897005324579767604781305224711025533298527013427570736131134904743606457991716807836695193196136182547636295763921170120490054764107191911856210042461744295688656344038674809135653766694052795933409025718781181069241874498489396694467014072073780857560364847777149098889247272744637858055007017375362256599283603871872765150830112447613893239135477970487339166450809662379081532172252848101151875301784979598256961600003980384767948647828998109302422060555963521564750726022126630553070353854521883146574272533160397138165201010342957953972481802565033613698854462155444794606800727784248848324000827484169641152892930790514340374494655725784339235398603609095847451394375118404871851293964960236462945995596467338825443323635603654146165994241848994524985594749041301325277920841976411234055028479741430609323365858047174814537354348846836107320065045733732312451607888364612583694520142389371368052207803509964708962578582285968075965447293720430282833175952714822511654402458090107698290623609073368060363168077274457158998734827693366441670912997862827830605118238981913044116949258408191187095871980804566253400485431054932386796960561125865334788792274519256821468089870037879853005357816357785089005823847896895952760427825081370980549537187417886463974519642114974376033128600278587170633256404881849811217494986476576194969852897759011733268810732693410539735577285264310238857284337288756918039217609772629751963623770377115001734300952798167947475412641129476484530374294304216123406098252388031374996424579631190963338652685274664176261131036830788969504308490471710837588467919965249379109110626664874401408875332105610013642066059326239388055960399398099489231375183894114500959134487729695322325802087232369027164908130600666916420977339695923497047698951867843428854201018307307216751617761193241836132275650915443485516698918295764777776312763661000312569315045296403837381247734108677339738966366222856676196001651888726500022911372459210856047386784219595633263121505311472901215856603744408664073247211142859885158298875527643590432529694367983832036427774010156493035608124728895832786612936007401767075131496927637016323158363283648057555238383441107806810883906705663786170744001353285052671522401104833089143628023653507689336670359611667317308446480635992586323757913210163213973525981659390440203153171770287736336271202610933220173991521243185798394805246981734154363358883446598344063135113766650951092960925968202347940308002966651874424830854377212212517630081202358038357485481072618478631094072087568340323373613927308792590887823746188191846663704860631863019245131225142092040811785308068292506704815753071211538256353693260753787974604597085217054129842438111609955948949957489092663388573473876613779998616452587602209096345096474189239294577998815550933401455489874682669242140249397530162955362885130950706846435884076310637360870828142186714251891432839500374774294010519150736005937033413376775309919164858504547391732587093423752715972113876000967376330120311397530466379048909496548392295307477931682983936594107630245233722530814990331602801148146584796894484408468781036510930159179343126662551021162621155107843416131250959854105499494783285450361486023333964090429505148739002791511050909556812892243919843178990516943318120686129423267161739390049882927344603759163521437217261786056652084043901481066032952405267846836501565733658889188377657781664906653116971127737595640029439054005971406555316405286162453568228679208518795326086538191006204831282566783743195936828735170091636113274957648800129735942420886027479009718174581502680379094368167531227599590313657280689741560015925483346771548291666401962690030223416982355530664722515352079974659040436951832148804605581699169645331681379448263143749275758975668149052584356443100090033493657793037492598251329972752992084232305139090656168350995357143749554122954730170431076332711600299804587330627160239833940836476369121232829479155231338803380575394508883915378333740062588087251523186494065619423778303846646937070271297088554811839936525233992460287647015075510870387613909925948578205651921744666030170674103416974352810318886525576343678631933852473002755825159279304151908851331615905178905415425935566153543182662973011467399473145859456351902751036545199402073731693978049633853964604678296090705382347225653013673206244728892767449062238672152644088900869757268290979537678755619179042703757523650923811083682891849056612269150067494880615547505171437108177754154327069492308588968765956642404758902958610535252890029912893944474022358151204380382919664173142565313996810630697602862844911568985413778348409909718935182231996627500424323359133855775621650770791121916575718311450806596171408683601738366754387615760948940622440115954673548265375681676761257679270239665205343057164176361664501510254688189752113016565373438826340227972348889403300958539103611219575994501065074280497689627461168029143184497673863963634182262597476732570785963774699679606291215954672068583617893405653598638145759867945637233198090081940416845107953817133044365943521376084059783402164122300586711729863183208072588983869861445377951892933840979549072871544069020615243859110984135490775928281809558150676033540813998772434712100724431790814681393933708889839454002145701598411885165691107323603037636948160681607242545910902086999552914425001782185347428828542031042336228000432901878848038863298245542601265007858659322001800622331280797850668073278913719570845689455174317553232636147176342231387570144152508409834850718227651330477964527313884014948645786046147746188025197038464248197105068001675710530687206764720983410732836063575295869120654822186686680777765010653365442128022371715784651401932322707833767874783913535019636385757199930491136684329132159791332339335779999382747567086805101912521242268319458912531304349031384642398585146251335661349703383832426716334076790408329285796050800408833781263429657718361664141507554693869427047854996725488950687446571715239537274247965407078333212211219661532806191306790663783664464958966190030529584028635355763377522407885458200427369062138996156773650169813066608442548584581902428815560241418436591118327988703534665231646523679018432304183479603270768150687262878247685017322177459557131966447025776596211986275556634753411229288363573575602744770308335933715509232875252935113641259349568978696395926429656353011621656756720556030616948918300781856589969988847293245019962902775764059378143034781836145931771766251085630763754264561873876334814045806547530260294914274801952726316520763500573567816717858262138870452759920825270634318600868158610654318943607890801753843369311629522439827627934150981717665246803864896240653022672177704026798545568101861620053976600637460994831356189508612497416680938441554819815889510432021718174515205757589195709901417251982783532909194268227457182932708494670090886714099239096767083502652593801187675894498909864050907838305098509408246992774486763152619486859297693838107072432875400137513879847045371544204495802217156295994671583728299171932479851370164258797714330138209777890917703032397167496803951468227167984924170000324386508020024897765834799370885078886674956601171958683855946697731010847237203069293749618440249637378807991625632051521676550738815506523105519323711678658479115196614758521100283150801137968006474426759316107769667296308728147794644028559918750192280198534246357820292852803405610845169466595101426248949679466076833487451228379148497050842306289875589339404963286387535939842705020063325061368002037149534578715564518540984426878389537340028911597576329484389025806995600081561201325255423948459758303619062761780851375134861642229328759171447054103881786822163104327227209512827536565405763939099819104580441841970732914890536439418597165407404850509620983360942110643815974027019318618140305440250185281303989059155921620579083581995233217909002032742939268619401381157843326214382790514167014607633654788711823348262402250092843259411475912834842216872005610696233522645743958949356534598186048126311956537056900773049438797211634642677429880356364218405659460277919276976271764725843220380493810975676927008764500657811004834833624662348728013191950252270436820679433902595284198007202302733379252627787798710365156087828747529272987407581876424786479318919482961757007015321291347048753090891998096907789140294450666527714227678568540438199103911350576034036861652058129740506052389386189206895941899721465766779962404403393316879571643168708558121726769936579834238051821450143549429576703005582470878894079162915178166984383537929595354350264902941716106167678487307381161802503782179065018067848445857811274204050673325670049477837852055723440437350552269566349188346705821681549547189213831364002462190916960943996467975683055923568527217023194386596165494881474092612560507096944991710801357389469785488927552424174375741620493505128469394322834369422522654497876481350973837008665760111979814315986810527541502647535644500611197040294280115795047629149263355797607595666161739191113083201080225496816500413049418562363894203107893297506582822938772540319345712600558083561185013159902176770889815466998401427603245021571848557483529996518944531874084481852513573975628903146646258708695720238773913718714337906617767051264025863952038829496275867037965061134739727613910204285673626019036837927175122161275461413959779755839613089237277466594489845591396913212295952550947844308561724471855213024979038355152470499319047648750713079662965762875582730159328828786399235462627896656280419554117163812521477867212925211462052586979852865840951421223001417132596888838748691574177184318391032173951170110226063506647260119528464637012379420790333846341235597718052530077422907130046108950361230434909495581705624930499901365068397274307502061697569110406222498041480053926377527463640089806059802777398409951624559124338052298351403573752956523116029117937512688967219565968032125456620779114661215047460143843545576086153221723873189207646846643824308957297478634797051055258006347542344176987720578854536321810175134373419546616412943362133953381930774066882311559790144457152450121926064521691573700885016337723008156999704474179867363154211058717011223347555940206518570750697390086922990492850322529540758601891219685157858675316476862388873119432316203013932526906300933817791059142661039972742879018140338976090649671119275687118163753934665263974645368911588740135088345102398637923438653548124500458135529970886379151072295752808201052686903278712110348834448832056174091883827279659546021742646936244727923817649042647287912165492386738566463451765106764946636843884404286161687618348280378369511911001640841536383438785820184859163463913680822964609334246306565681242925698002994460976116189093903528137314070035214676795822549899972188285300510152687833896214399284486232897702665244777615016140026020587440054814384231804838574975821935380102062891508213505130904810597593803786351269441777329432288213505667831709513515013408099157428803240226733087786550666157008712413746146145140009625575258088114922446047181100372325107156838550794155563150565371641596740165137650021310535745580403697426364806825044665664238437135114974153146346318573748723786061597715240389932521416294309766696278872400012996240090687656912561392037959539683789816875542779118560991844281024536213143959829920937610459736138105572238035300912981958094375851678021307115305863501353144904312535531416071018462233392861975105960068791319126218140759431019617798263397138895478310169799153054663031414254156655256429843602134181765604791760818781710487836286990977153585155018893529558215570357933348731544772070300928986556229585711618842214333118794053796967524244720536164386553751718982317920268482420446476944830923754872610430807869925539331838797287168590765962323766589135038254353486844510425490884071737707124264129808924075866397304173970278923203697454163897005129277024807175483011068379209341813619565387783875259304515607441335572561202826598958601168474787476418843613643317850810824906128270311802103571728758844459068716037659415218248424277218458454032369963341419345151521936572682254233633267020985056447888412755778305097243264247034062223332716770100533247554355461605766349030332125467009544449303507065348528541767185800060083491123784991714568341100724146285013733779859039310337608886203339562736638567175328640565163793536837635641730176561908094219384585802700493403296009877748451916441354834568884312576217301793573223587896511330444500640183582588090395778725982472899396832491154388676994447645698242032828547340941285204566772664554983001415533574891947357885326855768936755438973629518351824148981204309507864511843437332113452563578529500851445994760902972369919736289768752978100589422330741870767889093128849107333507889272238478913502080058681012043711214647956285662947888472828454487074312135461296365572950453916199824572322998770594173665031820897641768765388802651925782832285782918227594739188063672716299294223300084286164647434469592511947160997686283099079382684078951328823620280958734984417759870517775461569432532101210431533230828359093732960569460817952435781989251119513665841421274172211801858735142580265520858470380775525700487242308958897958113362819467718774250887168307907338451285031266167870253543956303317786820778513611942295157203222252013862383738570685093189922225906930652877923732813525781407458252291559965917880756685396847525109991402905520312864932109707851307232035957745703448488625235346167699060776329819818075867711140135647899947538571547929107768035863290120030413815364465788309923250810850201344927843383211348119300458299686325792715411372700981308312737924912744481463817130937847614978486814362955967569716040295518591869336316860447924644662820910062096805599113715681853963232452581736462050519099190165324481191076846000858464707444774686732285715896015139067654290181360713508829781566252241692312535870385600372146968720944231788869608854679044175351394021756556194112557758994676475828712275218885882817364275454692877829002921423348072419837497567414911257309346012508772596060214426841464993617272970363316620759179766845773808468479245147034533399311577340121699087189773788186528307276289283471521985073950790020191081659684862996155832662428468500317263842749776480775617995309872312644393561049605106823950790784445739881806530604753419300470543674903184386175780146580682094504608737114246370831388847664765573245360354941162879065130355724889932378338920526036928804231675761317173716541484931386607867052187486465677663613986754233095688977156607065037530674532831094395878469825649304874453555209885175807817738784581271367251047609600463527844156543703052367250897726953226377999984756552517943259349510615660046059941340179417784261001342854384702137375229682589880736934022857355488889939638215847209171524803500616167390791471618467069531807109594466576550362946873422649074288964187709563594224115438524225954241237367522753165193685725173901227820497300671874994256537060397319139146400956040855347716083568421717800417138898526925751527896305321497401944812874749695452382827114391158347462810295278652418463888656105250179384638494809217741414589856628226336402937874746443602120480323932893355216143671268506414317969266640265271585259634286047052617286014928915109689308988188447150670855263941954700320540222278491359951995019258594320159516289668955009189185563957659417924132229473663225979288659606975096552770570714515838078573020657146443909690815613225427679250169524711195529759624033178940447691267003923814168178779272418858091938450557285231255899800472326678388458931710113833434252269089598897161671898165211256786240354454859718726750742433403119770488625849047498452029940430462457639607947596626053318537827036045017707793683263859224773025578003034617435436291316977917882608636953123565888921506669349436309859507509858666184321534204295894272631934747648542438045152195107543602218585687537903210305370136368123398242531311585605525731852937047042511361092863501431188299577884860312399947394592795928047456960762516559959717111004052907981812857026502489829597075518634798588682603424134343216445497330074400933590611541317089808282513635082649413921708088228123618812823994864968807391251565554169654213183429997204457580877803448913124494215108430511699568756298116804927594113884224218828287019275113436124836538794059449081757258403347061511660384216729905326698563801077593431483086783072440037467554509751104917692676706042466550715910463757741466777928835979583752466618596451134178366420713209656440566370473837260969144600176676935295618368008198323872502455700625006161488540843076048895662190882167054638828524655324154242184181374093703688017662127980735684563864754239608067532863376675821362648704136240612888843315659064452160497942980337959199581438665272746063897170714992116344632602835093538713787870850038613986817640971709650146751590519943963186632599746832536181405516939130220901185057967964094415598449819003662005611208292477315313038124958051474612415557309813855948606162663783782129810044791562679060616866428979975571907352069187590786696597737495899444974588888830674682447552402660244981734509571927634296794299988450475359782685798544395734354990418907740926187653477805551155120716587979145911797122022128944840352601983706776564808648244572446633512827956640218534403585686226293870383968261753901129291259493015096962562601168532070591014474590467452707167620011562588247756326739758926758450734839304770587190527516783652650428468134686573591957993396185339405530097593707139972414717782275238355662836443458531077965737059691684490678491290914456845484335064075037608728865247503892926055939553127304182824187566529084473277296059381435888453449098929937867698767774396418461932540195913120906274638867138413645440564442864826147591568163373151638030058402695332950011968235492805625467443921799533258795373808081731836720262700702837604713083220326709716823179865848292162660326910378934828088972034186299228112038741740351615692736319054307768685581759549729785651697649020866040957976978654285339427009926255422580560746429444697614249565832065588125034414333074314161075412365354286016177664002385324760489677032661084615969252473763805255272841381510898319534628883193938718934505683583470076524761057637251383270584938059208275926852412854932209806903110456457274566741059835113512300851534848876654929990123164906939440918543449936645464940150950787694485078939616840408661698261133257195078437770724130010573614128124205513440660155503964827226541418419460706491535944885803440425065028473878055525026598641794973634927662051705865852045528243220198705724576067917379122094023321202516673464196730933762293040914469372304421353422828580834332909714876430924677567415757397086208791727937738853651935187930765228354647264067529356324390180166277383308897395813084789315913142803349114320305903396612819302280733935294823950015962150113116930215683162024763375144400441144784197049044804297546493279779935729161284059107974174150992716059059424437605976746830242675426280356153823334881048201077344644687588396284655375901336247095311692553765368918459550781224770361240916856504404920463333267110129976445076358048901497046479923860329837491097229507852934733914776109174872254726325423055979693132127826838281107524409896255738433922086910572478221260676742281911720824413031656419713982983341179439824260290031728310560786837846026703614113764223385632347956561797748855474189122057510081287680657492224186707066141659200795358250857491590338440495263846520154368413350041995621265504397165520057556699354408824437792352858397277361570380419718604701481457594774294302070961653648701522610309353118115961517314118537483364186533521179988459639987497776159829721205416467001023848959874986887305912717031244415916413201973742863640686531347470675016925259577221389477151776023733536573353018343522296878160347264375423039220177163532111610769787923679932559538362688705492239509125839438191355633657222348715608532038600173561561276871044810353852841737143479207637439502432236603811333068126586353130288956831041755318901345882175374976547189524125523117487291482349391560036727542246621080024567898927684013477261791940955929398892041853168830669345602497576669900112666437102676249062639102216906300445305319250624207647957655314608286530003974760673352244715249942165384163223725251907081271220827477153786947442927323293863654603138828994011133939435849658792560391456183359174715249251947897596184482789706093408740680944720175183577688267060958254051122163125766895540941574075555436059464757043425521491155873546070077607592472838862898867935906048759730988740147213537765745566211442767518969813339066949356531546633514346796553089071772298445735586955889471420801119858301655416659667041405456709222442633039868279348879748303553558359242265844805898348793133885139350355254284404581154139722783074309960884219122549136871707421067360012034488035039201480668492146684709916462030969349658706011168710211317219461108658525196781219580978462412036148696065393901218607596062031519481107041107188129153773752650650019824686966376989562225604216770246642954025832380412169698592520308321311052611183304992996196681323869421536790789012775408578066182235932765252143159846596450291611001262947934822925096835918128214599309294748798693011661806749244734862491880068500259961162029637087781743362587054042481942659103314066014501898788332385362122828792587514340788690072624087482130247371518522587043280599045713506706495980825350895258997248463665752373998451598025882754310719792994931068745808134629247611014979619778038882972244917442702218640479896634217391151209741640259517990277041155590572126325876342602990635060515739625390076757602913594763989277658305398193352378690932922936516723189350671184877287553411032987687887177654522734284585968406077560029338453215409745913064040481209286228366639488908279617063110263772352971179416322273526019392482738371174289821263799135022739004078131055906323170458233012230284597795036226290654041340430803713857858794633151328472308227705791568117451900412289391190249185206923643485968618532580143471239897082809509832395601356824076422260047250158129526197304811963982942489132535247578774548195404311312686748641893649287461333249253063436676011624582162535771355817305641322008646061913234629330963250165269617438553652440224597462028672152710183576687612415868313947203636207005394506022489693017788283421288829461328872922591725781192735349046018849051185692938384532189478830500470595951556364874331983425579895256391958853075150155369736412791338040078347418838815858252402697608064086175609553688451794925985472656303683694244911493791274545661861276767904407967122243710039326993626531495222369361482342807932503573638610763613067726240010147804829758927903004503245115136730244947724277729744329113851240684199769206764414335794913656613015567174925427740249735080922025935172389130296460219075430171362501141085663998326977078668789405359364861403475926637628602869911412611944006318350458372124412586286049913702737124693649872861999427726221792401071119653370087538398455321715075338461231076449001636666176572321649821940317770622378607118461152817131494914318337501817413188426354800692858516557919477379187963293259365372858671636704633637025182849409194884294011953698348340202060810664297673169123910975252914017196078267787019907869116871965614304910409956192796885221850354618025288263292166596551710426640775837263425612891744852512285558327900884164611907082126500877488515582631666132822787096158192239478139318418049649039333424351734759145804440813120863737389235326504205704695430766875769799735279570043085039906750662450389662333191872015639936735587814447048002399491108706837501898408115975202330409760347475310568106070785498728078601292574459284094854351974964284240088892815862033883002031265120956621534922357772817143763922285143891725304409450133216339341051181215008493399569940326940175950545305916900405520321680537124649068009404309319141630196374927543086303360620683000962185052183105619839939689338683590076052297248977874350705940902767177261210221874325929318630900055026931784759172044165277666615406499276524689038428133462238889686295850682095219815934171239904358994784556543936838378100326898735494958604542985302731441190468361596664889332705656453401499480122822688418715603683282327948360008589133453853642903074381631429570922997596673484678097679393955892228302188394167179987514228618560101059257988265506103467580923937528230233629160202171625368421983390636199082966983405945809091280776104782901229425555633747200612580236425715160776311750794451363930836985102260472055019032033718981758953167984325784696836193285414604933060530203789770303979028238917648890661941237995891949952095280655730124353642316187413551702910867930864437167811638802790120778735432127364210462031989522511008694130557719705085309249841422999144932325365641736525977204665879519292215494636123562574281117600578129769582553757461786731886891307928168616596251201832512865200198414545940490526028843854164142371930277593686002465974113913923851849418528190398454059388770312398414849735201415003990659058637545936268865732329100371753641693942290745702273808680111550527551395415558105852594047455795597587717597532350663935753896652594415334536548631668844052084731433707463899319517126209218355841551610105011028140320341742258745926670436854017182751409325011950087252890377987302126026204241562413947797816833133898751440284749365121912731564241624459375491718413464798628874426534986018146885984842692764157785206757763395386917003652679461533688782867437728253307291325202520234237552933886527464997202002083774801367896117472830423850087264499396658395719129882856574178607125288109927294266083513124749427351327703941451394262641225565963835385119527731914710643575592635356633267938936251509646659175920799551527253411347140457120684983765727793422642244235816761349361968270013804726036268748214389288660452417145062377982873847188956420807366240855342569922125444912804459898205037470842726795303567829657402078669081320581376479356033379528175822988879298022633009453745606547196448456807499404933435612077150846947528442756931861276275430171329894411091255562776052907020713917617816828715008917106157481965631015846989016118403976267880813074782697778457243417752969542691479890837752668936895526714089166346945813104132033131310485098334979078696131450350570383088304472639467076455802530749556791883970966662745235412492976984993262785264523575123035078891203988020781656375262289822580265877520598583972689338564121625393475376764907929359176872351376484675071982396337230861745400107587110055907998012802408005424533843446188050722379958622100906270982338906294234794747254012943341689948000204860506249210702816526618628756179388082540264233279399396234040360276055249515655511253215382087282486485584884478076010599095098167466006476302498751572748070628200569799215794235234536995782071055999174524808334242205990486064648075270170844353243339709567596034658643698608975358411186765532617642139020970192841631491386482559685869087065682197738376243827651501197505586665607619837176663922101575528357103343251243203070091527277932068156007468605699316725871078203153934786875516312230938405357661244867166466009529247432857463551379845651632828691107634268736260588001109142673034630104517709882690742518054894220199541730818337755554262735297613668448327651939074340723188115568000567655469429255885697930644016228127054557020710942147207060659391305463042833826014425944333548982750710561568292585922378371089460128593453664999040447761371958542367373762852434427317012121648308145773212452278679160545824754352622675204922557403994686211969925165496754314701335150876978697680033785252692792070695067632643354835912715380350215526680218353851607710716287543095425387822486150131055050380417616809327993029132405436951749724571366055697919563772564334269483094582676436865622993699345571757533913141979198255432922691344911601177876094515524819686581223582741080658127646926289848975308464410130734097759221674864157472079341852511571655748064315529254133779461661820610194665239836063391552344311578998055523770154150448309807636689423813785698614896272895875747368242578358013708535591903967856819036405958775131018491802087061586165226728503566145739043674787440110657493049363093694120636920380358161375515276047404579047461550787215822141007324330057846949273623744411232481018589226406268866107209475028124481285671297040805263513547269443407989449784703589577865407793971866051046354957987664830800718925332518975011195931812067616543440693181199284521980582155625620853446465764796047450441749954087511696135225350804562560881008772030040985132341088673731308876470310147832352449897391634351162866903071866916949022004646377292625342591650684889234459329227340857565816486964041877662409795554142292900707831798788921750120480113311238280369692406995439025673391527738995765951345182594794981066904833101287611544998298342293223868339136937797186191117803771503894194682883903219258900107658123302439820181332291196834882254823315665182930327777832929732752190345693102700168959775711052675912088457429532836150323005058127696822460557045997258847403928427695111145037523636095310910519110030963365131862342201244990240442231080724384641041490257560226654935231439238403941625212273970027310972006506322796924310653768725420982125401675927480601623650794969509304803834639368899467364539215995143779900541331988698018942625386743718237958446746582214479598450600602238669410061547724373428373371637420007710993976145406034488922249501746745375780493614546453240736969985787437299419714210179711012818093322736916597851453029411355973518508969021645240469058495393800343366647769590157423445069868752511392775003301037570061366805821038544971622743223090384718922257371386485391066957539381477128623544777598127702529093019026488034556750654635939094552746007800814738883097308281607433565244657759534442046078102677880558114326420368653484237785633563172275839031790682444703360617906053831575127648366755293541488254722374543265037080939711846584872441590215383926490731334583201039948689276983919804048039937615494864520148146273246370846199718358046722359485679890095083667763178072252170749706046349527869614843535415535512346531510738098810807788267578622899477404900730218652548870311079086740321536572808446424320369012080335498479373348458865787483267259195130679234278823350255624629846333037676124325144725372509646968533826527483808037158317854382058245488817161203638173146941255347838181755870477291279652456625206494000529261454224382029022555332116504204484547895943616059649653722571788258762366147733742993592765765710020756005137160839413357385107462965636929106289777047351223631214612951923181185601617416454342215152839392694150610872798775616306786394283216952065836584413773613282183105530984698434882211869107236586375828266100047838361737357856657831941648620742996800511621968032754149402140249636712263903128823744424754773866166834627510574270148154017720232613326771620127567697006911748336965677067652362534252381825813252307751498042050408741078828078224714269641474622506338102460801282799564953403857924973318176895547145198160145761798626732766435129469266620011830038712621525007998992132205969812556715980505850831268924647692587268861418802788433280933241286658446055823292846449613261769490512323516596521826026807481376202417879316619150746261953119221505206404504694406281630211896629899377944229205056682623632782340200102601615965323177016743398788311375522621876440203688934986106167303308928143515309241329732745955384798187160621490003357632228035101030530635228651487694246955033722982851600330712311617062983920806711374068046617090816910561356421758521231564068637764537808710440202711597414796794305244435559881165259061431976119069571809276382561365280874035276576999780522713196104128460077481358285286007320552046869383338243200284006837258140230012902404956845392010631908943150423942973671026145214460720037858623811291043489222983006292868295333681251614871187332841930970667827677914021874065025956769711519886627903447773151087780892479394432311543679182794526210781833035580764778340949081223094780966255092199492988109602472574187111555321337472776275457060562806322970858947659990584541769692315400883281622703529975992665175540809817998507422306750972433765800576514254458886727161542490753237651818967744578661382941426461675900896780478669741419195376614030925555318525891361824339967538229583107175843506683493306355691742391461813689385789528826179807075248983022619113020970288268402823915333948001174082128131329518436688337745664671492555150005471195429693711837546578848226429049320915839206886541556486001830828878141520382834390471474985655066249275885947750004906449017332991394447314213307328476298124944534079766055164618239663410783582910943059880023126545359238516355163657608732862101792721950750541148162556921347666893005294130494007266354823115329404601313814095715788200335571022735771379563636321751276788937002061632186192513168057288617586260005882145898781155583907937116592550868463849924700959911614233848125599756593508250049807252818868397721775008882312856370761158754164232757759858552110420642252338159621245634196112255679001143757989852555748811772965514382432360600129444614211629953854144179653868951805319049567165779578977838571427221794512271117624321696799937374379172596167505557702461193471486519667673531586002164988184731477448899736512320705954781848533668926505216257404817089283616281850034332971729000104310898530037372254135713619020175760496435196196793305939006691758709809314760807857289928033845040408297024783376627101736377417199341530951925878178981129166188924526421867412696834176276075230881431903989828954320436113877267073399280165744915739137872128718834852217994965677740206318534896659522681008996381310408776950705535186720952264345123951363884721567117253586048547118974730380122082330522767978529037314027315537665526451629819242233585700436859066486725991201223614265409409410781904128671936885671950911348640624469902694124676786977495305716724745364596026415034986365327700434904831041544213623299113218307848333950402163113015136401068629450771212380935318992709934135111671283682099111084853996966788987258060747555857014459677143311593134541906778479006010200184455737561937762194663142463797086086148576859778404314949561782837681001446371556024039214995643956023525953225537868604540418202199387841987651972613410470134958411663136591596485946609927432221656028608346391642639910015430338107566773967655963957668972140145019473544404660538077203716711467293542814363129880634772459544823873468902941878900650031342192900020095836247224428304567559831988277595756762302302860728557687828616187793383945813466743783281300630137550034517802258585413918960885134955063705360207269127771576356632661751030382548290556420882067299212466871696891021076069766825002922271641026343481125057746538734702006188974712243933326268447503384251437868203166534695754679023868768377753630264137331437357539808302234626385220061680665978697172535346502224001721966872602183378525155926351541743729309691018371411341093350494525200464645343855358959612906120226415133683194663324642472477546199098101101421298198915143495269822836494860605631341925985115102690854399702326196679015895551210095175986161494155219011320346625213680274077293192448706178004953907781739771617488985837340710093392290186601095723670633054188463812353405141658621673377710003839013587604665327877281736078912756012092263829456410727922619040263520490027285447799893582425146417147525525094074679035484626536961357893872218075088751518127797318259120849748768646696850484992898768400383546486470891823422027020984396156730826523043804345062291469105408637893987225305083856425750484828202671511422740020266745512191260596184480636064329401554164883025138715679975752680410200668586399523921239564389129874870120904300564343825072975538387233959796341470183269094519689150470928798510503062645801567764418086226646169944451183983278334630301046213119063094973816613360046113626638125024687560095247778370743798278373481889837435658735050829498789226959688273980482128107878313488721977310962861136860768492651723717579877675023471046490905104523328011144615575378147855731546139627620898124916272989859395329565675727063145429448818093270019205712475335686808345514503803863036882668590156388984354375623618892058728074244651041320871915416530716487670489028345569896134502380532519285801886475371174329671991704398964353017522064020123636010098168281842311372442399793929182515240694383308865381822994443063792503851952554102311981481079122419411545245309283445052719179250250043779710228098604760113087726534310553030683992919278325348000683007285508831632539497458557480970320186577322447863052152823294926122963863024244332234011401966889797841248379689416344357293894186084664708484541998153650561523180071934609494312752011868245883895954539731243410624907274777152565479057781199130352522437727452301915463382225000831221360059257443308033338168947713039072915708124338071223474115900358253391809900065537657574787573656246788755366834036640632030243973292547078273996232036878456103912581692913937810715617054596743270391073305686257056994495449683022383865857995930326676013571491613070842827079488053673028478415780244516353248150476375779790457366697692419382036222598904556659064597035334373292828735876547370497810270999141049346517531953230056452901277356698577586986492406067272713684532291571450677783028349702564373403337350652009643624586085671531489076128265142330596698256676637401399895371502172180868904986318562986173663546394164891870514233189131984088433071375484741109226067473759578940094665578380549304467920072330043967298373694175825925787093884271936380305970026841989661232042215650273336409003323729447141698426085205877516942623580792072151048389950467131242682038419234977847843391513979368426023010638277721794068601996321317379234590839144827639533832806296985029711391587981869088135884319995646529545003094172659305624691541435682369208095312400449431420514554450719276142206022744549469294508466763817218206150684905360318094858172158699184702656224371688232811654718939298333717242078150109673643436951286964385405049254113266315298702233872603519179398922964245540579880422181377227697210997275738446367887735730437884823918513151713638103341123388239505637471271751291259776731229609493240767552628309534398966399047607541504088454410918153504755323258136688668334997042936723577199839299354754754971073051105216356759183055995614878191691077608964138621541018938745891444481290919202732110653770145397391109859245189751589131332784870912784376741335451887693088742932610443094582155232832019889877597045561508412028823580069908203254417949572840188109166303075359420707785913159823094582676849366696010776872502419981227576361197779622056661599710020882335623397984186859227238419935162938693050753406319266023871536686995144452012308555918133558035184465141833614944018644496608114182154642026917663688891371136312054928797039845109875705817134454710978474065247539131556671427908813904390184573572047824434133572782648295414500708916415948701704014827405362511083902253694513387723464750085944968635754936227656729613504201871147827694934549930643704856677697451338388621943000539708954599770606434301117201402189436303631009176386378093164437346355855563916602295444324232828409041468097546321900969565436032274176624394863925902719494852729307969760047688575527130476699165134675882044171149540253048845181337898189384164890904101621213369949657892399462506425060317949985222510906052543558628004622639588395032596426432820448725748462200388148898655731075835346018262956970910359557656577509301259021991169496023289754976443033938143654189596115779721876809593810787972488353512572866743683603025798862088199278231017428494409880617866566529164067433546653704461177708591395167737932928134560129444939745755839174553086120282053885154723655356421545692650356294679632782502814660326187241468133011823899950351837561943102777979428727742238969439728249981536450455540332864905472460888045190148980852661264726588517584563772121579310023100266373884414120128338591614528140010320284898204528422730073117244457456367935139563829166541348446952689802391570451073587099898164441308345735379618981135279200659992842369453352048522966545386144975309689402002355210278222178246302670829306689655440022464872024407815254934873111031365955296721089897584397273748812837688749073002079947341056940013272915297506351707750257959288883170295331723493108444439492762446943770859628858790412112287148641450535921711216529493792846728468561902516608737649089479485506296908678450321230479216512823748438461084940650365471166770117435857125647539630053446118502272618994710229983883283307863121048893823204859207702870182296245833971755845326756214906496124701383373487850368391555445389919307283643685654164017281489366630815044021401934560359635766081631257103620969609435268641562836445605314992078509657164197720810023324512845530416507956451570285699102831985106492829608419892590888113500187107979918532759927864811904684235565818387007259037880190976394287765911778218686127585543783276835592002323352460039734232236894175779503139020065975171893930579997630706045434530457626660939238684539393911600974094688020250450384809036912756459097718308473334812231442695096301860494993585056740938315999228368869595520554752083023544987877558329148464853452487053347694397714888293073480735370866242416297716985536743370884508840613238163623617172476295196884172032291125127176873654879998762695789629946245611840550211475250256378520329685281082461080243467730562146262579713328095954213732701539154611288114189428362215860633961305689587671548067243816652939076183628868460015875985651097249154660478536401809997062183179906055802225251733134435617394650619917306275495118772084158446425981170107251189111546380282013375946806531984896354523266401365946517229034603603327932823289464630619416847862747897509882463996548534386059614895267790847663581909482490789524500990856269721345752232239900638740970770127165412180087748465419925026607343078450882894811433186022166002590267183047247554402180874595806942912333914256527945337979189687518198240510287957462457523335127487929459251208697975254836455267925287403043634127953174981560882622661766755064929965476332053032235228278674318999253442886449916497685493087061562707671708396623759942989494964424118392107558255007199436881391857520694885945168291581637130706221817824485206064646342500792031664890210207412715553723116830600384031761021467740281393470282629383486299637466617176926381825990084927686727649006836416771915007165857943303349597944903969888733687890132289896593101146596633827162062834688816316187396375543372754207430180234903773366907129783336623027513977146754916046663506273923843342841583957222753455651874021492654657698700671167982562752348759317505951860403919290523980714581673471899328868086421301720169395965742049347386074160779677706092383924016705335648783867426946435327799478627718206256098191889424199570206993743403093035425267427041677064736414702234420449508556552100862742488437786210215452283118811259988817819721502001156233709395650879971133075377720687445398721755127736206704899378611219932808883034070403465249775160124679420807876218233573189236757400852570799374496351270499256970279827450160325666398604597489148431988056516651286384831579243178860381314887057141995007965245301315157315551732878693163045203994943872298214201331771390304624558035149114224859661882097109743962161624043489232742669320866413853153528826674094498920151346957830904051103837311917784297445834364897836409140862753691799397085965820740862390457587561994406722327201255353496831276318820649582112774633992520100653191798420086656862403946374238133213773504651552102473549250201370455842786713069801800006545790761733488985631837501073604489386037301746013528750054770120027041877660111695147367371611586178295951644574977525084517941181630856511660849826688324726781798625900566092135727657723620886798761905876413769278989172180932684565402771761299621428220029966177780237965840776316344514865376140777302807811864663316839403676990370306794277200561264896115357339644873184639240258842723726440397553404329551154614039958956405293407640388214760506446446407427675382467268907591413117035765669285385952692795191293705788210804600676970026219833586710973844048427829096753824549454076893038248318022104514168123363554540618957369309184447835523051572163050779551844612910167895269440808878747359904822952826453451054779285218830564512746189980523673174141031730306856348278725273476363096720862269375697303732647427710665568946715504165478487185284745796744156417545186658604023693832062971990950470188306980132382223449280174302856851360701027940624891230218901059310708309118339574325219797530843338292140952426435445449299696891611648421699986276874525536553495683414098736931583899309890680132419459867860452795326686939926245796586332434954271874847758850511156691755629493122892423062637434492556365315846645166696718259460932515074554382357133406573322832467155851623538115597094510771306338405497562870690094930873234665970779013041829510187824347056103593397277429753784334868206499115178567137957763979121530347307594509012097034183089938660671737625005313486751404856126099538613104776471377189925246999310622296897584188299986656253308240275987183565589396306891862963794071792193327008124589986854486526578783813167850834878897134220176331978968441788738918699821399279059544680121887937638056648621090645140948042346324805706795229107190139822436098819038846212128663376451080414280373315696699880631701271822166021604283497605035069641265362000583109267240876993108132561438904749227383874587521879119361112835226571075568392375896203640204426262507088812843121716015089900070756943890355977405057725747766940311555871015799806855443292570543257059427523946407740621132803767124324881617413978457917579172112061839448860881014783679997728962094220267710722167717255435056067014150716877597867318058653959626076770226524617391841176613742635821475325874714188465900831389394014503880469521245074894349447098286066629693522392482957957516283179800930685501927789416171092539292305865316668314563416209905084441786214453534842883899550668017565003447692513828944673683759174517979941978032152303009685548337121717662317325675830317752491962604062573062229253418284414782421878399132419887121277963433098226487250442010710849078502094566636847578733915237306074545040749982942838151906718911812345312282298675185601199238017757431032652575178810415741098850475184274379375411901404650359467747471964800990273620392680332902538420718037498402492351184592384861767571053637232362652423392469868680082877066109657714440192870309120574512263302905453024552184824702064165940969571078297703324496508909806794312681147536004188367195272931112666108077980293290319540747830766664084706136712500742956393979936154772396306905632293054763152507803591921391926702178506240724221355726383365552210372741833975819053705904600149113400465738644301748950496967138324902664106352821417822026233232262314416726146087091474706869745380304604665250154810939121333613643208026800756682605344541043637387064639362915208350747198700560979144867231301104925928553530173831221375597807032856340700423657044809552386767396913741676231874016067536921162450980376103018229043843664977667880650328043744919346295957334509567081595474959065059311719586353806693347194014974033459193063610154436374684821840459676966942655189993352099766475544264427564564150878186227839596794963316954701307227015471309072606560725351575751022477229990478652041690971852561998539628855200213826626228722148642747727251237664906768012227060393774223233700749944047260783000625348940337394136851859061443805110492664840344163871081275673054120432555959579015611113682333528757318213459191498980617738305337383773479206973455724971846558584656160969203293969207242962712670434311513996778092315870016973061044877065617724907247080026487790909272767257785314886574110130094127963416883219156726067766591747467616907234352578009348254770868744243105919154164179595455336140382376623624293982444233588625297410986133782305207132357912974431008400293209121402303217688456203909866519373558000235102529591871027451850582887431080265586668544568005970946151944026607712908014498655372786721392668922514097879914607723681769918460516102508452642085444220134300706081349382105726490094772439155454912701740730250315311398933787425475278225125430206508791242305151357731110168843535337257908458912807280658836866952353526164535138002168098794482592551246704401209836019679764489901741779101167793492862694854625571438147783972138314126732796093557749783549814478724147939387068523491263772576369523094150491624865117758071683539114676115621214291951117922156097761607595562120035985332040983332355467999922848835624484377445672919608836953167591174159195452823187152240013322370518327645243038413071308604462587459487531248789389341394164639319032077113345878772368577892044775468341478673156077103509979067291324787012832904153225193315943767920452391856494337545196774256351901229167666957002397678872317802840534959662525407790854842126488528248554060001668454061881927728629300734077594712220789252332909687389791060948792161454136343811732903182385429920265683002446263459641081241026050104732774885873114922039932294556485527679376758222340464407245378555969533343554734854157107050600588588014455067050769970377338088827315021000756618085525748500693299614059846306245900281257149149115130072077316963736859006892849678652685226403536747057416258371894241892774947869376202351619843478334667278535185026423167048722388691902756025459315542296038543334258870789603768878932449140173278914643867887201925976956006195933952803897801080625547600953521794791666314469562307739157987396595889337500628490355929271091705760306097903466962999895015269146445376252696837607280921785317721797676432635783360857403302125571783543004580898667421942610209977345173570985910924279867222541090545565998317904099496825029326489812847617120538999380652280620607279363685011459565188987400046942494301402555431215098599077857223232888947678660507369343145416885108960015976761528100370847939625127956419420780284672962889085829961042277439096084519018816373316453481582709852851316315234794214794364753650994405299781145084732895033621036127280398981627283077755719436580614889611136052750169677031000912108943289955290905329600902414207260962643103531347744257944030031040601668978886209284729823990603962688629252671075423568316521794981911175489842981604139893649839705300818771700733521388686263104421662316584536914652335619178482290421854442374709812048072748920381113280581964926989521655300227407345415975848258899135725906724966570188351184790536985511550168871395775247554910767755596046657037785880972332049336712304582711588076102487440890276528776563967371410201539933694547837186925253274558231797375393783675139616689293166947742024524177537867660144242954918671378082850000458596474045728335804910111161455527768213386991739528649954946390084119412196747655949134281923490764525772534596425965881608706909105650555538671645816801399918899397330466804068004279557013231407801960765990167347219320776172982870636899306395815107969589611528747969098049573223680940456964704326453354672134085427149334779230470783330927556086740136202219926902944736749076282379395586622612262525880361332157869058561289367084363116734141736728170958149017737189558685177986142634153067647603986517635560345773016444163383717879818327829969912153777072427914955709732130945773776547063910180547917452577972780728626764047296918901019457622981853547498681688385625573935696018480288326190696250454757721185062649653426198093448147424465791342875588634389587182437754101768048552454000446218601065292277810372448201200139927342679932964894566822141434966608387122783732622638111636026736651047314448730846314889495435229636870433470617894488411640361691183537592974729511480417120699135795236131752214137320750121500293760597907994964064551757012434705344861983829559506184877449774168620374553200147785038400792978265039771314574777193955718266139841424293762658057929146080937779162834468427401471270021386542137302879486728878662918030502208872410926133047660110855344622202858925608090742820101857936260815511797023907760857700102370822056224156243696366400460824733998228566162365815809953422614918940238167134802837006440514310749589690495498721421799979772369727644359937984706185477921862480646696202137110994393379599030926559103425610573361892980903448518634678768771851155774688753207593304249560315816195678502392321088781114190054128742136134565939520634750625888049988782095868152157033738342421190339334151550660526746561351912368620330454100373172872469064338004476319011080790364629487408455032259686253269029460115303047613055135536329190218357210408456544284623010699660022394674702262851152768692374379336464098095478779567977348042639450879129131123285200140705663953454383526265188036701041969352327987553861910531182464809688001485606658550823889299201061461686747752989097611909234553409112939321930227605124232586309010497712953099399464489378987196329237363039724001480684015180966187099696541668201520409263086447366535854043135497269662494359679362674373454088828152485912457559634609976349715895454097080944318634197904988972184569283740082391857840619111581277691688195088608238410682200281617839464194960116878544119356156762575279683956103623370700772320900879409169137532467274080214021745949072812047266371811687599878788638926821533907000041078276336945616104861295725248667258996911287174565128578242400196911094639488022209134458202674559042959892143085989087513665263662394692247302609865815901821707699049796057638635228734849813234515566847905245839541053757489713513709239396134863869362374874785311183236313509735756806009293566132548759433565593537885034460185149257968417764236326636166261222953408580161352040215964720013791449190805118431000889152705556452583116747582852612760599398315069037458241666533291983206344094658938070159200012243924140504823199304003423720640530908972518395387836667842580948752498307600667944876953775215622563808085713222519646844293137737710334395889484622382763298839474536557885741215416899735794338862124757989464944030714655649112188431510824142257345581905403579728195112329769806941063045239638227690608576072085333281134474120445862563625199331793272114738985673219741057285943640756512677133109673455094649054378924255505544805959130922361933396788718089755082214744883560613900390912086423795209521877662007666708700719231217210825585470291374699140219114748166182620097604409932463544511500466861042968091691617902881828154086108159991019660904859025618508198476015892431393055932990823967089442195089165619912379374591947328958334629890263213758622419743246566195016883551282261468871350685787987049405724616915398403608868254752259901371164493348130839047586669417745835509335907598386245984666195609983238360725991874734020517034275600628462062686830369081269091527863768782431397809547829294770972573852605486109555251422573832503788259668821441491375145700441720359894265084074196534405369041333165486080118769644683608330084461495398734346329614253442931626622850423180333047361973766442065403659739120708687084328389579525168268781919197223746447462685976223139114635760374179402919872947452435744554424327001678654070545896548679981493760468331559132014350972842390185583187616248529045644469025445407352059980397259534627694677219562381836871905026035523237433693852595302497304776872992113671619201566625241145947667995221597760591669487609205463514223300464323476540353212276074960159783097797066981787066154661735875380406503910591719640628835744021166990442263677972448090205370213882287661585700072788382384977956939030063813195734551106852859928358493799731382956701364573454206508824323131631062825419851803344107673299373823326144531296282277304902001454872618326977814333790386836738003561080008271748204785061610315118795183945632096069980789995986850178945896591423127832029884589293491501023733742339002891563069846410443654086263007611211052038739992207601531911211356144111926610460783337348797469359616632972342658716739005772136065894834096067447341270330465871601189893048518421151407735395991322022107280270256422206959794570947470739195612739201730906939054665443115988897823088557534694523940344253924569769320686916542783154170064711305618180871764579206205723079950961663008085215348201668262662967994743501324139146141833530617044523740235508045915062979120204434249827946946462058986335442580680795944411947549660299882442568882621271351289006041850936371075429602437105950643002181484151599982529959356727844522550766512927521631615314393001662578515390309612751656757633094545407169108178196045730387840196493428384932853911329942651028357901392612328679685019376833483598181014673852733618568723380358988049157421987522837006036830778577320441918601276431280337953843268709207047350410080746330610239624945285385041114323841317369063758504342355739227342839528869061377503627885108311041156762047351230828714756802400065985326231439593268928532291814617753174705585002165691322833889938464347716152565162074708016505030758173850534334759017788884362742598853856673936048902671186847869558941162619887805427941809918794522157146269369359011876095671855338305488633608406228739334120098081292358721390700101827292767090888958224478531111229134782362261038776893761314999452167735199951713072837166549646679157260012909358530266576069923056571878504716762569595594078651690813941961631526646990909461276625741929081073871982748907834910131902729010014875605470594729524968988100978413578576091394950019223223770873632677422163683501164368522076523837349309034062911774944627761987838395105191040653395282093644706735457961366469554581602817047072031575730116782657792728099486774657391277549399104029976410304797965558597107363799456691753438369721030184717603774278706834255110850403710799583189382134336961523252246982469167274878059538330053659048097482155967187986448911384577361619218374704315991229368533620590817748998630242111991470846816794099686677397452077686656231434801488864040814083002224208240013602729714442333255043627021593032189450396024828230422577810095545307859409872454710174551589453269338352572910095644263391027985290489449138598447492691056186879455503836702011391979217182626404007545135962922703552111823554856860260834716593043573754512874808626553721187357748016473730994715075075204490343525057721835942110705780758157866782921110129966817138980626806127935136687479819781572796262166308538985473796544800565813323258635828348988568406090518682420246784426166385961955501024951031730153023087184755442990815119799261752667170108550089322820046275020706983690998124171496224171397334280515860018396005727988889104742219475204120203954517424803728467598997424735855093670294913914148749223154887990246544239533379955187619791075705300689194882670295246455168803342882053731624726857450286404605849972231545650070626380519880414907274519895095532633133123670091663428724897133825515541562746437914429404133011467360327078784437232504545277822878201230716223611378917057579998359084799328625248027023871878199049532989000102481114243147277060978552880629319058278917765952450178245225556634097436159643569452923441214075669948183177671993994417860028278961186301727431837822545594032140252002742155343285135748992848198184303002275934404074305812087745762371673243159858235039227579908682038898437721321509436954628838231587000728132169351625187027314794271144035041038514550799784957563467375808460362633044795443011514198511236792122807921768842388026053938190282498907969132849463280512997653625665540062825760544099872835261287429413492777877674993112918099566259441184406354281999796143918072736387496963532963179240370764139372874226874157902139547287145441787345550812034011676581603347072194232117609921812405617444558464043224235977901683383457021986536761362261844206580309577310226748008060716265956037418139101432631616815147372069048452622656180923052833643049433655266931564279946219099410002020840094170631255449883614166969240637464247257570418788763084181155176440302959434054343194408779828744618205719182497995845545363763902779999245656167340081697970760664442707959037086436863367915795587535461686790733370879697484974070571033326477935926254956731586968686935268935274441532731617545813846007620186369283336106153898097280591544767496170930046356642286641490866502640828249506474930964029219524694109959747502283091777244725408642830957895144783559004672300136369370651463535590710579730674363704207252345357684935350137775350363692804473043566045610579614166120240054621839209113192966495894685906369792012114805387195474135659658957184510213500021236889772667226465244020797475727056150863178044820590975590582654777654076323114522350056999811638738162967629792780892192205179996611887030186572627356811259135493010106672435923606216513548984573548431655124028149798651677976267404992318504876474663550703366485395250112071053726051718354928758758507747495999594596722199432989750134272693696448809852105743072593686932784788510637004839684025670231641952861713300959665172128646976523274326097247376495267373896256979774346461869928702146515168902477444240128321841594781945372325589440034598997143538047301503611725238029298189690049923606326228230119774384714558662425346674193213684239074369295267090864266731935446614663582985477007932466510199734865737875971598010167866377968621487647027447802606716980608364479500098872613545445997088809575675785426934893160434409802676010866193960857256033036208833024088832889042486654229887754930888725057873735382073249540455782797608259447294824215289219927017956570222949144583845019597451330717890481362427758463445756811631474804857150675171304863292636228981778321005241700818889871261343684104233670290751681639063012569507543038820150648272283239803403370299412925683396418419687975182916444083119365273907140913756967489643515738631721216549832165481975579530224452232694096583595773131218220998407906749009587286427713674522367856375744158249119964835403242559202856561455061227216780837730221444559918492978421695435815482648133003077303313912114979831333146298831399809912085287296338369373151703470782299564172331517543466325062145360720347198020322058655046004784423011450313624627595294162942023553445950686447401874289581654405945848553362417657973471047641973597659213947489439015305182213118438316325417463312600658662655930833476405792791779026709164446315253832479260624222275024515270777328872213548319077996318073483750816568890258550851740477298716307304497347817502720823220302758947154033308264594872116377972816488641143407259304397662418402109563500842931167547874719121052513406661047747398359218073685639453320943640741196776822927794191609719950576725518897724476507657791335735757696640628432720344935017128918690544348539529629455200321092432968363799871331490686820541520703812049394585557829443941255705004586678774827489244013916962628798569616611777912594436248440176857601126192320534641602358532986883502180185517399066987793437172304442444084452830843692211323913526655820256528743166246277605190114079463477261048603706087141721103549418939901800945874456263998832039846875257453816480574305269479480953693401616007603980351187949100527986218137540333405535380396992497611705444614014253065146372458374638409847202475141079746760608725762728967107189786958769830878126183859228533010090973016845434348313921888783496301995283515931443638853005355705584753083309146098958541240070504840221713705675624828887990021377158367489732379023983690741057009398894289234116272017037387434631796971533969916519286598389241298691205439179750017548775207566442294182881238675161292730436614801645735916193783340795010522780392418481590709921655337639173721256498280836993522533211959645703846374157668247702935874594609331799638555285566127052868952369872199567496318888599030668617763665820806057793460152593604374069954837714444955365145338550414451440500133524552650131251839987786748886331328946041922758312511357390430150747731329121330873907908393725336866787448364796483133454733268233659683492221670248160607145337532020231505754249297494934467517341166863787502337966651425762833182540998374746309247999211789440971028810241318264606167073142551102795063567402163522713589438261068876324743036847117588512903253898883785544104147622544633396659285370745890852496447544579983310587329384506973446647812133970817248708427497251082358997125711390367869941858917277286479966041153725715179847954718998741365060232540728353088713439123470890481300541291213683970534165818714809519996153682639577482147058520833801289783116016370339221363556208379597434680141756902328488870469729460818272567275565124313560588795908213711832950000154574086001601465785308901320392044099846226225705698435440968636368862335670591313412311507542972987404955636647804741942289855551112616930102953697107546939341224543248122543202875856432089090686599392977489110082122474367322514588314389446779859832984401194208801306698724326028066835934548525379410158630346314667443415059723179665055176984918802385947258465437912647866487928660742964364576626437399830066648420196286975960703594903154352716491221153297332587504351527873978541437255187228277401837927860441414887060325005319013103994733823373802641840799670000017666601706639125402082156489510437529764713275898860585965476597173672710903457995155463856733340487294851051087019091643357192641810287156825968277250753469865065139974064915066167437005881140177245135665472063646783337771390849259432190600554496805372063303521300512291297084898540899247844730170782813172803169849372268146059054839163469431844584458540657574118143313733237428623239698499772530983849286681471895896477575467819172763094631665463522500554167146836625277419405000079479909390529857462993010945525050255416927392596825303249784250510480102686392167605620068183404039958031126807319515782695736987477692678005512678730789201712879921462227735256356784724650130137533713967116878983802329910356189934620865054527536402790864178926020111584648924060465255642779953029462786226545330397451801026934614743371364656039698471974106050448675827634076833741983209001562980943345751597758331506554478933420128993931038723578424657441612321335585957212682407778737293226563941909520878035440268005968815605503099934324427864790862395937804302106223773394222681914194296311208767207309232163419645067174473283358313640994920695688097580002773264391256254816593640107569219084895689514778330764997101083392013789624348342002801574288683541430231337480023615945862972500064766015338973834337547756847625875684790302720275015073836758161027932542262043747713648044989579236199396049609567684255685142035595664415043408098703273232483092473765372863065861314639799024481259091337098037284911623763011183091690236635122661518569716792838070422853831049815599886147790942245061969000516862119088934665600827319406443959649858203478214460812576160114626551880155069176978379123761767912577065206206542918585369811292926440090896134007251614077881649807381724895994898140653465260047635044823381253039315172733015300700116908880863171794151791744740096274739833947447772344754139680914577677361360904609764637469541230798115679253277494768352742003649634426980152165914085054796415893617133043398631340800508261793405117847756401694177127065604937278099814813092905866641924837174787953102177393298036305594652922504954724017852780475683069117264904159993292411881297149165332260053850392047873538885589839768248869566148315932035132199342394557676414854985199292242652680675951401023148220361184284619911106961878553645662518864838249991119984033896296065201861678448712658719280937574468135177679926922914300204217292765172102775249454514202721756710915712934589632218323196195284295315200588593836385057399450421627911609150859397655885390508936619992398856414760805430684871760309750586402851374341345749246214987064544809266749150852666074647517244928828103941654019758035979338189938152079477334398096308825949315108911773469496968482841746832850815843999751510268594769612463788259278500556204155072921241595923777256826924929641133415983444445492793629475648728463611022967933890327793822300552294358200672144958546253847851584205721600269421345893770010857639407197552547962399638043721755061612838007880132216943722829287549244196231560049720998679045097919661472604413358861270289979088648338164956557061562232836902745935873552445608656380900614905125461058527361648517932034468124133045199330462959096310843285085637107304977975335861762451618338688663457205067761200058671081751879947921316410413140021988847396759962983510521061991933478082251181850060528498174567671615647398384921016566121460467993944342932155625060175649200649031129974816123615242921318376400737105548243926975904069788210925559366553281949050028829883166289110694471433675461296747991155966694412351022948098819769066436283032284319230668074599988359909254244608560248078532578562629640859423417558800734585592811507235674879197771189266992366410066463394795553230712278657860422268852747326739038961232371020808118682074957111210946686888954018797406481475796729082746375377550000302047026846736634007505893441350225127483424716065210803994945374019485762022421001116330155894722076948224989868756322494502890767982223229075553180681854753005054132625331643805537986270842361230067893125151739465769759186732074638945193812193715714790400902607984716348288123490431491978687935758908559281825914586263718386783768769912580655801338730700053225541846363600665389343435748168552593431861704578671398287226407767628452618338586622454086415347000964985201908369607735214097842609334300188980791753714951555707025709786908527616482750941332157884555573419095527583895372569979870598902128564775408495525438633674201447777154341240148538166176969942530799477074973563585555021861891480189791217224391738775528223825898721476055087030294584123710810895740685564617650848099385196106345317735458566582638921622109547539985837476405366990321166088956102689856588544544542546931792672395100301839516580183271744195174368210382701528396124537397852400727250982851596716864331701201722490771755561149895741881237011413473370870149928545831288574169226146232301309165916653226537480133969304767439095773994349772248370758159796173576978954091412461891908601337046458699147700660260287452165254456649095035185595717384541807089187840177688625173938131750121221125444047439754031892672544723939899689584701556706992963744489053698686041662992836145461493562689327489006994597641927794796979074890041133971385056867633510470182761622763780099690965688662542202932887721314398383696793846882772535275711117728886909411516421103172233980437159328653842134414715316927556993673385265023291411101737661232280136083966945234886543665881065083100872254515731817499739083387128450698223643691520376807636587647700844738200527524339965988576718806367248610456968676862954557309670566527389172997271596954397193220381535395555753293639873627984314789107477102226741610320976859653098047776946541685131943068464938799195523102460460196468992127981616751226514425858685921053042884657707736966038737811403559792552778998795430596163070607596371663005495868722681512532830092648941999505270178831685787564036896050997627472186120127997499426533718350501076796909671615160132462053941560883701805102828967109090241591884651497412496037537110619412501953247146950418149268540515731665204525226836175181216629863906806944566387666222266709777194588165574813340633696859970066907196316378529859008193982351585803298561953835366999970694622222538710714200226804577539345928148749111073812145175953099375717701741299021278798139098747750461694474712943181193675294125346240905076710810002745344076028514605291460208345047797407596805457576448943405809183268256819110399214045405853906935720893205852520726216200441129206928592652272524647194586220401728796061311471629583844420574339155829481046038812751645530121563677224809824388037540619628651629551751129718651160437362008493498013018566117833877864828321332018839815382861805121522768439863564406798439355011681949546462467616763019978469591305588816861774483481024131405373291807319759822191632245903501235734437975951323563325279202965109661067633131310852087880325718591239021158230141977953627008179831165559721299092949046072773221335987304063672221384950187665014953073454592777503848586475126071268155169727577281965494164800098958699792773089066742284621441424244424638322778678967305767642860514625680894203141450698715227758271336447485733655695047639401829649989610364823331671877257992520744589847327454270444013539114138933623665482415384555332050086925279926461330821684820353776219618511207116741450089870655734610093526787994562377650097148756491862863866743302688145717811513494539430980418102653307638393212669954183181237003754309288921091093420117276523308067015775893692782765379183952193105826631325036890263455693033761103158314253289841548860558608981196365638138096019165788686746369928472570080651026483234949396470902250850374959070703420518225214371491187223187541457773736676362163021276464551714229923130726481483626646395079291906665503599199771609336730399848875483617476400745648347556739260294047683510856137297388466412002011205422531174451973097253137154944008826147875837733793968083637867491168037198541410401909112381105362298217000000031673074098159445687224566112485648153506805872250044161832505064725904777980237119516382539872125284067988377524709647151410323583816789229425048949353525339904722105582009368099475987982108448904345004142791612147100185760227410838411537299003311183728287102249830462663837375446913277868608314186597856356927440902478158866576393627675876410442502518714469586180426843127804025347932446713031395793966093566370818021113105564662044491284356242461161639260610590329314906312005648388441024818364847481419962499591732721862905213763702571142413446454186265146220438775632644347308846619765158648240394102820620670754566210544392528311232079072340365394649110352090639036150035852697265399577127122932274707908524493883951962015890535757083463752120181596446975555128359826101863603795948788245753822739806782563996863761377676695320550775160268065974876475725940811245763577867659446537008365333181265245561242935906989023664314446437298627037818361764345708276191638541346513834697628414049483056074401934521728949283504322785479298236607054523721505014865921222045524275589139061601213779216202328830013932705908076651396487320246243237141131576229590557464442419222673640217281767350833069946775568432730041902567588481241094081273547887014226165153868548627628715958477876032706950665277693041195744067893659469180736594892604039978459326929001228399208194723241953599121615830902994734697153439626138973239080657622456238934348845596482437989776560326391533045628122741571332717291312131340804067515329642843400837414598346998961628715194671915337545073351891318425459998766765104210249134204508547117485530553501016619448944116705535038745279963853824624446838662908957070790610311066695000277167962116880769336960258144511876856956647779322955533695930776826599498331781487075317766716340190884967676597290927832829507518946518703612027630493657597539522229238819031035172884531682878594030875117798225248377365523450585552366363211524982037551687625572680942570257316439878049613743503851124835138104645085891292399163912752141225085530404515131276187646641488168820488677801768147075548596572817418359966951115857190221911251709659871329491192363828644458985796839560009831425547342290754149684170457796364205219303239774138108639399627828356401963841843971896594756813141472496363783252477997249884594516846661957534432412554203964159679017585750188727908661625933375904305026975631648626832310465701677740706430266516226010569581003042569248680412996359409327421815258775687228372364428796150139198871990707531245283296943824436123857685893712028009568034148403724829664452157910401042704998984321467974150914738232851178598430209566961313264951901572355544631354304876704948507007627333708813503926763773081234758354937211548736472886533455504489446115310432001980498941416481669903482649545122398010002551816114983003670914932633258591053383250580788965648614259174724594715155597252555873873886999521368105801323726543707160392910855449702506046709445943546831786329879312354744890478123785029795721664405419179705503367764286198576884811117623082177894393572748763113018367402501309615184466615584468237193927543018402165763009785632883605709551702097250766117515711210051113803572167011378603692532284639207359389707315797599800302677388237735451032881022487098138964495142464773915445198270933357525283459199007876960315422872021868755402153705669687686615093303287286507908425751837059674818862474122990458586468199073113807441433476412797257619256085714381547727917059394763601663916977247147792136324955202047034239148170131964610249046037890477510929003343517487976247064614614664733773939152089958736780569684294305689818421482147928072099784736420242068797416218977480357806574588138951028715438102848089307478243528198195787427151909791854236417120700977107218499970466854499266039705166725822879792083463910136892635769111257923230723899717572074077063255005739939612109051283735636115763195403101525797631353209290186799122131589698337875062623505363919741792760518826154985258525036989027143564142434215140971697566110055122102394497223170687065617659335519755826443557069601917998662628135410130857314158810072345488170383565313259493509465798006001593919063417187179116222493714028634507812252057484646107622363154831942615947406253568086989444029999800114056972982051075496504930210314804636184539458176015802153801634758846377325622427964714394114583886498175025910106794184387639890241506370067337526497244237049329429371284058516898541850496458845955647093300237193321852567695056172620898104895133166943642248230257464633563985677236300525241077684368889384392922353500932195252172428576756415842651772676286004359183252205057866760681767723551746656958243105582081583263459923589839718926556789947148388471453281548925725285561577500910943043745825647077017443856266650929254832967843403454454254772508942775984075965057334951553233713798823110574993124132968053545603083741502475568889690618702686416845326153639533989792533888306136419132547136014178429974167916833997494347938582858764352336566359571268888392371018173206773919326989847408804073680839257900369598074692624275220875902977885470883489314896017945506380118618298161874234115685133521643635721687672135924392866200466393153301777390371699490947066325300056640309804078667812528463862002567334187827457941601108154976186815172745806520743377447072910362207723665474220955893932975211680147779383988092392013688326504653819818604191595745990890481511155044707194106993267153187246361997544441625700860950393386644396169636489763753471447108183955227112908259794972478454072646496368567442082034016395107081077514621062747559226748145059332565573256701904180271834554878583973421318925626040028382543910376974904428348845711835985761971556610241104519125901575141168582309451381791087922732458903370987300227986892960181181015837807677720679521861409215623062544097630575646848648009541239506470122770106932484476616895620330169839113075248081189905375638446699996322598921104834025293363262524567862193977004739438940986355091895167368997974415075278856208908718372166268935816288312185523081806984604437547102950396136332511561861026610353407805877759690694557065249518053927618584564451612771003000474134281381602274588022119199793741712831838646263129456695128684699719774267057230614885422841718379975505432748185885187916218375667417178913496332778228734639950152124181662554875049014641725035059571733371100884205594021433514471715250163629345754409248976399322452239376674816668757776686324761417244924644830422235274093441172687070390941153462968273706113765401080407969935220637683454874710523393732999704515331088066560297423095969811972790992683674736877453386505139485426889527785930435779179386929903888141628619269799954410334177005495740916036860079596478341295576743990579026862994935113445837034952498304359633324320531852518528068891646151728573413050329107819287084819410724718007774058410324705419739061293182522843005137000501930749678887459099558097432811425061534266560691488976843732275179700901690413825734672071597799091766050310662611272981188262942512152555495325619174538728725886202143385003284359947008230227872689273253549680222462816922171703047648612273259090181749059206879678765389026139953886567220104941229071328538965375249447815501609763765444796729566710244660078336803698594361007792365495253627307621452073901234002513321204438447090726817700056031445335778289468884726903237825157140840524958504898557394034434276356863155183822270561243481510426612045222335344946997816135191323149181555607667587835502220314174029827141402066671376637305344160496934554621474999999388869468088398458602479741012988415138564872534039438895598650481584872740657728111108811690480701653369701813114681908828542667057156731726898898609452710514705909713177958414962543409413594217060251748605145147547171614593313356375883393110125935372722172957781062537671360097345722070705588770435188956365351778822207450959647455120349322446300986238050342194197834964451666877533033218965411632710740673948256615496100185510158751005141306251683168623274242438455738496430425719831016562468029955315497424989373131261977215666351177663818456172366164429818067904447016183219719111249241952478462105285655120559032741880970543640731186799916018294185986967247658950709177761440321871451188365902905144111067138651965086088138932775868276539658731989940127526624206334038957326940692389142792860785394988137646102363800048427937185688064904710146780906555926542641194586986386134619135996088470000862494873431912627381975191913332314920988621262167658053960218190686692563229032580727287925710347395451167137428256532587758204170885875128988081150914962926112370533031642255541794683690219214978445132774776821040574369509683399289594018520868885044157736137307663753415550193655692313977880902727050479016196319446586026562822203898195552269124219389868547139158807768892856628249008240109821419076381055898196301719364038611737300251100013862652591698911745351242692969261719991874577654966120601253316225840289706349102704691819258819901637629878081619870074183012078092735561287076073119101802745593779549652605084644900649088395672938380352545403716776106491577832417863494237452475471257446487934058695759688332630415903895162818053113533670756727820949280831042808392949962468602154700682547268079779794913949283043772514576641994244993679712757497216215942941471359044741436994337604786127833794549396788876903495534557974986915832277677661915269056256784580473007155312197482627735426355219812122734698827189114772692208616575111464496942570423185762045950260864597876994709603821980075453880126820074659594347419771286912663584585581379362288994434062493476271520957290815309911299018702245990730044762530398851962479900868940167463975100057949859005817684047022575964481639441371494383415752271529438719998314448620534805257793640821916613926573156631559419123216197205005973315525480083265177137534994069513896644180862630216917727176003412897223506255812477950969985899162800132572840660829299013839644393152317126467467818588573106308796872596503480242254952949588911524180835301969405300171620198128907719452821282507476308243019836197359773793771698206516500709753883280079650378454228316686522090289105267769466945647281508163562253969584293373625139347529545682032859569149545096122866315719432840167948182146328353364893690735194829176931186743912610469824589409729917110512791678056604311947075177495717042952438263072335153921103427984140321896442978424171840197502408881347624502097202502343463851415208946076210663892083027201899720222293503736544041957262226446047960671269382182860214177063890861586224565193330399594673152889653415668661211919579566259490446140444517625852501448286617898079501704612581480452766167401302411234844672652224468849314565507765149007712108932303332257744705091585934130551586206945045521428733232232411513164571353416619574015745002043213791637136842435217667562950358532536512717495475634215635658460791316558849183522944609057760190334513839863454877373161574761581540086830269251037577562353529081055026119495302145291536090785271977742959879332517574760854084177337430354417312252257364660738974328844815276750466969155160423923280934603602578511603720707708864047156188599111086471093801887145371127298091643546600159394342181749170723179163748300493762171745425692054273476631013875854471798946652921660869244002158491186337577707359883573781380802181060661153944278110737135216944499667946054283132616996667320606894489487269146318916091397655614799807897230872883285998965525799927544338795716700504429431500395854493547892070544770781332054382581879610879690212501763119920497511677385583938629335214745641137604674997281109719044585893768600889366616955029239640141688161924729595372718391608767701749467356107711500267307567224256205559950180067010765117350580185536463212255387778624389761072476033741065783012765670465177555029900626493514560470057433798935774785812238727909026344214812755888082176216037677489099104587042181238772873870309610141614358298825118069807122401954185467925155371712941758202907155174431985930495463677114504723130371127006582658131679854931494601444217827379158676484959211979490580698185111666990866984427814484065645511293626046464134512205959481732475943984568765370641595237650376528979055049486401825766711255025335880352850381684240948589847786564970742639769635828007569050139034421492827998174251248926830333210443037907413074849790491534663447773341967019253688237639948942303682622115180652836091581854885260577264156265821264081139749018782497202315328406074281644588656256188606055676946849111759618519416352652287969621871358754802148625289626601888012344815643462148148012525246067599646210213295584790165451560121935528967925828374254068045316463522086734502423326201126105519704709214585298865008811436535095813712244719186503390942527481418910385614684429411141331124435145472987470335554676702604510110155548137411424063608169312116749041121906942339555403128624224085559604508608958444187015823357367473678318418137606263885688332969949256167797502519208199566140850880417424553983487617417358454089184823328559942776670204121987007014997659312971049390625465629025696525858412911533433271964162299195586759057547059881716972174687319077153431944794888174466937177707429906475057722451218735311908256523915952991790436697578955710176002293599545053665849040095238033471336623883017322727867223730203433870993523204794583897659745315068864731069510170314310892761822714975371688908072677094424386670533499306710957087046057110222356315963852987818911288002048467011595322795869425829145681026794319164814817572477326185619360533253467527248869626237197430179646597636887255184189200244324996661134212341413213273533445350849566059963165153158928123226517026552399001510321860243201087633824852909065634312545893365912138005244482205288462350904280329819180894380902205376555220844777334511179942533165348796745025804320986754217855034028199113486323155406992563815021572709946894251122042008032441947254670754856855620462078829921331103281812634553009821206016670568864634927846199927006308029063460392417085702914901983859415755331289854139637848943898208595520744821827479830377955413042376780265856343530812240382391701581059665482344882009649475373988675805404750658380974161754433926464005303580121713944271484640773095646769086494743680687252960298900142794827640980775642196494707431776705074214393107545172260050904065199554740276671375461015609673628952283954911104157815820845935932692574136054436075578964849897455709040747276249670531469895027557725797552992696878060122565918073716084728582026741017659283106624866247027559474817224269129541115806575997633357194270091669738696922041659516549797443687313282793189083953342292236495729151751696195407666721711848658662434621726981548460326297837217828870755385079290834910506198429524844904598768921957273240945750956343047994591662039570238432799089767600987546811546000900263098753442347914240669746479266414598311789148893621177892009721338107207673503308782724809000522019783355652226745274768330602081415982720347500888771311727294028875446958859817211340756102724953277798504370980692804492346278947885122440128769639055520742501410341970753374061229153132750185017742464257556847056190416833864426513272008479648328798045904633502169385529393043728102056300485411393610808901944659241347938150365038899958992307929154615939973039109468564366039372902195941226419404663782044677344607971272384383361669265890732549541032214186403154459412245535731469526926640265795883717782112770757458829996518807362255398899049331603192472743209807115735175125936910234693003566297982324829292116637879768069411090101463968709807035815682846762503159731760737157317077756454856420075713038058974310288895062627674881241329689140124137840542931871331532613316172894375233000477509705989597145822485748287213810142837832636388590600117593350326625133925433819804792185707815991599546265058414963227019342173364469378958765741865373372394463963275457111785400319037573445026906515184753057896084553894009975032035456827337005615090597240512573199950169753460850396092808056162100721025216068980093011796368093304131484968336790284979697682981394260659704831728141040870057786734737337040052033153801112250273527573503552706818335912286265694380025691291113465292924152242863435387593074666675503744791307218114847947735272428407012201825595324489652114077772106910785833228792687194062670063635624477870407083343567882837628441715821684845174545875933990397542058365221215900838195191149180758934162723121292525719158915795154217044175695409204843901676063635550609516876227984030432723310023576577012595885378251852403261076936118162131608038249591815067784126820336232317261475348459164728338781392997314550106428458238600620884764876531146953210939669910666262132614031436150985402894868565994617159632996332105996301111333337876734785207320066808249989079923512083215348437195359597214136530594186385323952810417912919449114221985827246547409668430618241481549807019532770876246071971797662785761800340460850180205213864405301182405609865853535232985049719790989443002725256745032478081149346484959262915147516981060507538746534770901418754807546129167835422277788494419256350639235989051298279323584084669004691166252999757757944159859430637741510382648373881678897364533892720277946997559774303517226179151421485502190841129698501736338823725931527785331258613762023717123479321074919868824131741106109614273346116410138009434076041500283822396544562038384898745929702965546549076270089142219712760456034958749862365651532689462662644154506005101438747227691907554891635794077545127458406920741437355436714747237795247858667875987036888021888899638035862321628232851782740944876212784715263734534378972259570317864648384391299772597588489944929454860462228438685259896436226129481534963688266877529990697865965804188320146696392355644308133590312737966186501991947651296612357306307095641654276818528100589122863589507273136855002757305493617046352145533250070022660733086686258403301028003749475979720015245943204390358943197150688331629472831913892736490195138149924547376648695796744619491557594014403480848294362905348096596596259047858849801338209034515484852391902945159677352153383998675434553255921022787478753480564749946443626898887506925086435318142519627267270958347492829289579009509903932607593897196599913528111516345926790218789513602818415863868652364670310499964495093902597348393438444365362814307839629641976031014711388793982667207650633304274351447028265413282466377889484548933516663965826940604252635494771489931631800454312216504339067995919743122610843477317818765746986442586380611543345190440697729412628824877592938987970372857505896696829910819787243792833226090885127727549808005242702472039870183300871724152931261604685554874551138331391642895960282958011359838404032699795127483557917145695915919247723468190510707979837885331653739488906682418345532946700788492368864766625436771899205444534540289950655915131779457659828785952594209011553635770624024893174802019417389909494279083047186788160065366418978606466314981313267887050590244814455491538891165700399121287579319606701505863548864527275944325544635366981698758500695369688839010018559181390070704198778681373676570123117775142879502211220420231906265820496437543828415184498904071631129272582458526013089612375093171490184845172823585042199178768566344262121494509785416704251161698810141801563191642987579987436077233640241982055506723759382930818813595916546363154978751439483699234849312818160360999887139867097528085169470456398864951859239576173314077678033117738176934799847986838993822638752096186750976000142217996594227799495678196666950960555543722258271723909871832078789782045312145063559703397869952996617838927814103578382430368597501222239812183232061506004610867361442549150414422187559572506669024243783979133450834640797606040542775213307593004496741002071457593120705558763326711689574012510868355826639829309438236862227100851407453251348598985333031964217666411559703840763059172377083042187770482360419458676828522608125026872921863400461927679258738486814373929380530832304414853924804527350531198602679752595721493790531381271313088366897019690914557067722275888906843598253136121613433944645882290135976619762108973729229453294796814846099696462559385706227375497050320558851070987599614576869261283091074879467691795387026361330107690123197519128438566305216401106712138551716069095865693399881198597388870963228533279209169794808766431566785400861465935050161817329633182517755731871961533436791768459497868603745160604164219675585512071564327753589951706348355517492102513926765966640641376060944086872920677844648872032391198548249960005162107239617813740682470916055251428148309524153426367371209802648002322516058933792495001350356729008665278950035017325592343314040416090539372263464088572805013861554420362542968788083356217933146911399589908500312629849409811759209055987485875378571417945110065488277918966544640186377800401339977857604581832421277921659263709626200669897510382597672940500465283758719131046508674649019347617768761810228709297774994638985544133426648761902462051286193624958111396114463965540208950349565931516959215610192743662540600463042174495165291803354570766541424165301450784009664536222617160979177957631633809954781387364328912851767772366196639905159993936549723882630081622109310403263669667754832922784954032932324276143313692053136359589164944022630740708569989049945305930712452524519995676304655950018122854614249716559794765505222666925870904450911243961564003882095446738783928716900579990863767766993557930804888139246907940376178930621998852501262196574247515148819618021080049736407923135686849782005326677150690449034478511255057171487141959967981113036574695517552522132152788366590660371516788822289166260412679380939574140075185150827479718587161463849600524772051432347785908596273252301027280455010804844511886603769262179448673951811654623790208292235573355064510853341051851624753428531834903536447882624547375179010688439140075387510712249854905917775558807623200613340270935743855337222257921022340873763339837126533666961899413251947805710796528666777662612549816512109129688427453231035315226432958638201049692850814305957306908239839402739157602828593846642659197091063730117349158528911265733741331044198949983442663042592492912236593197402874319775037855569668024844909166117350414862969337669352444901060102928452246036256185615713204869219490935225579161679386028795412041850167862160069392927401303241659852444566427041281258172181918511343516466532644678624916418994738167347591402133372306530151699313832669484116243942683685381446293714443937923075962020025979814074163712430623668777238423619974680613099987783298681713719835406792846025023163014509303294002167015804501620811007722150959117951737049587753885354001097203482785860984875751212776251931472441860555803171304255892070445152803454281132625568100559528938956017038673186745836549460952270611023799180744617813598893436767729002168792321142463786918786942908982654253768305982590816520703612701992507532374623091179724044776713230395978449001839117657697131645631445169040732617687827945099299164138703597487610445473000938276396742840519926643866378163961504426207572480640621619977045294866851831121635822823626860517116433240593352488628409012459000012413237373310012311684514219227790859380344492388239510901519084145166046742668639096760179663546748113762719088959454921210594340371845938244499754358631095707677178955577435195887835206136836529625364743484070947211234058200472928144960578771791137092737500970902918938802210177274525729784485303279454753482727073273607685117560047665346214670928021382106038652701627010110747302370455566577730244273031830423321623948142990183261146644637986944729666236158642097846404338835423534486621629226604628191957047108322328675236959944274691282241452861360739175099502801781972031386891947999300103583812850182171516325224819661464456484009988170194393704415124975332178696919353231946173716488719910994126649465599496859113994475232335369159271188235668503519464871053925256684874363342080544048134947233061775894853179781716295534077834022220819074317851639081752437680308177503206584051401625309765265310391652004586812218655061511559028824438468175915845611669167312319479561128767982097730521670981912639392504899406168218991831933749028332623785194523027016753748627534886658909713545672346771457865036641179581089645847911306813373250555678416737054131237474972124122247768777013046527010876285746607879916248019310058396403365962419343076366838998731932548104004015618703274898067335041508411665309297685036187437783324080081456816769145393321621777032156846053015197693984760716897261903977550646427462749872542758781337374956213905175394829960412781836650379736523144227990705217202606706483631181062191143333473819796694131448108593658404712785985724603013935103024389722460026425923975324116010353840058705956999440640188889814772377151430602304956081638224690465118286792644544880115183582441829164396777266569051788718743152937401857678807451872902143295345816434922970582313510443862911332379404464827345341813629363238716448136379138791585098895919347398377604719704462317406893131446303296906320821313514162907761600904665863130141875653607533317997655926421902106793513274944154760364262048948416389117230363791796836904037041709399744232617457888194804331704533706113522016801637433013938418959294785034527132965449378630976994656222866222970242688202687521319561706019010044328400108924218423061033277568317280555296404152221378070834033276283137468756677064977753532587002994796652515487248753169246338790529823710538363332865339321444606744189079703576475857717172997286244996177239294590032080130156020823658915050010033306606048470413770167780430798857997728569841797599917439682102425811710686725649752498892258587610869917776310113362132729767478827510452236910670966435349917323123884834410109988904531311678280992827541053451647131595601383100491030570091690281303835919992159829989895830026220612583627375739275791991034962783043000359603054719847815007166478670104660735693861784334691863443267240204921012239722915070476844355054093661850147455161267165973402406463167226176218778740102069014866957771957426318075709292619897552164518916176174865207010366630805208371843667675321242860350869512893284532958559357766530275702762541793006615662066399930770555724718958070376060752618900753310546589800109636061787488498711964520909132035001309852930864182137290286689988425989442179793812761521550516604282633714226734951856315026844986712064654876309110702610485621179977408919092592372948891797609250678239668231961154218469225425272719009187563188861321154213463108113177053007142711040750231118084807294335375613488009102072385810604931507304573541406564573876594021788353905790150831833291122252118957934260376124203215638806554116654282322460825302415142934611952603445017675824190025038736464019280085944270584952422802070995194870810275138658049084364461051708946175848621078941706566029857759024203802804460096759567175901731523706026290208355669220968753353586003834791349246359198201263625785403547818200917575469403438721150680598376531152869604874146305478853100414203880061322500671329049358531236191779680790331928231109716203135499695990021744060470181263731789576182873624604535323128019076069057358952769058529723913380993947928124282025390693402771628943291556237640873353423636603205304356421171633267852000806952080841404393207929278477243398994395541581463746570488209342298089519408364765984862997516502777940474521884716205064981083358917875684687371966362863289984119740990554020014071542514844151413273319344882713877363078083097283706664895975267847531762588367930108527659203864305600812331329921635435507386632802018505230362943745729597134027958882131304431638805024426487123654669792410375989020535190359827098392104044957569859015900729470176602464494542309847542268549417614360341009885853086044671307316591714970523585051627213218565902981619119988782389114678517545438197940911928152706867642972440386677392030305005680514307532643147537335642231755024435089668132388643777425876595102445052206859891785647552297665340070559506759478205503347256749242005900540312712786412476768481268332854524928366562855768684207494486413625790997497384899336449628705142494443844283665937499791095476905896515192058138704463672401582215342629091285735421394973271878764742005249522448740008404533517236851258678651355390305593907500875859857916045800152062238285665429738857011622811356375617921849621177052211995333099772141367534397685530904876551271827969145058407257584601534298538156943100348620263992431630116415984220463839379659620597417586842993735292836480153992944312911921467626074099169145946400168080228065562472256544782530542245984991565020813425363807367729972704683401491716328375876089095739414780350172521901684081855527216716777916494522315225811547439981764773239352918781678875825012684452820313441499096505020614178501339883719923033686510410006874884747630323592411445744318452170677633587975558499434534463514920504618407272640239009012568929048102468222897928601626228036935977179827442827511271863428276139074021531699142958898720401393161155477078024560976677623320600195366806911349822360422522563920875157350271563034524538175032871281608637622229866970861573904367118576627076952703490579299586086088726281934314285451346932832755443407083325443801195809493550901189320778671659863441880184966462514635001852820090775136960665734870382749979246280134034207111212793568568190991544437597865379778434973478384574972812938644619917753002502659732527372968757410795098846755841279255527501519871097265898805686332441062237451854279522321146778907197628993724641276938456250458129820147619795770796175467859391405458843102299968660963811758719573200480113958961649690090611954892177744505968789639766491783226439610558062189166631082384048257726298630349537646358356324148586636620221513022719889676557444550515181485379225383786396953964887571932461428180634603940653147423581534156465457435062357000002222382399700751106680762077115650664459062714584497564795199248890367499617870017751906752152752041601031019871125747241968828685963791920960719697315288292661754094605240058851679139880245087257543160920819642632027477293155077905095167561834936536604812072705053456789232599563500483524412757969480872979356018075423057747438070204149384963020929490286616869989946803044868116689369480714888652138150097729048455983846317571150650577216974694458240797918644512589990653994722959159183035780452959062222892191041493928780110385082434574613968460925717590542963493534204755929722918662951964472858870837672469468276351253779374341110121096366110684788189511996580920313337320803450966365048632022009950049350731991790569001493801017347646450265365507051389089552040621736987306336186728516928557286373949764213461059601751979559658230952453854154640656044717191009485095799970672697390236797112463427185229192678757623505226555995481002758339861745919612999870633641804530482398448606040996544032324890505654017722693434494714657165365772972156455541866756573449478483323500281103152366493482131428418543243907829016034185406779879813160892116930213720787508312442310410179481184280191949070658931545119566919069015149445613713496272127312933201792025001011512588060028915331543203174171070124346247531734360396190261378388133108728734784643815308867777531125655244697038766507994620029105478424606849902738553463973406560600809379527174478374347893115376771272493510024119668233383892368871243502201611007255044801129820552468556984761429590849726183686815393644542448743337778847470606759356552435255924480471759683507467766495199331362787781395140499838355039563201031687838417618504388710000252608248642229910707215462015460745243901847834597647020451500617717144709957976390892410878378040266593586629794003870017926740729850980650407003682326914399714585570342397344422472291227209074950589277646641496026108786007349103043687426703932927847558802801025044044448802209777359032786985947543338349347974935902339976327814492839630074233740322762733234310626791535196430841032738301558931906414553633230082354296837537830617718627904438395720187380289902153952931970259361968098502368075852917745279302906644134599268339935292331015024673168781598492388510371237024143765381944037431924474552609376197277367811526874391184184430870673243698587140200048731454994142480490868183810123537612676552735526276853158279125953161074758189268810314988380810133146594065959571819561961469762696637642559266386448886207918331481253152830707055735862113733488252869821264233811569145929498676315495377895624880021396014052838142021934413561110975046744626096131432906679649043112113593515257138066023930354263046462633394366985419624720508798930295722192613991808909181194624793097424136347493507126378633986451005457292387157613554663923480372827583126284117502633322732072076575657472132527692850883216742265632607353834127709659817304211727833332228550930792941477191093656418162255990248834442790258393850047840636602190258035077419192419554186182257561819378780813372235557857477486397321359070302209507749150670703741894864625074428714818607822068945482709557809495471748418868327122711540745314095177722189822039508957210251547150738020579205462391508625513184258954539843011255645913920836762116366931486714574261760588920124424884682535637000085625284904563954294077248195226412688745796480232197409384352058731898910832653499433586448231918326275283130237619829688455655839384482342276992512346176610169425001186680792731821006978364242070883708984178512502493470286399291362570816030034291937684955231189210612969293215586361837112968303990991281571611385409417178750945383458619533612619136374285405193160377016185729010589417218098766847870978055433437290313181147928068566278207721618812125334635098581163211690510094305757724542437795366162221557367992277056049225255699090409045838695935478400611036781773295813138520248667806161632275481256128108185276146254437277541002874356662701703312361936428972358282498642888035988369176201025180219570347310566716220214587848966110595414760953587778233571908683348684505879790201171079950380565107613152686089535931841929050161650027899104584202285958501660426630832019337292270517816427780389919027008138548887034578097091041953226615235560775235026647294377846086841993495441902928589094725624577167566221713015266675556750329730900455883963198645746948292021696704435644006447609582967091273684514636246329875473857299062804608378146541370442946093340033603641349150393632827080452574772050738540661690879722290226358254687129578941186971010492142610152552741747994656933153645100744269217876432918468543075519505940768281983065331861848100868481110332087550903409448757727236018372528511603445684961642794205304126031641929129053688152413640048398775047788979162229870915049392496646698775600086213902425112257942418206653089350919116125779424199593440375351285495656263366677816518979652986242740487478771819512428938427185058912976813978755495915877565820630620596813622515280187497942172121720892449647469430544469492094523998813072731351677845412828831868348154924199126236085797534047977607773691466377368209635817924688053521828966843628574934597841145717086669216120388526173261218787043630338168500650247294461459147142543292167814329328416436874876884024528728528971587453115767691873793630070965384413719276335283643303114901676085684729375465641880545767871282328779462780111558678122713793560967286878937005323171703356649361322662428755174418758623949051414251179512796433480018344221068097471226064107162403497328744137605385673454020940709825779396226220594959102052607889567341926281407068186389304947233576029636833501678924610030362090327958891415193149965065252095789932338151472658909507928062861933950236219258373282803681464867315384730044836758935656402901199706217878087483025461058197966482598260546648052508371557570095969528691835780459431984726891540996206455633429300731064883038646593673943181926897318500783788623184829625215053439291674147028169793348544524828537353523039744954060479122204437667536129969658371216121165197561947179311429924302275227376029156303488132324589689855008136875164904565974822026909545695773727249461313298082219325445638049247330721884048714553783043607361848571163266450104983344031727554033124345893380863861905781659074617546213078104160216167864507220729906088876826710827533254073248200810583634153769423967980293054278337069793003045449368523174239281364822034227850577825125017122880405270888239891706013162409241838569616881342487912290272643025560480302047759199750680278143237079981683501614131383909186309040345654518899986426252692477392195742921714084940818829898865822517520894865123793770858114914047844153606257999310175254722917822154925360390540111738596795543474278298986225533170976812749682987574010149219701541920796033431727493766570620096954461036957303966704287557946350096062531278720796401878789301822862569559444598757571408494331059353623642867665811293664496200363200007744045289453806146927732332641020751200083648990820493250175319332350813183976302940988054732835999530643846384632080121085930388231391192406484870780468355159012313701356173842014667968012399952160984326805880900476732287634066336593632872843173780411145618491926950620462475681597707000571547803753770295924256547726448822143547597707302798673057732284820260105607460501804320885455086542719720274324004665856486620057828091459431900846537807839676230382945126170276895825606036424493504802391661904229776871931167172507965597281395523517502223699294706986916389587004365209747343685278904948476580320703825546205798503629159307525529830130199726596697900622346583743030162831859878218519537484678309037565792319594573273281202323928820556079286049330941436096452204008957515700800107508901065107302122230965854825799312391071477320014637451748386659323213219229965293171889295077991115538785827638227525756138926163618517743589056692799233388779608132632852010620903582695109089062969583566573361619375683759113135056467419001614543836123240742833875611225548737817026895581951329403159264738522443099609611121715953469045317516180513088823357156413387568870638216188666742453802622728791514083023040628347354982188649515386518872471415246223452935322291530921265336039391147818416541204568144954360605573416753349678435515440947013802532344169396914274047542946474459498060622661840737355436615975208112032222649612219621305867454304815567729960142021415102438510279775533063762375820831255656924493955789997132161144217552577324735751352557509086593750428079359290536421136611341702105097262175853005511271709905263421013013614648940720911831954927308021948341663006515806102669183934639014588987537017597765782097214947134375162795281450595686784493472249135935101140967954117682096810819487839592986113346921704979650446659435027988136553524107701287584463390247909760688596740081681081098482227209989711937257150837125991653485693940034510060112252557245327986257874052973784984715401179626572811887931764533485075367455778829462573710162135439113541798168121268856242400891564013588020406833141844688934603332657563731490731288285781882843843139231310673984674955922999357539070900526650271138410915808909423776338698960237248620201186492893819191969910097357724805786966327608130296379597152304136714530351601335742996805214034267939342843570035794901752405935584280095310568609464655373412676258771908204568016009283255176419121019943960552238718722038715336585696290716794780290284272810446217459098784948535755279950337995301729681448812068292107793292669701483110043988725778706827732445568873575408012587257632169590618070151807554214618207501707667911069546171034798742949710884160056285961550433714025448664130437933459687997521781304715182631228626097069269417638300822503622479335840756296444463711147917401681136524426609489276685412937512370823975809149680961802714418906536501404961933127860958944184467132758907819473568476095295832043072338740678837474698211157644583707574632691267860857853308252410344595224084136474847971600748501450831714026304049937122060837930954394339128076454783126021069885394559478961275795276564760685067372581712191748023443983165702929681292946985754184200730814866205990230649862038989089167846485849213063136816638811619484894505950735803342516700238139962022332429246299668142705328459551571189309963208946008013142722357934084749200220496116287406418517704405370119912494670079771925285587303402587787925796086857594406393860513333625483454878445387278612190216213554573133973026009340324990960977471282033052004766387215838779236079436538082747281442110576988711789888605394210442177250524975809887650247393750887348440981484717670445810256781341422316766158387691205987519281167862961774468501240181057431317201218447172768942363436409280263459484430232677348686933890545495070955695743744881513364122421204632951486243828880049170427781228804435865052081918264617951704323824565911606514772469354445475984430395802772087724084296766257088124245940551144165068340876036333924904173455555589382422363868789435543550713621022476048903582234043818410893930436314892690730026613052693630156058131467999390366845082691872536369603521348314544735500592191757077156677308687146677373688231022218871507176585890825061919107949664784263500233439625380142602495369647741648478745503826984488007399873905175323558658350373353164270030692533192705843202914757408414576635114720385145172969055650675306785519040118373019260432945045859919526483204646202703196596474915945316624171807046627158362353066531268921774159436797506912518344592274778059743189181683180886814704443695736239193328097576598736049425024260800483328290016227922796564233433690402534970781501735669498650395370334190628966846558534974297986865860041073188681238531004983221208207262166927214077294932590316034577292778295460111553426357187995487427468651720210841156229514583760781835586046039946811729501037095048402159384412959276910530185333616446199311900999860900256858445807421201439759247400817091184881792175494786148408145760558894911825193904395654325187720236879553495604221890802624692824425989255357063837456315464344537417080635069045688986513868030498540198415114714594194189368814734449637061589222510539089268688989912548885152712570106792212573923176993676083259964339986353865477539842737068513054075525869110764618462469925827551392105400527743240290570087111649554574799215188029815927746209170473618685903170857455759627059131314087690742838460212706538549754982343581975144393777821219122740416673146177179522816204167602017468787109716330453294289944923611370502272438394841376363662688095733543758570662399071661135415068656747085810527523556814314504036029276219189442887960329382560053169791804755569795275847929934833395696223095227782320725330960396287182809317862326924735105039719888683063042716806989281651937059600199548724879656331006707030516364592399392679634169942032361333203328594447053144606233542449344009949840912723300646183327762449803751997150820589518936843963196539844559935655223615396724651634424131222786133058329309791956327083812821181817867564078444331393012529387137462274859056110228198992575973100781171905655037686697627885216385410420996101378068854895474884142549991997397389900808311484282880072697931979258520945660065184052298677233653567927845091207383763746879056816180825907971629979562452164940975325566966254495393954735820600180691775003098385385951041244724515246863124451600009481887552828968551604449645372728413658593568677996719011841034370627680769543378667293067881540469308262412450114502634825894601449313818254102707784432573086518025522014323529552189875503884941112627824672966183256071239310758096785398010844560573520183497171448853917752557782247235557012027024227336179527296268725481315033350422227314677938797026460241179813520210453652323488181041092441785716528418135255590579334639433362351079686816315942083664044381595935790804590168691530918194883628180713035050303731561342902813992341377940253219905463031898703025243709414118267789658810175100608020316457476047041686350210890277126402516529082583252233588020353719287293429060117812779690161532821845807145507962037009605581632792357100347006411201485652947128936392173589815431841846615131912083884862613177814163877688934582305076918446623231093631857475387846087693917843314195961234517400710643327565627350315038107945726149736145471406608797211054112460295797561956767510257016819947486895991595490070211851295695066950031779745744496419041286852455582039264609943508693677408146457644084333500901250830253011885721743042378612278506607047779933294235264108825042689698351052740306828981257144590132891775092901205697255264275802735707414234119843232555603973682278623518829747253728914825637869517530362275872767461238572448282652826897674095897737332646387970994293190735130119568021271015120328450943886562740794557447946638294496514392640764385574098570363333680138915149194052336128790339393002440817441757374808810690126914947586966232531570711094586392649426943207593936100575913181876821710863665214739197822419902660620578135645309278053738042899594304028728686782448381235566715482377991840062998302585613264209975050041294884811127696434247521074160932352190120683264446182266701915688834150772325551004334955211399789413253560941329159481760516994488673236944874748136671764217310987201460760132199438608448358698826591009751927970779448257478408482932453291200972640810055791249900086600364435853720389245901789777015440674396401982542703688505483203266650232555594167158976636825785532531249775309902616588451016417987697188820662348453206654701859161526963887780468955031712536717745289847799579177318045662249824479565538492669051837403244821652199206733713913786365454050231391279809739524137675489904164327763668121785699658698949740210224204313967199076106973234325481880558812113293824115852671002462529020865555070445099501343656735656396525498973869724218511169925308286545990470972329497055886953516963226948776311575072372950981573385400990047709826848375044557855229109058824198528218824327536597068827205711713037477259141598250843494046929317891654119805523214797132013704887543432417526101986496329469696072048344168297790887136485025239672101238283964423707886521119708613032020240128072228396446428385075300017457256459933398484298090718724276779745737776772950244454830224450442028478223483285488412085947270446536281516456176430347884404503958575359882120401255452432080694752887723357697400393341749134526191489210054042885935349989304534929925593703128511909117958242188398026818177989745376236055709362153569314770124529471965104837078499136101281061515549017828254599084524051294659456355065705948812174192425634888624715641667732535860576599629961423974095683836628082751995351529108044882052522053266281263597333720867389940521087684700036384554631008079631096738213962111883979121125256565527087529934978821159116520382223366345219693835750385924590882603148609347965404378997140964835198885056107881801327249160398724829927908222560516752143421898633232481830475111615988889962570280698439943829490643534122699233211530805561170118864767513181123390773542960645017524285300916840693386618011368177605517358614686006476651313726045092776697506435801955625704403019060991580014484406545242679306988413610278289965968612290070478676274437502686044053995350797899937360404648356591620404686679970050272123558340237449241563059810375989643568901124988018207860417947721263267775536865817085795886827299519801200577992493267954217854487869413791432717678187950815976460669791193070997511897361412182806421128194811793964430390652405975377118878047354991048252017505023529162823690238551980455277336953396610555988560094395765397857659436233233917227192347094964915882806142233189366431932014776973415578604719257494955096344650711316514869407129635548818860976172478455647890454351376259657252066233777229473231773980922142536092224055749620280941427026097742020180654325421851262675899735757307430123079111485707977019518358158745996024455666798295390722494665716230575538321089957468552050133281163512014234108403370519814365517828593716125917750496565825942103165622768215130534468466246293738588727124332366704345498291690116016548057302949337371928676126420298483438207811723094880206289575931738535885950916020905840246699288014695491104630813804658388434865755163638680484049799478868521657835343786135717038483605179444426058766151402686102193836918091892447079414816053276564997504473383745903729292818001540269000666928509922837581456264843141994567232985860598605566038494179049308420927899059005123490407107909840867091508821537704143704525154234742664448343771312381779741504198797966877795930000751539773575199573127097484613023625995708299943673696468233683092151331295068337231934563699365353598242692740894598525267064848670646060656078874009367224550723131533338582673151763113725713894384371600482548810133426639676779922012163182480106270499430629810700336183577875620631126463565896462595778268224886976702289641140568103198570700530586806686200058860236816245098846592993241758432770396482268330446597028368037294124615571430538925771200373568123498567867733809513256828189235824136842141022186471680865741003609053887876115603581366310596902316444548224482372334433429661988363353659943882818394548950644281527832343043812348168937895092446792628167419422822632277428618921398665239340194507980046951663564653992335198447228647695653232810115849043272402683530110606709834384682752882266797005995273039285762519335551983118415519051678699039126971007584177335217360938412663732416913905318161606171487134488044218209416931353077022478497865684629518540173613210970116608322935669880607027224524017304373034634378370718070575384907074441523345574319080969431799202508680005593249351156813285328678962891008573829972142365549064907433999401685455449448965975872474907963042649879372881176694774975623783825637902554602048957723568479516576818749375160579652796308613986618502492455461846114547286629576024901195225246598938027372243640267237099103582710741678976021718109580942916303008075074290818666307799502860647378396442756736884683140160108631883599600715966432040167277215782696751777247690186446660165727779883837244105838612162156530741440139506249660557235503359068150001969219268222435041654675601636273651364599172137787324756464176451778023166157552089502748258596876731611020920782900962097424691452471549644718375570225132487053386107183421257068455884377952668649308247260724490668755713780346301699477311478697135947768612312421752416767990583092163461939093256145009529738814669532391113510562492162361471443709163516655681566354298336051929339593618698754139018559358805208183865897221081739613881809899522932724771070768754292806419783072461383691981983378009660755332468600084844698275917020404165503846652188169674366960524840444305745206220715947281925439608148334074762493263635235508381714042094021315589836450818157946884651239425783535713197868191845786976674698245715113213590627565481606339108922024818028605863139342619647996345155422215374090649428240203741205649730825449707112458805703522762197590678450573508425194777528162210579508961677397075128845221079407006621727778206584750964728883243966366704150922276985576064802556902625519424707475872497203310442578505965457665261001719551708358735501291350841594869093578459587285787766031281661205742188813777857720601954974967657969451261934429137383156846975771071501253967048846406304620439720233882211239052319855484753254181822677476742756651775536050898609288778406190660591818927162431993510483142230628691070583237491906271569855756598854288585820951282496243826669147732499902211585734648935060419252109482095802527637326071649675850953124417415405089783489288866270945856531936731997454898539782796954312209116892764915453831397836236571970260599954989928783074612816320214911177918106551410455930178291168741825213802072508625881633750103875073804881265001778904455138502945797679028107588499209170718838927969424237676500370132837708748563301160402682986536430378131892784964114576745115504152610594623086529596219899042307463698410963640424031334235701564497449955848576031257779782727397421213443634601184766872935207180366235688458022055172672847084775298173336032640834978716415038311133766601279440770234072484578277927575066821586852982758000859868312277216400559852847665022785777620172176401513806039194330080928390452497623987834645711588247236818664086697800740019164347434484815059940187914103714611962777020588448972956449115648980685992211575940137271596449687253955230588193393752472050813488007388024962828243615129770820758747814131715850783491657986411115173361495625688701060035464283264501630095883569864059614435249128198663489652470427747894019574111966111844320133178603139268180363123893516919649891297343822856976401160235718014487931807129986482646474661894921916849286563294579587562049629840237010419998030316364784054920794096101208679715141173932672198369034999783307976729477161633289034839560502349650067063803121999537304713998976941440260405548196885832130958089307315714753134785844866549671332583178845255372201201765979869771822788399795679471439440343865901119486073375519570295546716423245083417533960921821620538429461389540778228853951508051242661226669280081782314723944704515414350259768474425762773490285534566752063234526352897320803657594855971067646135387495651908995619616759518983229780255305748688807306388803634252991794708657544406712671109943391908609393013017025159188794741272647338927835014187516116674685596484450649639156762854131286443549742125582619057761935978484761886306029728580303666768074595590444307566548193017709563825240247519235893408849877627953287458088531837260509933193583957187295806279912661055031962011799643608721966273433616964543480253669129559514468695226727787718733981051908344008411761192124289995797752623825451402436233838754224091391438744294914848344737568132090103279480715289517419542841363794283121916561653032051433175613753240319553591128771508501811105244641655901078919928610832905705725384628460906436259815936088081618273817342668542789493239183629818465854503772336404745024291342825122975251581605282245266963716275124674351142880687715434106150014659599222678109983405769905534549500847571283035025761523439540315457332007342564545361309891035235968948317138559704756575313413276452842669214072470072214198833477153734972166341273744003014594939122159513311639462067880867553926113505138602435611026075557803457944851712257192857552193471207853657981132234697774944685075985819650209582325552970829600359285944553801239559881036708595584705770289627519652034039479255895560466265405866385837325118453021147410675456314802899827868387227970307947479242430952070052093846265718923859809652133630295235472050172654473933188603746108635499146324700995100798393355578778893879180512162303497994417121074384932584835994233100617625716307659878837330892549525885877988100404246643525897673970041067535549455220979725349740177888304807124917287591082243395792587349076237855382424306701888958611948671965253700905805002939614213303566967137789675964230597291597434732528692312064461452447990970357879795934781103390486793180523455899183733211480085278805800888473902676226706396633469200963511418943163912564464712876047474746283259477028981900081186548256480448167683145121476882405579026480978951713788783799757044371420709608261848730600971695219394326826416233299633438732626692051817593542470619644906095699043148890697970046343385703505036656856666541888611425362273438587046948375544407918476975079945449025267513496283845922957099682564647109825909428749876060785711806686846849233868436104062861160215466433615711814237744092820424631836375869333166957374372466002757846933786306801813320629469992030097550219912729113387502610323931515028289541870594903992542570790257182500337927119129531009736582215431026065377108922431800392288454049959221824294790370405942666968141043484315645207122800230857400761298016051766810639681570072695232876927965948342698020187683585808939748757530549826287872833764221321055405181351235475570375719539448821140841855398233866041747576638514287717674359144386776799894322300612976853788119484921832015898692931163799894397446379938903309892265975767032309958244425775426982257736959711707894040316179959153211267150413612819579225300517223474187696654125869010793540036029549017378215800486964380014180985006788258224258973333431532642850115821887015415521699586214810671716020119332882153540057653927366992422396057950838343052905396833909728653136789986649432687164802091346745800417016715543418153519966809518101097966500822311688729270453969082201681645290295513227942030081335122743061471565217916055751406244275246490857689328209797733195571349418764449388360081881368642408904470563985271830039046234122920625865283451782029829565918930127680346134647806771626170057000631062943719224629161886818509704735547099310076667395166639009955597385219587281156391429767692225352703333877250830439187581912483489601521666255751773882697146977785336149836362703908068596346791404453897400524535653516395884017786744178933475053605019397024142585882587445633071104260153417984364482270231380005298507432974707893935218016584570357728249230757792204383566774991744175129547473469260429949220523046723650560938902129132914016482790780258995028118076853778684618631502382274641573398775989112588819282430894855212427972370569141349017771433360010526218631472101947235714678818010663274357604908354685262425914550930984684210489056699654592859703196682320176593300847357224565107074531337610705213433168357673996252250140071691140722790298643252674560502280200128649071780633113328040459316190258317309966546005009147238593493293172641263103989245692006303301025447081118220459832078875258150876402804423868332676219068652364487587195938101487211940950195272527494380618298935558000111958233257709500974950150976583307206537970106169966494102178603210297102641046446177656158179005844532678227706801095256437865099789139566394461559237387278673218960517526151734682246465431851984126931956439390678969817702303495145140167127738899561246984014247544460688876386468117047977198858636327247966934279672421222548543933491039357062559818626007356267331918849184798619006586459020939182468295644493407180858124981648120131354811240446080518040249367642039652300262905391991020662878582842318916094360127785997822549268694703392360504132755757827144163714268147500123541125596959234730151751915828337305521044976007274809711442429383007034862917582077361337280411876741883190346650301227789984298295785359605673062884983212504526927382218415309075183005631166618786165349537423652038292537651934484455617925363980724883452157454827804493032497441724329920540779075237951448558894732479886221740538781053614728751299406918873235286288228089904039931134341757133448855970348546675920878418597969178967108360421918671497247724388316981555133311949973210906328885081965847703998332006718789673564108229479749406973445063015654413396443537811494467342734591336790560854724678493304679003027590019517873292060874683732429470310255173682837003157125181353323186788895405867395333668088317369161797586666697869187939420478074926415329417552187850713394358434980161748397841149555628405055412751942750167573979757603841049525611056673642429638757105533745886233463883507916320149027279628574323660671322968720095555796065694192356447920606155418607820012010018590824502377107546917159928309885474150632951864823905396979993811000330660926016532359995681413895176901263871596579525696350085669664665195854000584845524245391309135514497578035572129088202410156525059015942996118791058246847250714523558390980588370132492300946490395268872384795046719849196799952726969931519372760684057683285867567657429515207229483099128717538142700095625900172530412296928033375217240533755215832422262416686679633496171559805510992067587213206716612421845478436364315223562620011181980249797483098951877811237975346188012921970353647409354522522731975957368272087061849582308020634794178001634706799326834212987025581954094664207630228991720805571486455292309361678412740309482973654305354109928738766460239027989452835669170431721617113893199271389097668503456409725739737049214287911522261681416034672699952537166224276557032778044972138844244941447459325988077333112810915954207871235653920049690824898588123881641985689013180744775239274124646268729019580208710272898632280620329374769922911919804075227510492181774353360414748232931344628597215418271226532200773005079828691548022192325199031862341271117998976903312641994227919769773862554063014090897151126215829168444606692731878049050953075344115034159483971945374807076724259048900341450409509287375745959551625954260413512533399507585032530076549972964015282295699078460581394003616353102634697497890457459494058944768127566284448160657490638794223890348519112423896784111199817130506215937301356730787613315624231822559041292373046827391901817451498765104933096674593712871006571908572071257005533124742477078034085669803759536347179850124369674288785181112311394919700952175191714102038558131204859770583511251253231200732981836453930958542883660069534450051959410274158686826894855154755679196513301570338175513258469454113053646643411526993045882176341202616956111444292475301004019156317396651701299390420500035603831713374288751789227287066021953549495779722824574089296634241036397917419926005012029682396640964908146538780296775830112327390814106703169525298831126858599925956685418104571422504178702195025429809390026058730207904795336470062469945094567239687912954371411044677645364296006186804305630606811296316142525262688685791580090802307381829691911526405970000323311465753486588061856004672977229788456969096497351495852811110141042291547816639846681371961436522651496689262089287788989249226575448813332458124609813073431183866670089805887464204012914478254727538667540940276211907310870522719977318907596729548225695217980823403300205206803534430040266053958682662377175480285226198524645385901632964468700549344364883929591952612494212882285220859282846733383435723152851702271367043063417891713346580327136711578112557419562720522064947144465629230005851559021662534182581255815497091809577002652889322715852661206323850785022810573504008865305780778338632351953076896720032345771041986330962561906470927627032928947080785084370334083413480888031203902297661255613710398657816654427394324032356431561477792277733540445059844445136661494202075667423164643389040426355511202746299965604723183944191524756401194330591611816127481298642704291390559270151006007450587470281522430062249277257157366724044786763153659640447205351772914682388130600106213267379514586529445875751973646574645522400690927405650741147186094367618926010779924641315976712037257735952252459510278924239095565213488391639184033110042642493673429029764817122167520101199536418718635904666539370432111175044472766373743299841340509871069804022288159516764276752457029687758737772668822655483867791823507763762790333173431791103685696043402940116369237377358938442134985275112419982539368130614017404362725467368683737542953310691957413849014647156038417943393862065541286771566922388653748974892399239033792407224972458926581439498167358427311313058097482363946978918313290496802872546904606144228570790444374909745410336276580774069491779555470077329149775244060600532916436183317627343385797551057147127674885251929656070213965444862611380721168190146272619025058285391451540061191032015803843759037607946611279086297489680800788329662412941343780515789498053223902546377608317219157043948276718080312868898875316945780540366361076486026478904549843549742993358878067546011933787192329875365243164069348273839658562111174305811047785022472479842246333563668184121484521209932223819748186512080923932693685511539634661372258542692982351084238519516889605676435468813486643375419549443214315847573390234496169079156227320378305910599344186942121859490247950082627369398147725974639556329444346400317549058354308437424291124268164328366745235188425715908029558961892881722555881324637249634061601573567821732080480391126736701466910322921774327628267473638179760133232126267249244011525385470164563003603309788404206368470939143565215262488047827189916144970681558899217907026810128134624296854219104825866873888435236997622814758975405597759755582559684257903988595192737804369989273649956587836528695245861029039252482873487036649609067067995352830779336636130578432063764079814381899451478705399936166245346137637182031992310211237626193087631751174482049043979731536446273490792643245400225730993239948871766590273045099643303047734888716487057064809482834921018187924194102228745861503969176303445222468410520511890558315819734776658790169953655060066830181428823972659751163766648274299689810591046570328710793640917225943269848094301626802676053454431098956504120508098384013978314023131477508957756368464460495417430591527792703382149487281139545456799034309408493578559819547832455642280703245324472248644093591457440856083941169245519544944043430981556646837779788234886245086848271467972126017350887537806307342722379686210871448817092927443580176292885949249703580361821119047631741013610463819941832103925144084289341418605410473755848241817902319025952996107224004275185449978337629778140273433024078347600267764339566655111869750158383829038098420533471166382913996973278469234178334217892036473643524323108796220244884815476250513740401739731890575988407637445503680543298603432775436969582628818157564268020474387363033986512748290324291260629189887762395645146033111331902981982050619001670372868761243304493948806839048902081067463589931063627154572615277934190538896565243721203355178722381387698969750581580136709168960049119698963924418364061025057389214651762786922751059760890671979514218522942667341268954783549837982833931405857948587904859360292569148884494979197080984830985906086301021100728456672280962462258284883822482817214686633318978330498821701640422176638330224693918254089920885097268262581210211898119624196078356914433169687928081297029449044068092034988486700425330067302538098435962846445455741384113763616223165077260001798422999842127678360966257946293243704680266801280645149420617783981495476603560751288778895612217484464297950342583706215332626619950510644148954897703426781087910578366313959734301258250356362125514800897479929927578168755261650919448429113765927495736859938788208857163395346798865101074876466432100549022782136758868058096547750105486916181719324153055686110780550720126646239676306339431975270739894378328415354897842290806840157242236182688695381123594867117750216281775240746322896286297527343984865137868004927388252685503185274296678227398757003697686906284989327305291830938283172628433064434389041235333308736231431957457829899696255710595648212608459505210996459181427865308650659300100877531616191486327418444555702787256724510659176095374325984937318828979426736432403577847716820733342036544021546764888589111657707893438754491563796252749301677122347315817811125092647259907329121676905977974850105965827506441112108488130391483114220192095925652609818268781371573284937714153839906796667056142403939641420385124673474972149603238397549040182924639070807439803625776001271863432319503784384350819589314003631360515931430837472132048974657262234974313685991318022388199177070346980095421982256967309994870042105029363649443436357030152453882077788500730516859179509035156537617158008359090150120480086587253681101664663310816753652062864246720836328751206442394235298580712666430767853521863312175539251629282951012030087493991993469393917104281721523981691432128813283091292349287695599044734815056784363492232600263090032953483942516391977163908702055386955642814142204551446434729215145880941996156227124227998995286488719308022545361846672937194930607829925240086331182674601856332481204465164149737561954619679966449747490333398601466084095652608336879018152753993214754739650186955536911357976770121465451409898362033733098464062428986062720082897357793722479858503809820041521066060781558136914174795922797675126156509845057010900766015678452709541971299500116459450617976072198013780376723844118787404042733493880988058091103512662396282357132198728919998684347793774332428615522199004616972547208758150973953400755332784722080412310720046911726038790748746105137074576841770648797581601753013236093716203468751170285940123312370736077554406684014202130840552249443969574122440262183667018855802342282549764772694645317682011720258031302186022950588091899178963935037281950111602885841133985695628240470882179353137863644520041195952809884334745535966211635011578476816466704672313075465120235421217147171926883394748095415950197902933139724714863147859871780957744364270137666836196028185934294707412956832579785172612518671454592780816119722625683786780322361942389858928706179113945217265696223768929569819437287891519799646178130855916416761276208296825548332121961448931233410259886493409039362986525446580291762256252452370263310998604064933585811973505036208630725598406819883629542970315496483613031766587657072073506203170673099319388927210441240739680029940365999185891432272739332468384854707276046443595726208172123278219456364048261757599283657715288565144597500975882825697977346270614880375427383341385146319140209798972093711054954810036055554882120439061317741034992102888523273690040327472985201215950929807637639267286551776638813709717689987751134847709436664271602467315371397970616063300772696878204749802025527629502149568725388585396683975512760520318251098846161409424272939794444240321816298825311440509044531363147440839853074109533795373068637014445142486129240058401655049470002676716544447046286335536541636579748820911956681988680447550270809080965797303012442837408679405684535344262778346027714609337512464584116107423036919713192239674129121633651753212474359487873075733887946631550553142572717226877845347839234820785434606764711959997085449560858954893783688322731442219065982429695543642929315637187794948232726197824690739117338533398201662784751033729411258787819716768969513091116599044888948472204368169812187201844601367769399328079711626175680149494955552188187446520240470889889064473591838626400779653626488865371051771643511612916740863409486757285068117408452917761504084152525300924315938541449346894035642220265371458050243497385424056987193024382553344941902725524054318484473930805863403623628862654311794288262119190755103910878723778046644628612876626237022195439121984421090520133228318850811343709501607623693934324088310073145060766785278963310447604526714195508148489388399858284742931915897154933763428793328511146248464575776498011539946745507010217758426539018772097090976723434071673237146783285017841905259107312325124832484011927992123881607853435587523893102280572823530027009287352918809557583685040238140764121880556042226823773231111328449886691502525587314676619801278726422625965958020222134786168850336699660054916347345338561797487454131463970431267704400587330942770820695146163778897315429001816407532645755576957595243531337756310642491450119501854985861495813434252621309876729851074270961508709462976073137176720674447161535816860688266447702774377089205855820521804488022535026230436627165917836508369126388862901364437303342165226758222329064070600261087761675606127337220262800360940062268032917507661938664390821913535729251352743046022584421330323148587785277519691578474182397194755818106753795162285314161319238734372642141601443228063316535520726689521065311220493833895124142303820381747007933706178916291664863552187550712801361160645872576444167617625490705033718004890949442676822959759307918703018675700704609426380649955492265093703461729198502584208190702893740689097033952910457043947343604468949413000612790612940338416279684410608952597380614024958800881306235972881746713013237257765038891378014297930377242539898050252757056909892422412872032936939256922754484109389711426023180050259506420532516977931276264963355039375578899729509399926512971706540324623120790972798054380425735750075842941782840650874442712044871418209121985030068446345736101647366900507786993225807282907049572629709214980699811800816950708684096210275453154428911160236220517511734796369821010556160245703805585625838689680274447184596456977345746672324242921336246209435207464362241627150256041249625031191419265946204022064253348990619497490091227183282386772470476882678003761979384873596083439079847041330933834170549925362591508114027544150657658240290466057596404345159833310611822013269681783450624623140227749850604422696163215586299570785054843361975226123863810693524553559907884604138533202095094934118811007306746595785250632836386061179467167188602155097373603757100001002416115559207151350677141834918178490890170508260630935990476179534757193883593362838144670938006340301090048003025781234808224211244543011154213848839655030211752678946743723568071611846365379753719485534506922915100188121262769605319689169846850310907368891380917012448527061465770347844552372699484083695126848738722479293831201911183245860916845408235208469032134012828111271670151115551420047058797696577999417667653495370214863903477346234601426031081836477772074956053886906679483876471425872596815115125189919387044794175289506344524149854603857641306386465550834210598833810341974457885578222120514164327830912393715683459570774209030974582401806068140200027055240297652381556093580871994382556987111980233226202095622086885870260157277839088847384462700088350979541169613073254775111025589857537512983639610179875784335063550086519070036682612037038933537726864348786325285965599062544186233757146139897867675877505897253426782181782698637021652454606398440412227615907973003983093271805914347148204523083363414445575646670298839192161724640871035018584566230558933667716164673689474581150825159664869608527628314901482847682896876135290432578133238510979764407289874798120245879887198650725652583665776798655963653035692664314353493523629950439297113973742161229900288724647837323199719274383702111807928752907473359515172097105762171516569426026898499396791808546358866298446542284929216517583952852244308500581020329140113021197123353292184962271651263360295737824619214238666140744404004940605478122269753358559143972843203660050456348672364881337984815466759229626668464732420679651664237572988469053058557443817283410522525437166742863259057404792632266143891112603437080205725267943169344870306856716011095423613122997518879898734510088685455749777197564167234120896900839270797579721649114874133299837070031772001090486251350292076962065304567138739253812138644444958754910311898532600963509626600071019691938215057838890815172405376666904331775612962688025402941088663184607761106355273459766309123880726293890030802702169512714903189612052807063703399516703395864799552057871314538570603675404432053199998446214215163749225150449305971020232674902347647056370324701781721745332433706641641546291180843253012958134035800588096509921283063504984369544552988974986342744391164979661215706204341003060219685625871651310415242667223064306203580513735571379190965420867857649925054900005035935378782737977032739311991177890372362119265569403507940439548740034900701550450017429289276493281269024884326056441222907540857317208510122324212940040031847583424745504595974452014278414297036320164125539856907057854441674394298616047354873292096412377938513504806095919191533909119639452647178626648503222113191554092626214035030525587876776577046599701416461886305746919340159100603450778205141952260101661849587431028091520862999853732832572032508218441727711993654472201418502500508190318372968348082607686235666178864705948422680901113242294352586005332617297865263453525548378704246812125928692092716567023576018945079341768663759324591466250676116636538666656279560012853867314162625195702395922415119179064378499772135727455810333977752946870979262470384278996730122547374448539820042117592224385389437523111597854702706171618856509175923801177610695065013972617732613511337499782591558588989112262384028645218779069094059811968686894551821731400668885931724922472472753908353343735101128203310659124962552889900106657151184997711172230405996719995226908757027280582673159815083182677610045858221998040611352929196452888452899853176035391093843008862452482878844053951084207784991847136830452909031626347526470775455885782382981344210915220128719462325381630496790138818686172948496740311089989531028846979612646290406547678616085618428184820885414422203561960718144031688583781831890013610970722527165401367050761037780776934936986939999181575436004659897786746229747328667545466681041286107273806424249237432974691994047053136844111352216231452361466117776854500690537852978067375066467088556670959748910132984283851971305369572482555116856068179662110604162566739867743394192304095227111297401136742976432025355789376012107876391571448101036511722957379687185266997302830896016114155390534322252201089985884725492205577205987842629930582489632126880263414416936973436471102078091699615154514735199909172027897497721045744442343315983319244630932081982709908290167074025985274841879246876592565827080942962467850739509603901149980988446135140356464016226755275036974018998754586131783399975403831806270078848167686673672060726845184392789821223839681124589911664185800578011045063592810778353086193168346869313524101874443718992167343831939464812405440998223826349043210196409128067767417474664581726853578222711734249978077654652638795587248067656386921154629482675916918519062184171642836058217891475563029687995954070483252783803602331593993638401454785724445453986494369056631419029072494013044612739004752043824967365348151592302575319229841447418039906982405025298176573626154088961312961970574164745432491087929534911251335522136756740916090432062294706776046083666116959888706805934850534397708366392240179131701098266177202228041184376283799609143944011740652106645272315804949271612795654374961168846303597874141322074049051826481724631437152973281675450885104276822121208090567369930782351026022088562299608474131126311239752011076078447528427248269243303309090573143875577375067140878837713850426288921225752866166636349260962496211914397457202139256476703133101364870190169844610592027099481113700455925637242428176547726867902786797797922388957318276148933491021921898196938654713262716242269013240851028282121890499022789749253303608930277569547311359465281709140273376613391344999642222294496491341715622973633600217085257044229308529507266783926223369278155086033001605802837785934158614002032874434538218573183545004541184333752746975440526072094063383471217262388481384793415197974388665610478422775100152404206193153440161506893534042089536253586496378280329397635728862557709421948819078451958511297375724063900188403931894186872440249593087764724273783574449969405392538484401681962972430900420225099244101149513780911896327513399082593393192734820210469520592350494554167331996618194981117182625066648875594651074190355112447094520280030851893428105725449480601084559997499906274093573840028340018451519007751393346918059762660170164095596098331168533006279126765738124168791703443970138595574967558937131760258673313026479939859160560632120560197497964995710608942750533001136114915125243307422770266628801604685482186763888041643650312511117418725411340545503941770103121841338968936786600611026358488301789595573408851952996552026940546622142074965418835674350978760146160696975525213354143502478638033983847574675509233614208851462669978034304568835574097505615953463995326672203397829443457654756802517127634348703138598760054392941886938407439194510383083620678983543327660043032105035702879885979456892875339284540749763016970963145284094575268872872122135618029139601707411501510043295514616165595864681268004689461920517099458589203154665608656018242591010813570581406518529026162184908526766819053207454123687209407772560827246147942389731599580925664623394693629276621160965349108581084943823690774470442778916781065819896754207616215093733373295855095219767901137434789288969361149384956603621401859101715663055167372402478181587391423093672902772432134243527507538278256708521357732295305290714337285706283717342081194729315896445100204938308472599840778769113311212710401513709999351457261445735057209622536115716057778019700354303544760313604709883286648998965718563551571319486957177331011927623614529606445939253113792298950614430217778239641389268878499780826628418452691533111797815607696768183265597043201619282973417520081849692052544766585636636035012110688875666623138232152238542150469372080454948644134073493826044430483483841340616857999255436070208474477825794435957742759232646965240837692181113617945370817744255404110751529472057386220271380987418526318873925358177396530535771809296313638708496804956970688900108420944638704560594017057694146654373450544849607629320091073967792557473544004480663720820182070126383771243970732763214682162976325425157420457263891944399277953276002487684817714960695785696542537146567475183074008252223536149688205444404742913301862333462610217603960165573218743104467433656121515674786617359494602775624869520856759953338971905092470514695063673231569944948187377270878351753141646886697143833541631579185657325027478365388471139033393265659643199310569322062162695060860444963788342252892499156109584487711899396111368542561809065231141531590737080753435315035862053789883019484671463230828348439661412283273680716365640907748020539806952557642434774954435676523458110906949781213333660070025801757965993408221517670531523353598311199016780623956568320167983662578308061866060228966524114829021941583221589793209168083098377071027606354484149251909117198195391327334270712015644788623907505287311497957783241670083830323721503297629908670519665265949743371527319656413835810648379386411317212549506475174465139489141365764060969521257503056102227580230112662927522004535903169461645829512742596107323072894958507124421810948280947836145562597402138732523835855995091888269101093153275325779811325474785090611921274200339350991850939958082173798599490702066530954801019359332609492517537627868154058157662992827578859170921710591669289624940197965742829760943405393618865309770393173992165172450431787037061290693074406226462026376572977680309552447300636272810539853821030781724044639162916208490909297532123164876835434724792064466488173034126507615635304979508294551717928767443670963722817536193904286075223599929028422461336364214506021150706686098073826674679669385814567513933178714839061905885800759031885708911064138653858377826415831178020725710154560613587570255041875284104867356103023993933366207011832825532098481898156051427525831000249199335598860117028041510100126745917275037558539627319145846165341176389731931142408623119696895109849657350731580383493531300320545233938929265454768468340591687078509014051069253107774170403922781473135014621737180901176328538284256497053517924526876676775431610472949850446209517357161353094595304484888501677694818199098149670210379657421046804660642821960149196145246863018162669323359241854509297757682096612511453090873003417150907860611842725571471943969378711318423161307703960331185388637168780383077031123394554762070451149947262701211971039272715814480414285244044131263669163499482980678632564970277728436173986518086644307060088601266168416008036107505140145354625808301578860109825703097135582507807117105880423669004441660323223374473472185323405026926633862338989345427915956052685594793549551880219608020110892605966486798246547233519011452765610668628069820581991182759162820726985342786980787445738354591225288600687368672491071010617626929447344076198690240222028920719448871514921245580052554053806882508553025838759444143036257386670048953851269125681911637933770376048222408663431434419347489877800597680639320000746808996288025650168348931069560220990476339192608529118690102983686391538645299194372858479578341219866404493137864864444284147013263885355601078981204397801615423816862877441080051650450837595005913194783913543588748091677180022274086222722706444241544096402583944714484882029685354732417288488038077271354265880805435405259139056731961303450164129715005160869796724905119917499588088234771552383832227900928300756711646345273039140515950402879863019470945197792135704022850138525759175409742967350431000442089723306917284521023067894957576669459125173498088167645825891294738016356793856707845186630724834805830697184857373204348434868643682829031028499006417213290517597337391868225095676124061874213264913784273546238010087351322667515236412050935103614964003590081597226833005205305720085011609041630576502732178175558117397056239606816044134253062852443142312305592734940895191504279970001819230359601082138219070920882572424831808905771355451044610835753265204164293974045312235059535086158660483602046547744275570502201031114632568959843835475812938054726454546364304435329535606476152428490722419492513853341822505771305771765118416467657153228515258548282371984427361530939816562617251505373767890097243254504409348877291485635632808919695318102790684652570373689091961944360495787923580180326700461637065560009411197926867994161506202230612003990615913429686639585050547661996047326769934136431486022663206539246331687171906519753332544219867896955887100807799085555015147743138837907833604097408067831901709334410761061724135768237095222863793959069505034322519464497971809310912965650416662446821592999491484761082000229603219030556561036838973238851252919359647502985568659457707023317225268100584214734292494951398428915643226423016929483422566456785585351409235789161575436186451798564587663788767030494281604271736685464146173323335852231973434617152491913002999949920299481534522539549233487498040391329294918678647838305032687210822753134919513341890263062810823189236479460486657653291770092619660360864061722683655902654921460319007361329661120828658893417347989752853226465154564589459438966192241163522193760436903296231212376757828323809777039331315537338762314553569659356351756688058200694199895802694279984047157160008868118346294603546353059773306114803839280756869705154588657311244262845757284387648982324963766057352926429699375737941169127073520358689456903503111501094735634187069428463707961191394377249086609750318594663390364806252582150834835087176799108047460174711955768926188350951671151493063987722710122120016796987659894780858155939994468392612801023469757557072777507055536814852190809494435615398289660608828422498695491094896141440043654195545386879983417405095135461235238632034021600852288360061368940979462005671481634507573031886313218195397665667117983693238535575046307424618093363579612180420225223323106494331853752566621554421272079286835882353111057087398583097515046678309688016700294790945945726837362404329956819657708439428772425666563835817852708056305123483101838748589534887340192412085887998189391273416515623834709935408828859459264273074824328931103094843616280603780740398993472054263970319063380265868427468861846444090078463367281946922047228543379390043187447893226757110364471597474748234064883619039714143947779813834049326457052499617022888600829501054820419883354944304817515777912207942339604582100843762956807946400843745555495555099005371551476697474479750050565101390539439323473958304557668054385515001152171639495407378394766316173066604380014030664212091494332000810738064918881098707350600985517595605064664230311616464346427075685184695965821455947436509731091926086920869048338851616520767877210217018384966728554928161143516409903667476774226474664714477120145423474586880950995450800805063819792246182005001078839562577585665046401683045771006532790858926595692232433006607199132683949839675133884240157829995877115128325860027408885226736256595123597053120824755643151411226400853387200144540564084087214613050129823023944377557665448753067788719504117420138455829871801010956670367099044194091358467204091228374820940349375879014050419680719801902969775772889469614788045596406879155817932259763704116499955324919142019165059622176759663600043222686678222158891451558350067049075479965820154902767776903479122863418140182547031050253127279715598340774991860531091004997136647913807116022563330217413659741054491907884313949858997439447915215005859578555080721291364275440903027364136501723093926625561010619228217933994682021732670431045750053714779679527445019823550452540949057553259945943165604336066938404808062100630475010265891554895058321006555885121823214871432131102525776003639664746566803944768899259366800429839893334881759318335047465928491548170433939653512246703464366173985125617914520782041507082908735509270496644697158589600180100262538155631991773152451849682714003547134881520416470932697884373830399787991917798756790112884392988260984359570526716172774294062604270150337285995739190136257433127808161124874161787824893490104443210071010295758261576763063231276673375085287111887438587668719175736564218931962745107566301324278551572667195631947733347816457294321807198877347713120625862471051581834522434380312210917612236882324737028607859009452396800546416116964411542199670924501148719837863363453438656648493566862399372059835760632574653742607559845801262705875322274572120592059575493451178657680687919900213725745807051897111547563902992916293791828794532872229774486290890763874358547062961499911908935833466552854632414052581701437951197522877783599786998746023479520683639777729497061103067751352788805304590166502889078923109952821587214591127249276105273135961286943357244078691290290077759620039389798538373140523972228808188967384670895713998080775599552530590635328583305491359854166030689941093142731720197677130522400614444347464452586314570585348608471612391470943195770985645706802811325022591807658965607707406909112592616918824047381397296111049325091237680657653725415898020876605733618535260113999019751003920280477053158159984427320669996458036868512221620267787463658295834392341635439248492522019468086602613984042950798879946599780301036679237565889589293815607317768592110271883875054986702109668646312593924263311777816213551331922742426328895940803357633690935751166526802221172134157470323577735388708878350133276509146694948379245795160796665285478528505590276288991749082522306253180542718378090563327310442036143401706039413864191721282258730172762171875821378671114050733120019276331780011441728390430671070502715075285358239594763951553282219431426745982792142773595226448978911320963754997834471470003455192471459306734705191214887069812233538863186308176694534695918015431917359875664512703699426253036402859131013441563527972434391658737346733290054985598731029555754344084155173836798092795909090517846370082146353947674714827932243070943928532198494251992046378600756044634658768135045481893928275160863708340005357399850191601987996050253611946942203895722405158073517547844477537905950529749662768907120748707568956931823542450349306617756394739240566870922931775333837887983726567904574807819591812357678806958091540654491067826088340082767643137036356132311142044502684916233158742330756270719443437711139674884848578200998637686251739757573880065681519714822796557774785612780845132789171620961006616906900919912640727541454309478787916585663473325138756576745031149028518698933295216685677330554931985482038206978325262051156776299765400585438195065627670395216254153482652203403488633077725787432524360928410917689529896319829455324932817549109360671764260091921665327638015427898355655610464680900202953120877331474002418025944063018654913664270974643632205897952164441187655650154993842371136133714373104308479034326926881402466531561092711473412043250053833632387687891873612871954919520151629912284805610978761937225749369901634363927374774461232845037413319946940795998540053852279453084787680748606536480815244869107457095351910525494739278478184480313663802854817290270879888363512890300574319760439254980432187892548255196687439868943729311947690126301867470678274510699360862616383905303267644954261662607545478890820327171591055348034106659463417858153145791796752174102603004693517000982650839947088374472683669300626213670143685087390313568254056661073711851900464599786993229253665257519819133213343810929388619263696833806469799996545443986341299448082386825586871545853929177794736819350875168767778429776330020007183187883207603082349777831597312429390192393253126536720860113920944220639658687350068834888561849263255143517538834802141072893502892132990139441243927870944950773344588565835685725677651221567302336081240860633832505846641385603197550659613826621585165541075810700692298029431569444927733136587322456604166354140437483957508969340726521023616074285289961451001100686182178901290912991227511824165664008230027589706074442089423614139505339665337040607721102071374012959258195278247647452732657412023271178086611544147268376161329966751675512075951096510711147223413091072721706465585545374725757533136154665949075436084816316058382203326194292711751554421422584241133575045781965039330011294329233326096331462678102763704121307702645336400918217539466631168659790483018560342344082467162904801336472063088184151252886055612902877851523807898771182015308447783322364966432796106446646007377058197855587052715165086862196012308376423497776979595426844802012974830838897769645551392381561465301125565010927298594532418763695737972384876729035357382276845906288431434779251584684629831424337706038073803822086849829556196632722582946589703940809397922354543418960749290300646616236524799059575316227269659265868018221492102522772335735971301796858871418436596208765163436359774637063143868667367774356724327686716553883226364296253080115327729458261027995917486538732232932854702596733571560988973503358117578684755741475809775087396451620440279557526849861958321859561741483765611471799857298215705037809606045360225965619737751596981158421890049265564950443060976290311320996777617314416751909549567151948722410669004619173506158573867821014836985172511510962399489389717563628835832562825818723193578920276275069967533435552501873466234386531912123127122926904864839115515463097239867186157902601853539469372100066551733414234634558320588565084993680834785021242167820327672591545593781116587383981210934860599446875744987797090706825112501338599240303020194328062040186763345019348666360621452199195025369683574869960946493899821284412280646720416822223072729098549024338614924849170926651473330569733762047074261097683931157633410479580965212231247008081087985624294282924616444425304991483816093504212519313881016572363213082656766290071981832878013303355899758215312130822095988605124323163858678774831109738535156008247668359245468334166756226109840395384630915038021647949852956990879282372519428456183531176186964703645417739418861495880173730712942134373330191038939515519375861717096580649976929557662428881043735463833886348029775289208963596656411454217153804995891545993439516181820304469023580993947308161334135545326246764062602112224913142097066399678664034118981979416348456346333991913433820646142917821694835307981303051887649823785698541401287103404318345533397293137239003035499388595090653579664567929616648273989684917486017701602128406594301198263999075768374047793683405743196628233821982135463819115089918293012837495969100045368789320185270112848934995049299069995983286071130902929637618780404666983592642742119548413577825146762949077205552547635356530065651245245370385121748960183630761650678482880076365317726611300271307722327857790935453713841000972436241545506957978805265766245589973791825263079648626872017402238662724726137951147676939391675358569001124282350730655867873207182494874611156081273887040956348377366007770905265419915974902049471630710565887592748456358432957397217957145003542660164854842942016027931121749267492445818608467436579593205971637527744569089208382489236988713973242735677982812411266241493682826725604850915932562613623924305182693968345538789717302586640279785155987616041805863636649064902106756609395124750990919488379902588856048387095849373380010747455532181180981701946914184748930000489690005390235012387723680860607004243665623458153723450679326322984017355863338238898533459787324927172931841020625327801639868797081887522753759263389826485550116915173420531785996222425923579541083566686750651033833145299271371012918550588494842557626821203601668408024532703676537248104628670784891275903784214652874814210075243877861260028656496392814660899920216596652719868819302251482125556443821114049479674414967828753670876878751300745901958584176766689165691817554261942655751619277780313068848553117683863740819904962259598370600215714125122901570652424132771764548551506739991501279982186147556933288990276352961745158204600478325477214843032894225275614878596835408570716013995267456777645336546542023737790657099170021913364182939969141963183250278425084890520303821087094773206272728894611244422323984769626450390515159851931189150602090342250545847219901736498004901252967136690344016403530972519899873448749295337790924424388166770576893612058551261770622526534231704122164493613002461310137588044432287226144887292723826430410339583105368303423883051754542836271112732863821313858867572825057271472118744964677699595520383268439985766883551813832791253745704153782151502742690496309819380518529642882489605721065041759517160101091540679458060199207746371422309345519137899937053876735056261922453795343194625770963455872438912695772222330254122651070441655907534983793709033924647706748088952862911957114654018448597717588768302710008998710920111224639313172089146765472287952138925687629048027774491899789782526782486204784363324955057719511174604618077541011160119417429343323618548494459045931593614323705614472734783101637097393123527981695276459687016343079834109414649073312611407619903818125593158858094145800006406775313455270002289424199644343150640822606534087986674657030659264642622116025625554257043805770294049822921493189468002744516234020819078446228560550077866197800850677884977293829312830196447094235086881907592737670290382350160609863785143010707132979809774508326196157170357166550724816292767541951944598001645325477562703446249457926564658548456266402165568358629321343411572530138088823340434872744853257075211272852645872246669778558850670764755709875320112113432860321496973888329409822992992656097955930011118366066448858757589719408908346699296139797315795740411369917278648040597983659734869075761088122112882539519403187581680019770838080059679345215860783580995891920202396025267568299516983355664270517166712908730752370746635540707309410623669491656574745803141321654123982151477997334179276628012203418455754097538111766621443241951535115406055386357882099335981354438782492896846358389618054129437088577455170847194149023997189201741033546706070825404338872577364108576055208329455826704420815484093191840093452253736604365542842066731466946294771365891747359769441667250576894329392202761900401246309206149538988017832344184313510873393484194419351509559426860290599524115304933846816238718962701697166453706816994757109147339561565024968275946553058205198890070927984166487618824902531008165222910942105905982492527908520018865652946391002315483560145491745202153106655475486132592116398612912872317711568841501217103541368926691477063436714342217331221970886266405597767341857593622808258097687292984619461424034055675822060942004479678352554093041614005146486699861109220043352563853977446650956071219950047637980254021865887563990200528596754399704640180672371499534147095633226471128119008133290330261472278767711446169671435558177755228983814116837678849037256587026831314128955841072593120177792641504296718658275658926118022133379849824851458554720438448872461309070528125977331203240003198126507240230055438795797580620483015872536635742172555107163959891083914783512711001204508961489787565570537945835832550960397803298852979447378991646128680253849304141061703938316285137535027197657621183552732964215565757320599031013512584191484736934666205239547974153575973010092735680345466077903311941348436772641252438196901855596005901021686970589872240493945789233248856059207110969792357853254001282250349903433337545160348397514436022386272107474113526415544400402132332059539776370345729059554639029746013240745676051666429219236028679689733247391848692876903965497696317914073856809322364534638690770605635353032682508402881980973940122290462268506055784267725295481837963262191681107008276286497277309244297136910765818937421926344291064016147821734459324476990665508355779413773672105338356214747196345595125055361283832476484508995778181855001700462883263160251265448679858479376311888806276066460383839625418082931369167995426779790316397709732626086281133519387262543238522176847969751832666268108461600504716348703030004836794130393224423539360351280872420578860887415856496717737476332973673517592768595384360687335173293699546246205270009039683789340270947712518272763661360949984837035957022664951120926896083305101335406263743270376750880651703762228905745858329739049898894621204149803711156389936914344007367375094049611570690709836885131160885230552661532500233224279776123842341723045074023000972306872720754021759042890122139832165809047048518692973335427086692393621190980134530182605206037468974209116971538714566324525977500656792614799972548743540675281186273295834867954855639437362903975166720889826869192248425439325078215064697551712906785005162949874407743773629450276586236414542107830602480331128734102512409677819160989226244822201078367944962500592204890323312077592373261512368136446554660825840514938006275772276521622562337432514230741653073909463758098943877383041460828825019552520033787162999282930109522240751986760193466954535281215780465861622491147920869711599447769589149672778888979100900286931195558169906612180959704580483306016191285007449480787481397122793586253810400544982246815537646083933250005683969983696477703238883185383101168669305321812753148571068547347287578850927189372945938348861701562259034887278003767731992008436984940792574893267780904322363042240341870770330664156808383410914621808724698568351867951088850071497817269193235271094526483690148720938752295624372679824243051062341372644069992847359447477847538368257777020564249961476167209159933405879919046099829365790798706936511665436185104665700571201842277058502204651299250612295653096316964054031805619601020868242012843227028029981966929574008184520512013621981332576653817616328056461137240642162240279731323703890889196675430248953234102506876232647457754921403870535700339312021385669658483386981554210814186271693286231588511513702107313748588589822500433553891913871885293421635091070969914885275618291166960658722073478690735224400309251854682439145199915655765441966562063742783244444061441340967451802690735075627494803219678590404803959948390527606326019791624049392250961622904023034884978722918173882836484468929227828564286344698427816466045067655413985634013301229426727170185883806027851023768248137112955088610353691792166331362879043674968877579876132084244411947345947527236724625215876934852506858736907726190070191229836638138964731134099419807181619116336285019135528372657041933508716221671798319768706172549670540697737925928546321926098402261764259713811671049231591123880333276784044828532687985333850444729663371557587088726247377957847617981037745892408186075366413785619034481481283410549684429022903144078896335397758875946688722882914712224441311660209247858511849217299985406058192344918560818793392391593828690294268684773775099304223942596449971120402686974533351507349146180385035714971013511698548579015353022024193549195598679712837196335411296484913376497167855356567653887243739562833132962184555970004693571325843761005393917200671862363674765449452453579401691721142266355094304080041991947397036744900474489573014366104274629656281247753662086077817665547965466739565354883375394764973436665171001808746729745285588311083783979888093729806964170386566496030670645040438814764490938938135458103465235706948787708724752320581765972128055697380305004957511888126033648701386893090325502465184970791265114327489485479264614362865020792040135617211324362688317530890490532883902051405167337594397853469605393608073404911296543379209171306694084050194883097407133330214885648936541381135434832131902521180264083014303358745350173069970532859552502474078086379908784557722704710979697690103288566086919404793706482857133002450280536405575426072816469544850611489312277478726044530157794394599415816218669197759619171052037133224716982224748927130651973686800066570840540094626471532878160474243561326379387243746436409104902575462499170131609037040314474658532690802256846685701818266017447713860374065292441171545274486243879238156664704632400215587723149584917335879549580120485185543393173822584113176641098654658034676033558707352665544695021777834162925507338719085396395715328364553224602608615237031697635506182901800300088688921038456748495060530071962082340430815132570500773912149724504167640336518369713580447154053940247386711779771603067312917315107056697990636861822980467770537964045997561729107733162490396538816246609034231428466015656453084936540538847604591987688548690658122438022698502597615559637176977565734197754587196730004209087343964061105654885886504312835744919195080752489549855283434361743052656888468508755661763102250524690557964831613790948827774727936656444083067273107105291045603083222975823418244584659473475443505696174489692543862118929796195844434586578088585526876488141831326201385647647255320359576474323095763659019971361357281458723545073484963185327181334303468555467986164494238168006503708245960030231622515482651939936674031306442518923249800042872065998742755172140107780639407855666094344023261455919528806816661055693522551782526407506679514481944751528710916866591246051098569892977847190010030053681241438677520609598148112349001406834821219408324343405386265111912465046137215311377481356174311495498707911282701588951970586322364823417840522028700770379360697544233540307836832126488459716202397003773432419589663603509336656719669662989996382446324816988841208446658414171543230600525996962612617374667125768979062075143222331586969297639750561952068092945386137240086872657269692015793489411760959468131871856588716617373995385644374981893743407271846730848562653823373853328812172868557276370236931617784445723163134692644391483888789546677579353254818068288643672933939094050325339352510485569117400089839034049634522344168962143339769661534938220687141869860861489805833552422831928701939244661935843563795583014641051822903746572331418336994605717460710796153945338030959092319438251745025890887827182776985481258552910269409520043455570456970863203317725591755007486668055168243578607932044727717776608011421247184161957474037961929491417178180187760484226542322112357972401706053923932810364149863129633579514556337757878709610855709609772086497620609120566433592012592125801099457457858869644099464540273551306025519608805790240592867005720423398980605128610828209066068142915754916806224614038163358543680595554879818101259416012645008568198352525199054226096266342617920323960724741040414498728261126315184167426065359977303791942409820442458822827024321354653917998437472285912594915562745621920781426574599302598582444542141738566216553073730181582879601099955385269912599793261407681837340436384617585595828323936869535171341172026386342138692887727736453045983879903255719211176549728470749668134061612860295698542529743965036409821704380798987550162848248561968975407235419540033361407199734825680357752610590373675346594947670281124420008947882083572568102179698002196806599347117137010561846293832912046330020019964746942662690980755402222380704568877932311931786911704655245079398022487177406143688657233229479647243572889275538031736288920086971842499033143561960175233128532700276069681372778755839777015827272381784857753582467218391020908783504625372242452495958611133792394521845361544915815421624603706821669245485397422615950629164320801352283874404843340450701665966398289811178184629583066676636566064356820508673796737174052613089905948832158020632578704641867790662499940595602295919423270456603491429303768337109567198594799197378819285447220983517838496918553003393670896494790753433880780066459167669598303939425301974695369627933057199910824412646412379110894232268245445327349523694163105612521232616082839600807036490064079172505108342591316130231681259619838423072531448729148757426275659509511087881091407108767744902167774887538789850255383612115870988065713080251623440933173260948142294909371094182184127629775082812807255011535031776650145232923060255514695041937821037184576951240827239034510759889748251170438726324764590966606163998352851533220569741939036781654025708804962562781039340935875660331521158037234145112036292135287828140079108549510980552376137660856672454336102111563267346493599878846480761994838501544956785410740997331804324128327717157478455883463309326305186267367069674375372232418892216783847405385934108491585883375193901639220966714665240681826321293179525399358083812181566889787012260998658095471099515424610140371331799395848855242307271035847105474260976832020865329364576723630012517177351946158268024868716018403265662291647095201086966960199117009915618964668434948289868153729269947881851670093573199139294815924739024724092295438612238167505081960475810548315649810669584312783288397690458169547199318136047789550188666108115183708807299935316365984260381127208451898741848599030449103102001658883473265518395903959051566470417676499157721000750816925583273785951641513147678426426807750879927351463032111820069050203991301946530670662516343163874168714220567320453013442145266949430212138684203756949864364939343600657449088191153982062986034762631427591430907282057327574493676852194061196329397649580224356439538478902289781438197113145998830057678740802965008891048170167195822972595203190780720852632117632819309101422943889158229338839385197764575732752735198506919983421236375608657061570420050131228889200962129989173853794523209208847435920289831892867061401805689435517905649345919955157337605623856046961580629412097630540801838248322854210195881946863301968102704158029268573308246408096989001533926150028219425400239615468275817848309462149148777714414191675771851212107875919062438305638675420680035895507935650310051362924953434468995958666112115490307267483037776528353206077224837698490432593949820416158782875522607982523720082204901493766905372512624158452980464855558861897286351494632003132260277980118529333910965274523182833162424928498851765544023604526676769622005656853894940179834930943325271491196525433923844008153630058262340833061084486041329353583729747892603461342779435093973342690181436776902978673202357739605740916728039364084429464953636441882257508829916834649726306783228551907378558857427577816389143150168872364304132159591260575777509139304305095930352852528863455159522601295559413164438909492764038329299249593537879051222707469908281912574332709617479079109452679454137102327573016700965241052942816691558921664973137687213126014682668671226980318451738227567390290156397149906241457702688253591195290222638336578502469167133392053639314541833918899442741590689361988865852524740935549269013661403058123104877682745895665388984837633776413697176950980120615518056870739265633483417145060792629048337819942295037795446805696689862079284433382049475997505702293594758707888701523341565603802460053417041524846530015052634244906945012827237360355919314967711804933722667474631501745816383796357643786235662587027409683880421364994365052688944912622336068524456905605326316012281555296732647545356335269624245352979889091981765459895072928361784941675374533127483533743693062156700340125093657774054626862293033531984121744139381976474386623442489630389230159289406865064131049385570260501575743084188687759839307731057536338387945430829120393447377556542369448263644024212852076556386179950879938651816751627123300828970946623750747498788927072762133219714082412750116810375267320647765230336287623154444469748424519940625327435626466572631057010149190962837388416809536682855827178491773122926362033648886108458551753631129404863172182495886292987991601601098555269132640736649845659285106513047077706442703010131853610778157542944087247798021004989258921853510229569901656055493736758502805192932036430796418435963066213684437830082790125767261075283474020734836755673742346710632806139096358503809787651558701935041251336805933745465916796655447704359693623568960036487521547900509203369422044830954009930334413511636583497235642380852664865542619477177148908498658640907114324602793890777176277674020089564051062662502094889084812542104734125675661968314370173225746046491597561250193521936473675140654833793777659019627634089811560603832126640317878439833755120301112808907727499048801001371137432074078704809139430629402473522154584146384861696497498020011000440924468210265115059551556614231800836367117763015003100631238693509123048258088097322968392853708851683866693775411779289247880291718644507524277359012145056669794719535930661405999386813102344784463191080102469501263568776574578880701170063330762310316027190160482320004698041228760999022595506061928337626585618308291130695686529833016333988589762378511937988574903042465179527451318060856066633208265236321704345435361556015536108394481758557745604788735419887097407949159210174783553676939124938599367257332888737246980500540035184440647976688589740891556799454961146752914774213858211511235551893070672298252362576792199601341303260710477967207586859535887029684984785247572158357140494953691375095049796217718753060872708341230292741298582048005231301035048203130155497511232845748457919405462346162370573801899735076779573076920471933240293116268308895651040152341094015328533983760564671391227207211887264015437164970889007327422792432864842436270112547369252584588481216765688507699228355576222937968320454311333849365599928517672396918215135086117820579049334666255620804748718578753172123873612749009996138346351462549231580119899370301435309535441401690242204099820554049280546603206706642035840106646322307983423485148891438460487018762333315200021012212318011966310753973710329148842612709991601686869312579800979931640099292941382576171608707946936718556241842451830541514143003097567553048133408020075713927127742188437957424634998150770415131403594790265069388842438246712997811508767273879247656239623928765941229571928758364883343225616419266699590352488839071409068356785659934982914173796744179357968888369496983785222453575296848773089981847967731025121275539700025267134065793259996855625355405090451693007041718663409145362149718816915436230378196355353040873200976892120390329768012799119620734434779529757475219965467929758662162504391078045389381235068280699988506160455047710872445163270832020844009047709824787256114763769150195524037099213455545118910575055103487027529310853099854037345216127740545031945999170936847369074473737641729680323559011652592922379360527189804208845925736367047986582698551739309343878413895051265234270353474725592607763845595220117100317786963550138111207274607952432085262165195261574480132731784738748392517682433593291686395993161476718113642822182937099186995224530545746805679635445952216963868577024000283810287181114566764024550867868871111943443784760420738730312990796925633163116293199995200999887969291006471819168207187342171793983743350155745662370425190710933829058802281018546230622355091665403582363152661527695779198961455699505246807443649953723710332447907760412800143029745266526710759262516021639678471214337533959334218976161077743346110507995667156232716015523408395527167267018207959122344149118795309054128392787139359787013951679378316713137339363446597585772658785651299656586370253697682559684621666528087699218554531712545488363997818390132439674034749507185016310295377680074314591087412171790188608968797145995645255400699155619844234130742538248491560879866245786922983696356861182734739941763239873654556824139715089579891774041884495550713015235003533025007992955082962761234281793350727333959420255932819804451219950022548311217340441955135647082208884748003000025111765202112761213121039257592730497581166886705833720909503024439248631194492765828813710718217052536928908694123738956719911272640665162506707136202639733329395202935174522839468716213856207801018243765450306811608420530527528759662426112249183845823602615481037073813157877007540140662539695911818973781099629242967191812568371107613201393740785286868291446773950719662140308413804728056701354100248056767345270313690417406139575619123318366912933163816365896202983853078307123807299301694906307040269565028076826475121051439350354790269916878100317170918775665445595463205625468903792370226117689831859941849585404553766872969334202806885404355651773009025641335626985897408830714145242800500997049264989664220773903408462270777565176396774302145462649780836893928114303305452265680084802359889433433310302316967899075061049920215959879267780144075543151989429434635244809919001685256020456874113292268047872069275954351556372434435648930566446542917080603467385194633667288332780408550466927739180053604171631962065166267124056633290823450577056189385766701736447149649987709821295816481919380828134066271016305128381764285846664693131462100342346133777457807938713831334074848777746112403478579250979821780788289138703808725925808480217985243261865378649446973089360689429824435162076355206471852591819071461133111052206351952607773646635418180960260025587450573029776684784897764334140905751356466992789364965242964476745483097487838082626374684322961982940313341878306333351823408219663690063823947806705669582378409478834636302225737315341627281032860742360065411837127789948103316028825114450396900229016567562341556804270359299595231449168836443655635643894317315335892169857099043025137648739939354738810091302185872211816638229695587796905452387722730395137698165086126985957684227945991797220397227183280515251305185051892135110512363464513030439844391235566281168999807645781627469729651171006011614432106336838159206333472775817273618800485429092844859815321384735372032008468096493799140719664454467469160693688513226772798489950133102563534868731889797008887939770553725380079433312106315954655065947046476370877107726281384954661215117344809944651067041869269578374856215831793103327990757448294151691938791566382909032893261399768551366538430201661364952893662308796671279634977102296266725262169566035514535518593356926603479967305668434423638399384558723221156633686187610143055504117404986222325803426746533688912678151071852649290848553218967469259700987935420474452405792891332153631826138117984979331050017618727127786660329922498299534694883384629878593278355709482706740051029713134440999232283150700909906511353406436520654209555625987627679695279808115934954798933049383998625381384607561527162010677316668122134813599688061107987943631909852455501448931972604686595669710056649855048262549638828585503775480591492313909846005711095258003875417619156006563521233556614712806616380493127091381188704691900592468971908689249710214658213773829775570678887219119622943890917934468405575436172109417155038915865982852610779874524942803986749814490560671351462836284312836122397866745522418750238549730764771133961939708430680208708546181980584427557245557190286875947782503016559623660443524855880750059065185899374731113865721732447653607914194117613691397535584498182030052796087381889957073641284259302246458754889083647998782181697818378849598950719749409998325245120490998598460565784288111609053490974612732445038699556081732485047362576756154044613432643560998655722013552205866049671422776711600124095616307152257065246647055790471731758715759603072852761654197973617342471884880274072981228581677448233390958497680108104867469287452058322162787023913589073760172217432431509886843135887169633432982111173591947898121533040200236776845821479695096144208680959386250068003256948257554296602728700626249017486545620861469673157563765825574904443607538884816344017452193647860558842071320035486526882423209110905078829584919365314436142213162426025241376123455146285446210411954903464349730623813557102020759857473709457011734989559807017706398316932749926375876000789239133658066670818186045479719628438156558716095220196950321138819498829621260501317124514441162156912127222552096967013629912885480458982465785901794750510879451866766857825009101446312186419305663352956441747220940606969956755619671758563546036693001759915044485730607849033054595474479521099576695610854266442490967598938046626494047715744402215888123762913152882465664270866721766429938805246840414332369276454128410474299290331361533662149816454880589367511096229102995916834448249133892267240292371454502074912010062338387471434107080514732263015898420548144957371329550374277149103272601072785204877041891351858000279801525934683484874446712858680205770608724661915914178301424356994231302687998681890643366687681884657923922744927186078610634499997281696929184944608525690559519376164285899431059349056316925699652263791832216761194581390431671582706981847617013348834901562671851809066493340607410782910154019179776601858674519208521263511732368303569086486194794802159437576206065957915660260370389209804141987939215977985014206273492739066257321353024349481857971963901786513593360844013920920139212029371652804370563132279707142090868187404236092188588203678270635786042285957348441715261658816544794543813533053241976298230578491234210530742490491613471960261280749677980354711068709874170531853244625142049111322075704381400656929860054455480523028171887669677169403684659534516167895550341881116339671796646874627787109679479351993385727332531611585867699690814317569784272944153207175440346410337078156580759778195619363629140851972292408107728950327717685958563358087189683173237282649227062740030172699012424490067318090477347961950627148102206553742543773594824676489783017162099103215846345409771152516429710925281908213178627376453292076989957949814332544475845366057349138624453931153215841251915881750654817964825687301341648322830240133120421411734301345209820980506648129195662696674302628928961384270111153168882757390672051741516667693312342555716243873005965344587923482353500511249554761303769792365027311003016150597441880181180323667190080691572755761553121847818791699234072624033268184457427817855851693482597506888335338648278040775028303479453055895418748270161546040124390962883505163304601391254722836869534202179260957182016973533082539021977233966329085675216389582619785197573264550843974578222229352142016143912541260142814620691893593828830295700428445798803048499364344743945834350038452109993167674766825676244676947307889489351878711494389117770945436347814028085726179242114146823690151349544463052666248964997841709121967458364011815954704044577493609136759977826773413537037731182760046151479455632922410536999280644486091999368400155066403058257498868003149196533773363697246406666426984660397190740482402043037563322152189976054668963093464676209987535866054579233830114075342511748777911147973860712413875005707990252301713614854726012942995558236605802038083023505880698422923951724894528404318593792503415631416860994213458884792685157759429799000515348260594922822627063632214385350877135526000560028816288761254308756843159632114002160036762335504629281116070371871552118777203836366207472438071983571559557979095782788462547375276557278055635835586947094227727155657491149085456717933843636902968170500281194345639982838065273036809488133659575278568728540024184985668683311218368319603104848123978967651082397426041032164881285493557644968414325398944921817469296568044413258566680942856554946599744106293277031020449665490943533980140850294790005858196415319025619559880339538453030299964259533893712776154323427080162128938802573271618101674487481109119740923604319375306211703074901111691634274578966629516123534090090346084346148604984038773338691619272826614382773048430937751607240289893024910368508105794816968406492915746826228566492705386420852573025114878279950540196782160448612698831777993879501616812654112179534147923065722183080310353387874120566812326606081907509404541369987380417590735989091483951638093654064167831558075065772118126980943386424078009874163651168661557624972943102441639069552609799416824669585973285834573544563563416314502792765439047668063195242272284107655342428260486348319915492648241627489347401274513683985612576129410875465819345778819652101307670864119944374536588466673464156127129896792980155226803776636840788265115416943210862525682421620550349894133990914440018635704928423696727855330338991531668307302502326344810751130660738719010293443128045106125809732252143627211800460700412537429611379611975682821329032886128868993092670726894129218385379699149808180610187426232392712143095027359496219774346210473080244841856907510532818010771597011280936874844139351090642687246787268354953423562123877989343581551847463613061591931193658559322120499409700245394643441181344093576473339787340420074988879050049595969936235961086149093397956593801402911605261773519875859567124572640979324509282290215181162416773321588830409347200585651943382890601330278821274608555968796200344968253292518553738362252532979730087007019380279022193079232867034029634439105296139624772439818834472539806698963131285648080123843437158311671940613474219313771447291183340359910657973859049529248067222984717775570201338578377763860187294168139218804064815155738924244773894244228606559235766086036999536754291609043625679359438517566977510256451436006048889774996280687966744078417170057611775917934841361719862841386299762066475373374328834386120539985027830485631293188192647875415681875688512161913524390331160531375142570949905958370312035518410668533712622648934341913681981700588249178865361742582336036212495673637200351111152544311857370606287216086021468211532112463263265230883542715050388712606491483316640367920959209974504937764770525068118848211396869425120022777825504724379631681633790443299039901393650925933423531978529479482755702695166591253315377508258837778438038921737087039430391666795458143858158801491959096263837630764918909484716031724547552244574368945076614950013049236370757749426090519650923755896792284177466822259264483351482676979676039190374039526722577640537562079487175975917825691961645173079497365259922620724364850667958716965923067139093769598701621706366202101223205535395872827663544009745929240156268403826328654737077399336768407861779379247276493487435655118512345024254159636257216962593066110869450889894350433463459673751480516794010285712653119410440270900410085110763022875119599406691977846105672905504934013090125455050005888079301775825308474634220883047372215977889634386186316054139515561296952694559156707004672425964101906798583318357584735816574391390718303457125263314594010896719970302844354093922589742907249338763170607009259852647223978094427715683555805973842523369240491277090262791330633272833510138732300054243334228063106732806177897583125030459048935157418734328722063402847078280242749397081429453953848722935131085646730941808630052214273198055130757530709066178437216227411955936908475994041527038305867820604601382679700343386647514413530847960752906491910805069800510715961581424371181393380075940401942353037692347976568179269965425286350691324861617208746233763358769349368920140367368839249828144811878347708590558149750055578265333398304903262517750727480397161150796736313875251880031441529523824668530861543183166690677474040297063965665333620181893937313425258526401063268560291632592263947134970141404964517642518687547898249960095173761447795324474339909595954711210444070915008327030998049670687495313182633869252562162249398626180670442793499273864532637132265587374608178937192039807481017310902331707392160729327936087851550960777077287589709335690306629667253710613873556678930948050185389518708897173314058822454305222124440278861907401469602305861697751419102803757867086041111446431602382203792271234040685524949855996348753096564068332390009618590198607944020069628833529195348468538601117028734668954988871384645383697627524098009801118433201286651988020486197385690390958219892732690963062469408277752546372953958607757554591129295239774470006497099613138288750757989653791660460629427967249369966091925991488888132309267307229694058393495048708212028034184405077881418977520902417018464318549995891648705598597737968181752807600596832060847572685233843278463296343262401954657919922288179184858040130498163003111342797072694731282411325221622012795808480781552806427842462759943786632212397844794665434178257093845834711659022125791228279457579470512627533469278776870604590981652926137783651153352127770580845120359118819292942554599528396566401446984469462613511047131598737343443892698558487415963772723713299594873523612836152013543748983686699660322373858385868291657715791602644764740625919428601829561373703266298595473103325500828851925802918194307488591657402837080729506356350730633466677716578680330638048594706466598594062208304828491932637642744691463456627111574172994088268253310659832516747910377602029362562542585851360849792188511083483129484516512723412229520656812867879408585961176551969458254431824491704853513442903610370280929984070030637796523522780692952589446872443750989766027252086984725415191366284106142692726557199869129474169460199203442053076908400590103538216502335048497432742266808900260880048062709050169661641195210877962227073035238355231087296839491471615681276112476513564359224367411630925883594861506604649533479029783700896511791763820720755846516990462028824661650718480670643863439252963064060808701867694602413202967783276929918159160401188471190825849980510992109687507020800722522391863352978495670995579212685384057433724665008437932555923685595462191733963525094440082232478566045418351970258286809074528677311246934237950036397175771601645646022173801587962164237065184648879493241881628923991329513140030312509798973380773116408526331866303544798376464517029427514970995746209648586104951465675679781541950053331548222642646831404694682291534603739043427659941391950898901779000734893712313400537386775416607093064797276794310163240363048909179799734395937445929010416264395475489831094726374921398705885431033716203911472397593307219006406752810714800421581067136318170082019459303887984629001223055034740613175372025037821090443989503185696869900311941437227569109326039975155353631631640728918037558412853694640190993450596622310993978074177298433104882995234112531555956272920736505149761898949564961114234390410671559269044753456206269190682283764213370512709191315129513455881736862912878014942171343432935611334048386810221492696540770043591545170770856118416238923271220944058651265636303844963971661541558650422274313226040644172664338928597704588914583046710180830895116296682303697934831103686368018502325925830485839559658549741041064879827827212400853665911463255371163925413317410498810453070265760449351010399856914855554399193397076864837452614225058028890017044041983111249419341425261039908835272641452881959571057009727609335811318841651992447625723440536207504247688898574953166077502783067728998042855984763726038181529069064340908994715464653966518656164985430077772783275259094460720146331167825936648581707851222597061616968298577481132365472288243010708229686581240162425249913039270652959181409994826801432905653918930577907926953075431190226560888011993092145692599881670635555951627381720801306177562126391233064621379526487276072279810060566165949475737180529080175317114103788163326671885883779336320895535876609449700502084688695009487291612920828096419825183377556364972120176873014949132345811278284205685343227895101268154881117669407938171580455580490441042539366786294868755145201524460191221447451615775997503310207178236104976699191626625864701818033215914536244656160111351098578895693728628730813879031775703325948552636847287453119584160832235355965758391138613322012093456267560823174101433271676965007980250818662410016064352257037354824750325019211188176332848783880857666861046467992741222999120276727226112470994702459735112836850760440519389985801077317619853211899686765256921232637547604310438008526047136734703601487359854132725188025391472458751718410603667082052712658438932241569871226502296038296005623120934443309110638813377222914732715213636314751883878192689935162752572344729219151722043182579363256021032022296798678904293976897465986642747053623237347302265939452487950256072294890895537713464790228497165706188374084133812473442634811354810890749064434933950529838034160731161419516899717232100802454009679619618166925686878255893872660609048488462560361908902753885744329516606396445306593806347021993268224187327558157645805232528362417340808173405905678427923043816187084138136121787127758770680461701827247578637733967993411459906094675791863423772927443320632128622622139020710436365084118634706726356095445580064132123893778911779133538604277749684331888894841805804764259440693471655558630831119564453396346566894748149348068621941859247635140064745472158334273797436297631802366383134429327943190475900464252970845823328305065554258844078563911120402126360307846687645552682728268143135013706776149242496979862772788433048287938283763449759003858956732118102040440257386046366465811478518186131231327094764821328244129504860630188603460999257381139157167532295737298184983612641576531098656713178301957010980381351632090411957977356688056790812832051457892799406163476931942711081264915246896029439670043616782050806490588967639628652912570769321926447371636527221439868525760737253968939975464768031589474458989120238613591002321783005852252911845011798776776954972212596968088226237006843135624282903839471763370261865163898753807504212614873435306151926145014576362461866464488360413951050921536618196599953909900500033130187301644910414861174652894643211992191566280771612636700040300593590880846475686901591107680392420385728728943553909922106321225304598966873607414114610751224600596342801577605434325937202392760999517612691526060785275637699979384007266561765587028505807639197058887376557550889952806937336852374583331538361839283656930801441714350892299379255231331188795956312532076850444757813950522881794422306513702857786249205362782646975527066497529915582638675205174846855840469106450386544790323676886819652196578530189964681227112877985728345978876991723954015665412925117712810180089933293198194265448611827079195644540552555675040250155881092629362135648506314700853091004688098256487073428950119307098618496466234013333677261615213045787964873984084709862687573987796057199356620786783856602465391923831979574212090001176276865570830162651608217031317189437123647941283370497974468861613454065378738005020393875779329025465169624824947177621880445141541109983244806515599698818620266988440226229854293390838125177983566850514494888853703678969753114536844700823359608605450901060500490919353163373057279746499671715885499239395507941047926184573999554103287223914715500829451227195584608373169514958249818734191395997760276353804375937003727868285957263679236996078967625967009513480363313907848814630021003489540793248306432308182764965120298542663666364587150820374001766741898798598028216753529164965337451423205612908251017272829532305155397437879206005168309656280484273071794516045134792458891246442528341150685249852948713773056316283675021673929771935583774364189496303564037774151946074957529293857279141983130256873886141102029551345914602825469433550977857894119021467597528039172626601651882897526977360792511159534110303325624960251671373911754363905342215220672842706229600965473553748774390520519640724504564867304320711552897715421779025147025277676629713419130733677189741748271129186070315960727529206399629173810534963803791309966003127868362678592313314786692986180032036125111545696969234922278446137290006014820639100347157945124020796247153954350618970882582876551056531514012656628900779374487409770903027879684508812138082742249203309619030621172225773321920906435752469660072955201959047469932496208057359904453457903302406801158637965731717129236874574394075442082614143565434661463905081306278369705370413840566753107874265619392866805926383399358922322010254137069753215728320494477694616906044751502924930458454143785896221036405968074897154075305018995241031125820942961696807694752500546592531288618710761467719427338157578286538264714650348106042932804345191148224480405028959605483145042911285317329366689614795807593451888022372111634067063736223320118033416466961770581044441323837834983753054173313118167296825279527162883702211967591971760067664280088189801039330939186663445629889109852550999372956701779140890651929119803139260219485581912670306812741842333983590342303253597151856183148921380727563552593928011014235380735814454726867701979046217989050939993590751494647271107730271199428114805179864566765596026282043448927053818300372981312416653972326580885468855499494628867528278955411567541715152443950496335120763001342231950834354349040960477451404393919353067696191360027192923793567056923349418414765008240639734469782480526653463197698434146997339792768641957953068445569777450385077928587045714758596655989256169705884802870132085923499219316262596722834823760652043538706345612777551976890950946846478544564605444002858464666228415466526091804294465386356195420644439041293958746487257678077656460296918297437604579025834762525608040625689714536302133096085609584237175092678343312894176226813605374681437440041984239538235181889505847528508292682447242718486377173099351791213795341903467932113437325004224259025605113785262044819570967634774137057794433371378528972768245868128867711447304471185140933104803735149643802287701455576869773268316886735807869089300665205109415889683398628298845632221009732386250822554432232687660382557199596592225949486250444809036488494004921750721393580684479731854180833543622406436112292427736579797759747693849406995941529957574310630896765669832460750195013580676448132501176303691344165720174444811436077260085480781656852819547290879172068655353702897311644356993802987236456323338527003420379379410836635792415760946430266519908857150744471513488257388676583940733604334104729851799703509650609280537385702977007833456613180911725386381285303297799723658144055046023267112517646991278683956432191680859012764376065414368696428923495790152870460995998520533462229322394505889142583305261503039592369806843507920398956100432689543321128790894254841314013342808281915946005224085851967935029779997137328324591984189250591994033358524951590339518559005693313023466947490524294659760641030041712820898302709337710097131242340040598139463480887463201150713136043031440220417661340117671088341012893834735314590043437565326051338821130818394548698954446295270319521772275081832561463381319828735925824728564418672256090885023775642594061867508948055517477559044969625225447843339085528422196599038072522994703354906679748107323482058650064919250567924879527640897459286362944176875472898068493465946087462698372158553427561438871874937901814299294068623603797674854704054004890444706760268244023661195650066291976148434902529852130490109049847763236032878065157229944142179342908496021398913853074432257375760765217880527485891631691051806763299183114479782378274898648975862561638640917123956162184575714041302760332784016293690919972245673954725529838337146208170156909934286356075916726322274832647398586258259339814002130911690872139066597083499698696612122785373395915380991728046286988060462089401983128597867261576970201515443121831431220186430929776872693596278470613900505008936070264663284140387007724555342086612064135011043472913193652434411247219180601157979646695103406397629187444316678014992389129683307925327258514067554351171571412794924179504185147893376054518352599704527755882619457968706526686934916017214821699116655481663893531337052415665640066714572514538420346543404425172501697581978949880983038769185297203561988651037986694327754587394780299013749252561031430941083953096709091304065199888400472434912909801560668525815766921770052231476201206303412586133921171108703286754982121900353948396606090869478009116844294107919616033040012243536546069421183052090064373906475290479891549980578359499300236364017388040104222970403761355744908500541136847614470601648454761829752144459804830606536291740449550916997818706964376393364777105438417350355546047631718761152918185348162367158493066016603412497745220989775477171486776630302961291349898630927967490394447339326155431198019719355285599297335830314569810678649257224136514579819420744966300091265689236152112037115958143820262219670520087296763909270887818264769359572126219489983674607461495355169678081273612080800113172433959532473761617480335369262613241759560425128749171475384955906467552796824602472299726635673898449877549139455154582766344496875893118165587706177843525734135879350049712275393584381236300984006214516380328695810900232331830446517564767547597929095490536938338303502386453316087815032491406938560857748148047676238701048255482181291941486015664139504166937213450088603336944123998192696763210549234014091628582283583032990098064283798451805294788426680857715189213778823425198190300448247505336022120521562821812839496422504716402583275439932479133701676568289848619717696356996776607032326712314851627114379985031594282074093727699907766638082299424944082832793126043772483219082179186061890215035609715877814250592467877973187350222694807251109358233322739802645331641219862608712852143047270413275944679670707849642144934383043867123575975266916308043225464642870453655183849099329961670017006578326065637109093912601097680973316745776008229454406698276872004164428806833459736261700508000659571247569968412209547072090671920656538774352142735356860655710776259259137036073601370440332451468913877320755530580687168543793998933810592057016393449540781873757804322909431758997631901856127902624813210536406984931804436362634703556863949944818307458238086972569667038993518969146561092158665720208341418780997631380677548858382763122972198347295993248828885520476574600378675470452087120666220168899890934991593690471784125651641393118547779058132499402458778000743568643755548377035513751354580300217644256520282468240755003302121400576801564057201405327157004753293235788945639229771162110433745544231388677754770737176278203738890833671091141017201029138981326366179301116479891652717211652623242003198053369499545166066159369329901823892450786128142031261031132232847160021534523669864760886078149998311672868423210526395868865710168771689295932935298152171792815582925642800910748146341865608448898312762999217240778676475479956486367757736548158016449446008288413223121737617194349247555931491840558418076443082198148752897014751686068551152725525007952069438240104046138254738734129400379828883571131985133869814320204446126693410348767415695876841069430419965796342491298015504580755245260813275313260179970623298019590011531777665788984227270311830285983455700287110693446512693569644254571804248424008799553521832472853094298317034554539384052799051633601892958342161755289116875436173414014330987300185839660263014687359293419132676558507929075056489464792309733283998977162336195578146901663807280185539265795183646874070963859015947043494656252474593495642388572355054962411546705648214114401076359091325585362908782278063273206804999511001503497498466968508026875508226397894969210021573872232391762853798002602844537389581871010151634307205087629625056691667955875069404623860226085859299444880295827333517980992337669276354969440854031175071677731867319669951165279517332036737011318799715465331482003991508308400643045773956379244835933800717479890693786170850297821591261269746408883180377244231738566146519273264591968336908243604440332806666771333377564799878128249358576547759651097047875021127619646631485976413396753231550613473771418639827832259920304476515737638213851826264349651559601804412935723953176572029412209913461606159489379766135707333517305059482291020667336533109398206838211315595175659209559761624724297054854963109975776700468907440636596712976007974195756173276692933095300967887447353995840951246595461587438201008087056355852537574658051014406972433757453640159844787333448926830200587368869930347904328171801989998483573572887725204434145462480751399282896061786989022749407606701362879184106499984179728357183248333995573056473292535099923660820650761641763158918490144493058517493740126988483932767648924996101292495649997936180613913786625682292595437477723136807444038022328730878048587826195057615161639318802360442137909717437076052220518623493265567797811642805091823493817802095744462722924025313051926292396823515094984466775582579394517716245155792648687932721893560194133253906868237652261960754211109550001255157705258823715548565210698261604743427104727403984066514311080756375325972196098739255078378367251415433448034067524369900852778294811253669497401920835295560131686981293762213335850695679096456290260475397588330215725328826711112157800993151235677268535698220532949546860570571017368244637427483482035922647256150818048195275607276508326963836574043020999916194672337311571935739613955289266533985650141032827207956167681190394055628795064620941139950390817972539147738368452464621748031175032150548807436855900679198357878782657288551768264006740883182559092519110606379125312714358541363885618187767594626881845442056038955427024041663636384467865297293281787968961107307929183775876516070603054716926950528172937034638814731830284176204980072522625566395604531934079281428291128511591558913554450553934589886466775390067428886410512644957206720360541247167776200570844891458140941253394205614075348580573443343953029587410695736791127166321824209096939627207007078189845322974833619193128826176973232222834591008623180151099138035829825963755512232019333371964728989654857896019877263438885717683549293390994778909547445419695885207769920129880378425306078024810453391227727221644165888948729717201945282618853642048411700576339438295907832576419433464746604177677183058613701656249082142315195450441513863017179557364697773141796724974760710798940427553831401944837077819035862699534014622838057275122263448408723938052170562642606968187538041538706661507594351056498572797880096444088772744206089657296396512742821143323647534477088112971175365788194974383562843023378553474713797506963637097852313612520018767917359116364656406403303215605241787930886636176506239063193125837124669838496157121634949161739130923515164990060115675229485119528552211302170292526397546834929794543739326284825726107116644340306319149289058551661464432698906904615819394113828018752890484503126216577779620183761526031956452435758830213091544298028540813912908077307058686383212489163818249456094766787048479750655979456502413487643935752043621638835401647957362290206939826616427900204332216289529182968449855375282622300486073874884407992263518820421126103898962338248767932520739737136859074633872638386946162084431359262659630629026060598882836534445809309660378754194701623114103941293506099266282147821805009130484134544276344853162343417658299346365783428518848109059223397409668190222189155925641639263001603027437922383424572557875852591571001345019683245586333203106739533796338390543966135095411198103818259907185642950072734419421843078043606658495810033467890993312624508558865474610995255990695741455124994453990447404562072200180736290957906421081555829635218318075662415883970333824768806008457666418457339151626540785618455885289054374078268978421565792998518322604473175798715417660252793060814220657208612192020371054514908351634311566470084881296540966559420875193082877743705981563749151024153793845086743890297346448603903404576391102776878297025794553622667926842235491819677522172040067135828513021636374675387590649558234641626387425336810117934682771153782596164394278247590625361052785191244478056799841046044167506119975868892713002933325754650723103199668057891106632606695392442014421664988894857811941406461495058130760604296934729681031123298206219333600912884914980422227982896361296927928819919206922709979875642553839235283874694297106233593291822302264142596641169148905697781959201771635970931315034458172920648440480480626332964854058360056121302527669264138902995858884225343654532491547650536293190164552147303752852510300236713520589007165843109179404550197288149124737789783943583338716018618092971547039600715773934314203679952948581572753615821008805121546221635561852450768415757559896669912736327798860972847029073557871864109449558929403103858246897283677737011462202975974319405050546474684312740739542573554520217925416593983630397089341587712876289880518750552826221438019090667380720138301887907962861562751478906819966607512316439258181411165558528720956698614737298234525839867368367162894616156913151977840036281304919780216625027005042209473541338525962503381330815577606209021646383337451554579008804893492842047647777203115035937713822397960908476232000891803318310204578659017325831839092481481796164577985098210436076304091061394925313515410176113844197931794722763799259733247292756572788903090473371631791165407191675069384454622316673950121038792626017896421789017045068158657935155030099944638805667241177595706165383249151819223887775500510097776226534210217876258975624351249434343016284393569213793336062777726218898436684620965992508839657298709902718252985960030747796826364174013687117385060231562300930635193758868667521645798301104658218828168973832568235154318681280319911470285201256446503990001416435278439830434737679729051700523703809027111785702211980887142141159056377081654526874765750124905584405126545231302586414890277335835923518339792562983345931980795998785044095738661410074281720885333029303525077734276194124449079820332084056141911734557447144412036863851392403270394476545635508689884214195877533985072190957919713734813994576821842198830860345559505767259955258576265615034365763090401666646137039787523020316337785195017133965613627146188938165157411522468064454231167843993334528425031573811736813333536892595133547607309370183896750449567458743200883748816086547792403606052009577545178701016091207493502449224008461276149738567618972633501037504410082619204755332245362210399085342845011620784958629237707617329954078259234040732438022505573935844827727364984298144036776443394752421959699530738602913110909009017569652183447129431371011683562319531405777677001513061918060785923489754242580816579064904983580029148012721696069783988464818357194898341597190917475174361315829264382713353295080078535232649699065001925562502387566639805991236200132798001844988900560980487911997183430369546661098007005865467213315664958192376597679570046514232059228663416183353606719319110924577311890008882485567390384145193453949871759828071422997216831921869686215378024192748652155794538181371807322791662795949333303485991998175359749631357294017830535158365205487429360336997510185296641020497516994374509130801546227034229414799342251892396339789277487129708086260223202174244509638197564678292290644029470756790355069829082680518566555409244303448971937859414138396656798705718396018874633082821447056284182056398414671168682425018594353025908992336860146419389775049187768588440787856498543484788004468320829824857728406572055533402818389612517034490166833972987445869683137394900587188593413879014466952091027317757643012032991524636743183291036751449549647235587919221910024099153655476028219444951033635107563221674094293196716176054474799656404245285593733189671108405617223115347869879592452065210066409621762726113983016767589364942536366858445842884029733831986793291670823136701836305319098995067135221023412800356387515134686210871599334139000130393984813070352948050694634159048294036232961125386842761863494467176990049311913903125469405322980664577599060156087662825620247487055249676381448150888286054381325409264276793410726022972952207899363645370023167707443159051409848316424976536273023909006131117928707910039594165631730048579777097843371476308591114394165208898604041332018754616369526931853204520484088198989339486212265066912651761960529877201860124358568690491665145812944229824290389899440221986130491710204356380811709093221824769731166925885247014825345367149903403710732068044126098421393460052389675214809010215879622997982024001638564746805932812828715113334398318900031892686975885057267668931145234511867584387626306784621345420605376818644964135602115969936090142820964491733434860994151545208873745195137605244393260200612844273432939069078648762317623566235328761894311161248840416277917199294673745271899319591040277673851944166899983410352324971458968825812701292085335522990973086502216785043585398844832402601673645640544905710048562391555516118710493893708682728633555747124997643883988836639758179934152172259938206055558899180551607762188692483961416849307212975678993176783261877467461651273825242349905699850165579619897496536093263064848545551063823290707086777542172965506868257872828087623394320174790603519755808653959977820905471999998324654361145165150713380094052246942117949010570578120176668003779090010623825327626647354027368241216623561343196891944398186783158156077582588771135023421831708205294323262087969495269112498432613550002371885478686109934844309265355668515025460560985728534927649785400638941831000292637210460169112082265768945249441226427758650341777608065221422935751651955224944366282881407727293006542967585054059433163958190911442980493200033152262722314909675770675801293878974208871186613618108742063890364666312828914438431572066707867841365749055429778343293539428330467793059226715799783176538309267392057602731825580526710295066819807458942736801222944544012368657284372524345339446250662623503179039258405156768239749158400399002183058665551307690413245540820961024090094439027445440775405710369470966224946610071941475544745928646834647431306964897677746460148250206225240208952381908930647493108193735655534546429279363330139453805638428907914600325871218858688322475134293351862554810493251683073348431758423943520880233923025621650495592864992991370085805785072484053228742929151796917978416690055739288193141747084781798762506673427357808649457351844862000658339698740258699123537505834546479167877327583418842732652065347125253313651949089436332690618025305712447416441659519011814729152866533352034175571887374175161091128625010661353879625723860590470272159299795394061670900622660643474898563537011627944079657845302188354375207534168838970614238448758781649883415726860354594591094150707674425000951165217776733601205560936189863837874797043852720844455475081084203248892657651295917634481783059082772638910057112190965372830477033033969765601711032550042404134557750391520060347722955989021882752574258484742042993491369456806464544980700207712758503959337918158069209651168918967452811115782040974533366728469761316078209440775605309350271502750500887809126467128465185130147458103392751666993042074067393947921603373150303681423948562522031661356307702657941635346775846348784229081037387955246356344750107381676773743096839893128339931125763322574778068880398815960688270241256396677481288424268907411709698000515151416383634741344839154102771418837071126976073352795998215968034601996098612672423294958626262874952344279595284617019565500483245687333610040684704496110821430267562391378230910092213273683978117851266404428161225786928121831612426056359754494192927650946827982491209390593702677098100135847260485159896517842301176911150144035411210273407697997008499062576576058999495174733664472085343008919781569607209350128140328142700875870059013646935962206468375862791749291695204636561120630728855447137377767643896092669571595223550655675892792705888761683138281928543007196251228655555483337759834796971290186923166037988060069319808444685034815778308761122776914066315034446693548643349134392801043802000097288024131911014015995904950192750361938087432882455406672110085625266764651341052205778588355388385602550440278706335607377025381739775359635149160384020700043095339826943876562916912263150010873994854334233935022436124563406006441600176442331261613311055613982336296994512439378352090396360156451112403282268899070983713444000389909786652202063119289628961466655108153321769395998109340593021116651941793935944578756018148029622124851625368696155010572768595580498957305125512987717551658752642894539110178404508861118944130393219293364480161342162547438500460006535407338173832447545142068111107635261172232821518579951822865607616167002282051481867645289009031600006879912412477895369822713707330961222737787095666697493130384452149671619739491743084106486707010196957070161929225341513462717515022625046223109893803365089104858618559678039637766528294734131090110702282675653750351678265730559938420692167184250154875832136533124116411764647534315843764044245764385051915337157115463166074942352381111781271505348303089527622777383692562737962245949884236567201204723031402491845302348076104177329729777275878928007011327835523217819648475750129231498715344797039385716203972344342934442412027522992701315671208848765716731140099767695239027859818716285334283699829378542783858836019710184980759963656709712430548253882579956916278500220616767836623632664932946260396353053844601263487749376565294518827371422492653802783601123293790979574141622509034984909494942299533434412477417747735074165180783730258716159507298157934271101088319273489746570473687607834125292890695978527428698581664545802677768529094224471260722672910749652340194748463535383268057696284158975947365977259592725733636341304121100032328640823789259901494620712886571725369907041016358017071701362095164325021739152540415393045949632278263877438632049253906256187727003815148074100609135482491898183917615759608757340947407488344551525538560563417848225620700302943199934106912448546880696940434641023681471810806449270035047837110708617842469369583291077338741572397367184706720728640108673192253631216347285131733017394889252243312505247094460666202557062908182282549319534799296454170429711671524402317015016193511671643457074346910855766306045497058839849680509502085658616779744737620194413630141356546323172273741634764163667563823966227975073579962604125509484978552517722553064995538087783964334483680261766122336054357481741564843866412048732387037731958117820407322864256509662759996512724693908582910849331507319118714440594837310083392498932174983467408069260736059649779718340872893881783056193890015937290794164302180038912949926001651313247806487253478876277891322584177481734095944023707417346064701649254568252425404458603034578044324453109532697666101924434031183757192274173108424543379302972119879261575705330961534610710645711767444974093287953123013642472727884595274897412377786082067869673654984544430619126086771849210197752394109286991154204872421440715902649538298865871542668771364587162819137504041193552295006279047632257590099775300583029700640252946249443108041616453192965627073698540603065083982021225229796327022147382467110886818593358004096536276291376501952196316190585237075980028295427333876957824332826750688347805228849841053738857039496571459176300534940028107164396266037833990321892721230211872558489682738602072892297579271121597825200894123732107586136419843022118854414316802256847821463556279761736704512483632944022748388981924164321686525878741283258706056249510803013395603447753285876594906458901672913155565448197932037371818880609198180670410916519530372721896788045720009000987387528526431395764978770460644864431624317640945424081434804359129636063362587082103752113878184157665052053995212930521921575132086571844918578872666473824848134534550142847065262767488648829330597306051182564417932471632980126559901224078928050870214189905550571968189866519450146646651040481366107972067919690187070092025643400658662978551780129002979559473026171022962535413709512466319769755870549077652660203555140591147411542762209591070579321097010903047166211348619670216912742524324244678815235460364960772428267935995367284944068956778323043134625133147520171554980571336735586181904615059872434404653086091946462820362457860895751586695935163336544440537066564929390950672437631276431765906339115510507017788470278419296565516798614234509726863018438774848785234868288764048234514267173108247801412787792014401914827321529228952136477947314368288784419589636101284721851857808876093020159498923796995957678461445778397736170750049895989492014490875926620608062199682379480229013603423639665456003237348013760243695809292344768376027029857206914092036342862113788657476132023526537927043345467592836633870023771780445905925867867722899913774043258490666267675952996769822589672570826580101014639229125158092643637795851181618135464146808146886230754139972923292332653198642522933228979581552844205950000881879493364497196580324333532532218761717927057608517305533893313659888169388198880555440213537338265012493536327798959770727256858211794450532727274286458624722743432452013563923181675523325878381273030116089564284372666784575950485076269250176338452864090101855569566764767551033297731500380739837830922275623267057287413657775596527424245373471622506332102704385068574172200262988342637784741548876880295979204066441496928105790603070768059673988521973531805406972606204390593247848362775662604985562666710642052998852622421333375250705760518514314062216711843419876064289437288186714986973056495550341818525700466703468413558312952349352819750493267665532536221061356170123525277531555416493541947723402829531787663702762693437350193809069237974792267082366590772524252833077484820692972482081462528348254096530308172934562279283035085756063165903755571472681885486817252553784215629455476425994359498026400302650079431136402484158432120727021304895895563484803129651312770271259072689930881007481015605037226459462460000214018151212871524006966593366692602636643998830319174557118026919899341397170102254863211208112939989775859826315457946273689533190159959598845895834433820436242937087062222137276567627074482548296826544270141775575679624676489682587317481549853706495051365196588542072601032363183867671117391686384050499261507449172975907024581764096652136901712517832613003767225467844702735657076757204170854213615366583546443149463901289514287484797263786866568490229423043738011765937089308467211067155636275889198353194889307029649168047475625541687164638967869604854543905598085008562398764895472001658387900613300691933719297791982921358394789449095066387974121252174987479732912126789293791860129932645537576675963871903153606906762828989022478661758176321988416825896285358582281292910416830768828890342629379853570619009889366628892474168603639008820944278172290420091306658410830696563442246261076875827454173720215650479002699097637308458689190722436142129653545657490020495383837312192681494368459522759252534671349346876008306930731042659097660856425447409221927212439630795635844451730700765773791999384645808044406114815929646123380922866838815678699433058059119567840255258623205780544902037172194159615435913358270860117298601413227678639357061023138686355580331945473808257351460549290867462520562279343688932705702692313077284615808644687247085476068527932497039744628863652118970187631778519027411448985054588565996718691074172080923885283636498186376316712508146049262460248014242159070270421008471353812828859590307091855200143738833762053969104071558593907749174194285566520423060712698083064624707782007381842640608247599179846079524191923521205564560221210760090400598204122003027450645078407189689781945365329126477859023686531916342072486709843606973504308486614815832987020812546670109709520891564129974700076146501937484833362690452208560563291518948578397676958772914462408765254087587444635950656997952469855971583693580981738569559558334429660989216021757737052459082433735729406396952307475115703935435706343661296721881373490837485908325592800437489478661989195548797539169555708865052798233798316715550159154196759773679273149283702019022447346564657049756016002244302438120319374449550837257185169059098764280319535538221034181827950503680319008647488640746313813371261711546941273103558046488521597157570977641992549873078533650327211465173434172244757363319402476694622167581890604217638685767102366273154315735455920562401149388279595264328331591612759100076731816222651901094066912509102146869957881922394124912308749923583143993684989232971538837801462481175752430626881064299756745715464789225870405927978030185800272859387755463780165502392431133653312396172787960929322784926436424884448735709368547669819183107077814478160882958046540010222761354482214438941872008621849758168934770473243203757679601600543718112886839005716638366480589759798471307406782586863858988969609637364178073629494727788788519142463945894613612377858488599793247830635920443079655429831347269741862446514006150043969462185637656759058628720965773847252149528598622529612744032881885007595757430734866453307879237453783823256616880825737576184247649865105684910238332161808747293056403147048824944135368786694351990598890056932139558222656638276235077875575580743427180067030146964119956363867534465693327310976789732840221693508621248769872574340002059302373497396271180242737300024242827908690937417854599539588511381575058379554654238181954861891555767140974103447273635599261131233142566668433498915128068794565842487024730578884404684528290204917315542450815969883421248323521843499060206100748780180019323897418237799002780870257719341331077886204621278170958649051182495141312659938604200029980701628106965685944781288999249957345142183870498516627614916667863830053628852918417930553299889584874731882121222500703772560574245386568445336222118956535543416699144762086070952223522422517643136316070193950254714661996052318272185771958058910486150463007430468170698559154954956505312198707154529211010490156631401061119916656430024580049792645515202713210484141879355404073520076366832676682083191408482650062062591154042163173680734607902162270547621424240804433501133150930876686268090213481066264084425407376420434088766390598169464256353221205342826146888054093764033694438511159848694179411060388702825440849681010403862115538112880967676099219848538949758523922103228266978400078507358649504884078220244971739880561975480957576562456933147084486706347171474787098565706811603236650084982933637416659277141987086216734255711687627253069993672322502289227788059286487680786059766593942405519309004765905056675044255160529932027207560951456101135514149820637721993122754416550136392320650679339561343533630142844879207548927314011785901420875373036015932193123134543032831917186400704419436193572145119436742266887952666239055125363542214583364224416186272251603308004257101537478570515529477621802908021048458076753712144935828555847136260455710649832827911574551299432833881418232276525024371519764935546122912272384930040627980521245059758312332653606306000067434542803926469197964950364333928686113046231813834453387859205948371120279212458262219533498967668548144282454264943004376253609848818428351031886132446438494978000965567673672664459989382493176712723359269368890957399595727451154733084454794263250939889287897035512205904377749896603279279814873588547160731279737772637063423786665978123619323770119849560768851274736646913245225406798277915913852318800215337332361614803188365979234792943506290523059641287293439599284940127085918283411790697519255633053016678276827219924908670565814193576512046867728234214353881393465090802573728739991118682249998899969294612357749128058643471426322022402918467975504440550163964727420043026616743837463957229349661662198410703528574294911373594499386507474683906374954623484096864871618132503618951613339013971115970987360342986348037559947633138317724556486171258015381064983676566261558241972310919235886070688879292346492454947898518755130502007659286716514416172930188658382743641456570494604735810901706712303720120595225307907567314132998030827847713592507136202644279443987028758137411143928012964891083026971081655340013824194714927682421720776860492025048635265135950102307675142002961515929995916010249533755181435614875086151100272148892372942151419531688254732952317391863514520124287815415782743581730406322686475617362804290084739448033880743339321711724995478671263370421941003995857753972247943591048763873339368439729133094108791188628449315793639014535793646720430937675570386179783529706859750964703489753298433624232020040013460874085176225908741250027581471028274667157088349921111635747877658872620952304191351113061624241041673708068195739140607137640479375281733889605297403368843183105418143729888293348694904887757118697595778330208822516945598449524155369201535072158008827877088483615318712906672422617138015070344510781128707640504394393261467310132439639922068259527690610076980956510456402175147952592209087847381197809499663716548049052701963278901696134365893297799965499113500674245912173608247886314943203889696733584276798664871234626095239627206553013635211253687196864050466323582720007254519834269336587698033497185073051427068776830798277686965155250042371535892937991982086604280809645302483431607139768750249219734696540476268089739657402998385131093994025344207732890746135787661455785960895902991876267329718701825672024122410683863931285329844922115475408085903332483862037322210552823501180103794183963783901472202325753729934471089915680934828419621167824542753421376072033575285048358607482285929035168922019334106662272297684663713988449664117688525058198458707037884751815844718576315069685382677503862691451295805358528693794740430335681441644120673572519983933669672281273231678662425455038601113742238674823090417739198773167466365527447856897520921102670485250813729922000564556295616655556572795284079299918298270085090742947542946836782523075013120577656408339516887781554752833051192258000794875524931200319220432083280650948953178242850793975620192914898636352539142350193115123045764582985015889355461818168679449831957536473480186020500667038507313739141268316342580128851820033201800172994240010624577502895723863763149676454057923358094662959513288310514952757416555329714238035486735441650192818559696066466096930556332708392555697613169277972074515804808834426821999545691285236466164967303200734394451974243274910822962253544452813917706530366479467651740156156966714851577084710598941118062476684036556182384174383946121543641567420839543541257153844423743119838002405769377878908799111181576098509101889813994358012376708498831373162805330522563725364075917880859096864649130180375832960260121567255791078974418285488649389717027900217731451257124099633672026515646847130501046242570870856035211273256010785162407766538095699116634885264034399922970216600491240468862116940478000273015294444609024656008364872348847063859625613663666122742896024318383992140908393978168685326925264525086287151489617492387729145390851428179399326863066075588549997170032708559842700527217223154800455658138785681554853502684583175899796347656122166521544377855060748573677609905794725077277993765362016051680208763258337288726695303364045211331717410837146886999963888522970720968853500503143359818486249219417040666292736253394342999145833230116682958694190686407398820819361932343793024340476390606781200974568018268905580460297652087815464568251327823190105831260985069933532175964624896472364186029938724275545808548427023440062457327024706934064131716122750382124991918106080697097209145949229800687872416417694167317949971088627781086631218398991874182216506524387559779267907042521926942505211582192844109207477930312598123191061071521412325020459961451864426660835785086979242302399426769184773126881442254907751137927860574593448863267451588637882333649731143356012223575518645931907820521410513275774513947877323815551008182167982903947549337326529134572941826013953570960807652290411137521351882541005147916697277971454591155749609792075689203497597576280425080053190523880703348867137513074949168484807024565358567993816965345173937412799633513912781707086911334608029376039687041263474908525522814801560668648317080498348290061768089150638880415774961908864288927422580210561696943552944189875984737181216032103174207223334873618299195666838145606689217354294000191755342017557807038487088406998453875871144142167154839693962019536195093910066769183312456226874981041647792193609722746308485888035965073839490549054616321850258914656969750617742430521923355648961787886697347143931303924518658421535767758059164039860446458515083985445609699751765704040252843362757879895863165400300877736549265297830446107734986477409843756813727113102895893043448282161544027055409209759687975309658461676392109045585576216518649094355182978178175504229658814349401516285437198113032984546086004552448887165294643887733896344039759263625434599016615082723022110337874120910211252482037563107005438492054927040187765954815881915862656563781016916712497614490563648167370954849496134016453124263992947884174648231043184799193942133166266111211961715967188299641621719079918503955795460855219230877613554643910061830428865086686749884950954468844311920059975053177071805295997466364885848050671091668416720319437737292218889293483192389160621823223202467202518382026956239929195967794440684009734710855115563981003752008793484920846402084124063762751154934430538926228552420356446928477539825855778812062663799126007987594273059941692327057524268993706339424873793045505977990003099462833925182810676007480995086983956377179329793249696560761370569256874229215058353161663733657401339787655232874973091690743447499691095817850059992604542642671067493982276303665022937399412833132061850154600957811628649077598735459406797384584169919496443832361216069905988810177959792080029519524272822928298076197392513592818611728964694608203848196687707328287729234703914972654723151158712727528947206386006895518231453944947580858917155177844267484918681636654292173907632328920980873377176293057834139758155627131004892784077005278721944325146810540385382777836293131890337088463256694909754568755029712365014703886439259601072444547912209633879201995763910671673416211853237705673010612894730370792571823276122047627982676664565666696298554352042554400577288404315723392874931966274187195559586196014235216204147378286787190002559041370864267272833540930407696163119391312813946327025781548468324645734085815235268064891833130880733917058555415674397436040130970759023766908287577481625490193345411919982843853760361382535979079896245590983774511278706287798056029535900889799013885488892329270621758393813984793928654634744990391075558136707172240806322285323245562282095505989159920708428172230700614488335737612081481972035470742062396734834168017602087020909704022434800907660539595338859076364506531741401048831547240091318913418028179443518749210345534826282712797292871920504583619409086902500156708326492440941443000296041441047382363657333050255759307647474373873542334126391845985689590951343848971925138521606106309533521772900258063321147866047716585119035549130896449972937804174111418928005017507231389402744986992881463153122715999017736747604042299225180271025764919591745658345936637621038422319085448277430839314349507086465349299314653105800439425881322655709792757862194228773545551164563570898674393813411452401437255328276040399431058964415114393160603579874194426028643540202884881668431693671704751577778556322349738259724414963882343126965762872062918797770428916053567542113702439678307021992581705299898284004657879986850280353910584917182098721313440838193985939539929006626436226440315734933431548883634373537574188484288879090668559635699599835626914168325543609583417111965537214827835555846548823009902388069463115944776612830566689424820565604103071688230053137520837442939628405349517117859687982853334302193791956124744015389138412635466650070706666250192271888097932345521006110033568152320553631154466342647403138926501433696097839254344389572134597047294778306769320572692634686530331682239280681518126267491621440989561219723808147230589782773426318407283450464407242701966820446355794643233248414165421463770321920766900473396281547681378654245873017918924880402149553030573344641225137007888685951886910889890369918542878528165337038540966742811011876531131502855395825983502316097943759764402749423693875131716723244300092767357602961315051489560364910530991383400732741491976918952794464774938680021025988971409314391280337322770782977011181741141105833337756373855772906092145966130312638047679216949723292302707070464768626694735333100050169840424936357563617648774382655264878762279055214195075958009498566325610316096870231357846200474340847789633391749902234956162076248242799469386447212264351637038768170958918578729432671639675760913584818232183180712551464894594069415629723765922442709292759887660350598496125145375779358944882488921809574882353490188237885713531495722241889191362244490473204612611451622927330564748943259885120357733434756754500405730225448711006789534166223454055334324888861604456302986445229966679005713333283815167521591876256256343823011136070400639530334084458671155479017151696746914278384414320796621409973183569803649746168352460018132957068437569167072704832655297341547334558422439838403577700799246424598466821047445315825271820379345308235564738789184484214256880767077433601014332159805755846159488631550307556507670813846239207387807862243667572618491859143946042683495413860983928836129006773241351280420715717698997337762798387919753515588266935404064738272070104379559091100025409014265300149623806190681701207867124775859436397839618839845712102277048979966457938905652495036749264655505642584465372109450083935181568453772532966467984445240378834331337922212123933123854253394846983196219288963203972084747420182812255294691114565280504756603513980538890131614193373754106346453558858241609035526396798305830916867897592005061136103797888563426307428632320656149227219627784814425710253154894124443108304610663615027260560793997045662295732470863418940504231720398488345887541797040710857341780566139117875053330065834633557960862744645627025707785998832105511098912882303533434009029523732590840946681203208708230132517817546948511585458828481432201372513916040054530452955033341035482433633380138714575344262125398514779179004448536089506851065023032969259413774208982002104237927252195425433899738971468914582035849347380742315662123862241841191935641291882674922967571016847582138655823324088776410110886830584876030780926354064265265096272145104174807882140089408999575285774779139831810116967619731205476258323153508289692404722771255020442213312505548489893023982030929331769950404456423736113052040223627559446640040398847124775156379144934741939811163404910145439632804257300841249100902007860235066652231851827175963047391049632076867405799990547102341627045965965114926466244191946598016204914180159929380249076072606217590238713106232970875432161625880588798024659715009400054494704319638767722907424435907532637071475359590133260358193432275990343119104542917482941327273664342701867702816942442088504918505876620297893475404678054524387232554103016415721923681176787816930958129849423768574654171838263769843851015692124571298614182523150715003540302510566642500758419439881687748820685452303210082167404787138172628890234870112490334833594988140401710267828459224045454474744369047547911316380335470719655377687973470783860984436239210870501405160678562509387231014044628078065187485304225816733643876655737641050523662218930615910796254613573730406278795444058986288569348458726030604438749483648303485908973410500022933959251706624231871350165731512401126964891471719161764518517139342152680504252035370785371796539610183956552846695418420257953480719251511083454994810313553101344613090952477771165511268040462682039374607643869975500532635924955496484690787677454776158001651190217719594663339765087720441488942795103410666883540009880498664038041709514597714016783597331422167180714783838318070888181091846784214580018645716669039319244577027474331370943614249635225893238734343761732271212790264243281728955348006208576146589719515164024885519304115017153018616814138210850057839133201421698502225837924137767847791583746394636785918463387621462451067340894024468289379655857729157732063595130125114978495297780835009911702539817400264318141413152175182068338972276324145264134626223594588073810732167165602260092527305430218371521032152453945970726450921848267925430415731237033342057871738282838629510453122016465615170239724388596040297721018246336124662665580607266329711636433872654767630155747077038986374406397777498339021091564346864259177642186782315756492059978153260555377976452196211718553605760999355572474972744395030139622359084606532926179153451169962137969365547074943761387261428987922621522147085374762665021904687887423612327258316316221674382601184386548726681395361684964616629627251264739276147294175706009472353834924491086105272511125915985286798029782608289429503136857711012955259511485274994960401471069006879439289331231700955358116143948186910994249890038945335501239054514227496567672383776072269042105522401327184313550340608779264799445815691275757122131510626633838033886203398361493136051044490337009896617134453074092391896860609522658130183686060025541476491525326418348759868587709336762386807592025621840960810974218363382006760921689946819458949646550439544321819571154282601469774598692875909343118526828674879240186214015660595703610806370864988382734185692424988936866739349527781157180391592561263568844371889777284379181832206265584745052828630631225755112774463327921933534586786804958314306655995141761446861816269701045646842255159343657751411722194235780225315339735213693143050392688598925913549693978806088271305082660298984730576576619078655698470082086374782298584832392680428453275188664252713051381484360271090534586826407180159574968277372743537514905576467368251272556451605321721998224910037091272902743908665961354067863976120359303007312965272702493390353911996660043086287692417038652323163888981899089221267368124167904068462623746004897608100699209875538760701706098619393304938388178986690524942546574036648091336688903790435568730379839651358684142783083119284825465101950906336347756229656783267979757064688215676844665456547625642099178476051800864230676542235031199629499308450592500446055231631934399225908367265637097981903842624401547015945671281453925760078405444175028173927262859699540991675254791458395751003756660942382063605801387699081444268895713449475571071984328430078607365986952884463432420223122143528610552095705584383295502099070812139112654033569019061736338227482228522511718662136943208663135957216967379204326523542542740903384303818237483784540423555802522738513956289807566321465972388878305067645116857577484717115751771630838652461228566603618319977872237635280728349453192058764668505271920751382669267426933516381264068686941066899237354243797756029789240686515901475354366667910311080333645445512479512648980763114226176358531012936291142212547567260285836672511023566348504199891428938324479897021675312870515103748406424034733727322812476507019641648586649665471906230386304583451726785595189042240415377942799754195975174035091422358037636523363999006871505547632095766514627739432293692699296540960726092788728871217099886583558516697679976599757319624809945540416817616022458061787682178753999635866697698190274926645167627505994497880781467588813043794394591661570188562956983769612162407169467893528069718497474002397496846410532206122743527548513148222265405211423179005051778603457452693801225617730095164060815955050048803005452542310640045135274214035902769597588978733194229104682136112484159428528584278018261035516167606927006988482247915594459448677652970554330702807856793294622191781073274203729711903246386948635516044385636215765151805322378814416106266434127588920486304680097105134806383893234487976310723985087349289501682211446022212637082375863436081650599051724000896223971791443351980352313226943805204248505873232007237960840393406861094890908468742776196966103558137129077803483377540935854408610617155757783794916923213910720521118352217219823096373993999925878022768083625575777227670731506363821613943034305871270388955902416400747865855496976160772719864602733169667881785988221587969649779799100541984775251210307479038261703395759957175389364686569069920443577047421894688179223300477987183528113617722511038003773747030099215815966517852755527513332530027489825975547643310554699009668356154603663236806646728722620418181789455545101565628646698214099075561518731376835056957657747694435834225849693454315642458451103445940142957367226046649017798851934517973600928563886225651907860190044273389373371242690665533641887228593557637169106052777282634151807395708465997509111206433229030237862362636372505356765897237271117725404186113906986189989109458837585336307226335490265018771984999535573165408329873375818423406692851937505746695085180708145397779975416204701795377715673293764721434809941907919751952572503205963598724625909536598911091667842227051123833891847280956697940386723985095444722662979538603998690161440815881910667543622232104160675624466385511457315139012310190078771727971138671523448597284583515489827108724653475473021155145277341327856752611191031164316824849026025125245959523769576706702312933051082670131819382852802140439325065714331108955482766662080450086823292191913618813204081581536494418590909466273786477105993577919014011337714535005182798588945454251569783791106538921382456763317292332158273298492566119689083383125398064767460419175763527803277792162710332094139549158916614002851903742792947332608307168824270243660836490231406746259455485164980288537301917779220772346196546739451014833577159610398069132022597900849183970955851252826981845829133599155955440807790913475726913103416542202490084938059864048680890484235237423664090893542715885525160610954456330828690861221524231208145331642864937234290192251308437198411395932072551143372057758093918612367176613997334632038515549811601454638484551045854505107214043430056284134682668164639042173140645184394156148989525680217265276325913839594515774697224935745918907350514393439207260769645378290373856648972676245755348977127237071638664046921095463476785885488080806669483273883381365751211014836233834807060202867746296994456193990828684797892379591688865276171727454532582716502904224586625305514005517124149105325719079850609769028737001531461108058907218023936906883119897249515577961007539657075239796575172104461528374354572954858112053053294368738924749532615759708228375776881531958696838069775431274686922089482333143341060309444023536806839868619512091616773575699565403613574308351954906606634092431190512855400544745866633186947878932699669462236946917641115450809869445152173107616820426286003426537282778516221329901652728416751182167674121082908297578858729816508127368882317506012555797048680326917808107261120591619187999230611817186629900068466738768226998243994582558251927689541173356865316021984895307161707201092887174118260758943641488477612968832982025401223496291520520476205386066948238078193326944867696839108963716302295494290832210420851664357867274804505038062765115869386845919078064045090403607022818050834933396979074822658297471545084740437794446018008109702517251284621097231920507713660035346563377778733430638824567878401948877446626405260332555689774701816034940809812793865948802127525448951944154483811215216286937481115425681511094291874005852486143576674197553824787148844992630332151558222792537545948729267909151252767625892378948791641478163753493846168094586259978921678754782397953446653168509120384577009818749696827326371655713375617120677516855699556333704706575699228051959688666445404547327233268958441054477273815360261115938758734211873420890619360014495047020372019743699564075567537743717639555756008010632327332722847055837283635129768923478436947351853514522970877747072363145479270892707639998293201206121325490009429517110809584601378485820065831471898876397681304673585319702858861052956746606594521228593776235940677124701203315174239217148391615741069283628401618337100228173162884312806316602168148731996949126262503788298420706549337220761415651683678001109287499987150296934395738815596033533685084410008671584440480975623397898104303339384541053766414244589780937264771485340425274380173569234056349025282014143093601098018246959562637447238394545413089699113172881362472198468958365348811641712235377941991295200397576139969638175196523266178450415203668812160561922168021331687287342318936133548617283485701654856453059308809635235459691925086291159886959262812605510111381684288780467252321742101344202436302383299618784290430979028629487187217282933699724648124812064716643679734685180880739031289156484449280511125153491904210198724993404642905625351813711623911479720658414902072591684359065518877073305834312211179078215192342893273327197183577577294008022376903766237559429292785311142012845336446068948067481009703688931638294320621753338611726018482680552308978909217771360476838765244564337051852696052418355629216970017381705482245241298266104109509428419275499653938636821474421504666679236650439143873112848976109367008347703946168732519806712544000324288244672853228057190703580441756247987263884537081002219639172987155149572846516081510618996570449233121830672217136649414012327638142288082452969429912243148588422774961406699012177500866384489435906392410300035616875479864007601570212483662365026266655305284689452039572628090617492425112797972319253950430688926421073619375533397644633384950449127419217938166244933500606712811437405172738594034881462228060063013261101314220710854880981855251960774503782810268622412613102698072906137071476583813770660211927846081498703678321745142699682684624070496590121639736588788549883208850945484517374078545366794910131014781845104443149088685046287591916725172152073065265266327529085633694816074426926033191664630153251463961634525732070849779310370305459784947952102844258334989741876255810259427685297741322879904708728051481963430574180170428793837700583587994135117202225744633877378763795374594582656743768196199659172674171691781340069437743929040023517142941335394729819300190952205109618111655394414320235031363524324784313622688937691822477872312199209382783622842867318015586805193373128549922499229370746019500470829036424890162470832910698184464089760066584084628890354690811099981171584037329078997799699661528041387345857684725457718186675570180788177350182060741096128046730262306596872990526789527788125491448366793919435489675279072316510335847107390914285940429194996612451264654629512477751366273343573900552422576016213131056438870976971882422989339619776001875384735632931248113663387710432851334024932780818070662623120303738441052456158027480704150627132839218835352721682971932165563215550281941276053139590704336379088458863021249103093576552181837278154246168991379808408525512238922626702506696484946101537536051553336804547276977946779432224063347942165795142363705517982126770218198495021829165301087605034379505790138655137503778123669427188488996380820815464468568981074272002121851196487487351475465512248046362005972021620072477609070148113705246057527830174785670726361218618653610077978143323600735839258545146152468718335244724365276377428994034467470467369245844078047531021180006511143064455130909440420277710305242136292249196625289564746855712109456210088054499887428507165694119796719880147452981893223563943747806006976599362122063423331008829044382548975902034501944810330231083784299824472507866495750158955919628604113840512000334701258444875118341933325652779170282484579436917399382278363166243924097939344247304834871405889987985866339065287387433418239455210488344700697429488826475701038278810049794511326498739028654637288094909953331768465740283619763289740353151538710219858297546720651729749946053436924819167260820214015177114483221726518588113696908771501765662677964027175529193402533946772536178211653052532756726215620415467312176775539034550059713669039379330049554449474243781387993131707059553922860610701542095665438472215123655510673356900046960188085508629345356156285348321080810936617838234414235793352219933027522262756149293961849522007654710200058945949552515219168406380460371699892616730620317123189406174863037393853514074980277339840307291458809322440138862187907179266760885047877635315305978303035506150475997734286985992157888385101859925030029721362393225879694996060435468278695517907321779931822759031180809710719484931472972831622583753997680005236536995983552860459506942725298758781166027480506906099682996482701477775512696617185597362591359927403708684200955517784281092924233584731261910023975472058708411647334696248685878122100892816026811545839515423703146982423766563953062984936198709405610239407931647539486744227684704483005347090031373172333031001430186251759558331480122327458863427125668672798510739437338326643790488540852552258802172784378824420601305335926037987087369543458053070122411508225112805444644130228137525828325224354157606280527060184890885467646682796401931772004700706383033192904954716449300100758075324149125731667884935386262025147026006264243045325482915969023555236446298933367638857295845036330691878915773827541627992123419730160665440957867639369923044200511500512950104468334110044854879035502243851052742867150525452383374020004709381890163492845387333821392951842080742139764927565465223060009544706870489093485391618555980584394521607207210162996732746858944461429543023668651651916455316558132925068905104603354119245986477307592688592386529374611772891839479239201757183093694403056969955895410004947155543130166259011299913371335773447144862798166540422831699388952757507518865267424660440398111446153770399309201480011376300981920211439883170295022571037347891558880757637644199256371885514508423889520197726541259581837018699842438021261100292800993511730581915042518956477385631736746468586595321869229048604077019698310593974870411763089779499352790315205824569796658994720337166610215586268166033719747447050689598155502239001911371293220616828663687978444820896372262621577233373631834639451886595272299148665455456510945019148956601778514511180909213435003968736921627839992735539435527622079643309714720983232270280229386585217332657351861569169512169975694840154715517110100715206269531143519794977175217686337088168124890818015081404450518847041111870756506957409861838039550284427731037678660348181518515906127629670647544724500225206028187499666505747108409523123713930686732945682832251530909935425057451458305502876292868767549735323390633462929545326986418179000335828811547958807351286414711803900585039575239549221262769152867393684392040724676942084338605225058716039063458626404370313416675550246807665219681731320861706373876868628608854532419563079418683000482275976032694655955632123483082758996999468274241782449196722661545227006772744732408755707021799192512356820587627838650575585614354619684680974954544933103081319502853178995593817512371639641722762579169778690099357470668891480522796747734342098915071651078268704881849839456591986337321718640783363005807813863639720786922893190645130943106665611877550002753757195512894564047083639142384812821249898836767182520049358066835438893741742333486139166884889829018052230330952568870152405109143061897423242260246257998229305288360535494363435672178134544608815264768808434370478951593292837155210003893132816593354568410579163216578793353402292105430106088062655638437862306195277284676299614983496189225437735249901779787204466214711836171138447217655413670208010605770085800293624041757067650542936507028544014060072632287113151019334997199931336275732563065459925745036911087617942667101069310941229937896924398705143723704960539306339577798781611528432136721970798954177831003866785711377934774771159557570289592158308679178735279332532703244851844714381648884680849837561498160502277356868721262751768039126469261477003208399560800518770847424827914787935559496822601014712982504160682564139353359557111361618729925858161689574722874687640776712561842993872070641316828374450810654078800579421373179502035445218748468867181806020301329521177683648975988391883987392528724935656873512915023153535187797531980996220832952255731743138837935880781316947116264918762894926899167649247718672422485206066136920464312977335221766647399840089487691369751595141357407049340454515457281847817415118105024000681673229894053436083422332420223941969390543920819849846051424080762355788482648453250959504813846212831635387424511198477863065745295884741523773245889751929709647856106642315545648877465327257040663547747498030930964388222422840713067010878424271198629709945498362914486565677360987346937384719194114462873491920181059845462258494781178910295431779001300718910457442321638485570888664163628637033612990589266610550542574129500233952890755002601245865702726905271835566771458980935820549117585738703569709510938295830798236494057858520693874267575668558291795503136987569798663961443863695250566928032028998175314122690814434531758556933166476685943900648549056339412151171407887607559938724059858247051713566120011836193010814449824173903154501594348841730543281083088961314237207755387481211122944382790200041883246609479451297267927115234217538731559785301859803872676926606268700580699501994833779382165750238092776819483031559758851077406057659174516936470158161684019692452193798823819840974391767411108151627113842953024538727345481174335661416087967388054622141563776741713490467123537523330065239236732157014561436289019731408798399394096882633761761161245182567062664979803084041708690803389366130195476289815966679127958910395722475332033256725885981497162041798969744180698475787092133919527752532193949768562257058298110083384400448744686206673064403468756138378970906321646067318183030107448391471617393572679507320401005559014182328467569201046059587474159703220648841462462340637641254655883785571831586530021722691528261934958746004652692197402317710283814361399066791782366949600816936805571430181651430885888308440700756947988213219528260297045892548263546192283646281220957862208819312712287349932671893652490004084290995438728537183773375073702320028111864976432312999149278703757329830189642762534049898798535088673720380604564962814655536462458220742804160162303869944381836551578825083141991219368429194770394796262938407458148142003054016818438145030630022123199418056400639117507042639650557610364719480140278955268909788754646370461874326979013586481808525348227127487087096189485995113163009068887462656107228429888778561515443546651287668259708980304869584467109454857531144872256304288626283875155877115489391429291849295823202183078977254254910401050995054522857697997801841425470503785196694223751753765171634351486747853059566102047991788233732999468404522137502411931225235973229586337793240279691153444250240798533808705800368455685542824203261685855570922677970223388627008517710605133307571217196061648555971167835561656878446549981503066712483604058096630293755851269563376298168481154401504648119645118754723013059269363478489786019471936059930169310291353842017374138181154190258835224054727222104214287472856194603890306727768436752158199488642905420265401567313154167556878057552286155027462768597380474404220959180507154815922798222589114483778791435753807614319661041400665693337284350780306791110528431781584177122293002520388741636228152932438271332911175257503943662345229666147436251204181234635874508295709887467005554768585517343891259990797866150968368481781475844352764463123094861753461344436304469181415167443074745088811854744014698935548946208347246172312585645257251783308777944635369625947748055937010896854081401342286989554104835316680422876279043761072464129519736995808225309824890601325991862100944995059196254142057092673001510317665140020029105058466411581261591994815645304263159519660326888901197928325729047657963717706198313479264339120839466520600820239486280372229173154765086240545645520657001899437609162263639474157299143909165944292825618341923480703414451471114170055093091468379771210047898174740139786505138560241325491382650619776054732415945270301889475825143093053597490527437197006863613767638276354120824026913275709708398194212652670258013178995867322092517382400602876500149727318619376664644997299928468689126739324219707381218433749322134901777658557885355386573916505194894600764743636608173299020611144933444527494681875131065128347005420399328182840837671059133691033518182635616878229990971187258093155149129970595665838716428609905506400074652077910701929151300262299882657531240242178572995240719319406638248142079218749604605761007839982447384306806125285067379499322143843526617468034088663255140011521252437112479030770088565327323205285450741418737197657412587324667441730342710021035960834537177116555080271032506737018823304737338100934677420787119012977053754151538945972344498676406090638656068173030020490785173157509959978302467022673408405938333098851672741218241919862738090974603356342166537629318578725303091787156287354043202907026287367200425222702283338107637145291250609638747000900787334075253313524621319407693744157316793023494103665563065374611399291056509518450260477867149607091157814188660183828346095757403197486069835719889366983988678915472887260270401698104076837280869511813602307350487284993965584443017214149673065969937792256325220245378532095683701336212576995369360870182256438233329333445919667746568023552131995717262267512083944422563538400199038404428606042295603288505229940552116271064166031003234001305977305051802941601071127110006369570882412470546418548634796079999006904457981516721003575715049008087013900691782837919597845780836109021305697498079866408052830083082951972387212458250090879168489179086480542415248386674193291480797535506645010578960574002255690822244416413249361194846738825317568871057098401562522796862794642047225949647380989689954662411031537411271609645059550281097819551091510570471399883971916126290403112143549548916114800776291631775951517827541008669563951748893178970096311423805958701941353832958809499982062211447258422349813996263980302689773241730445836170112702790927245961824829269258074268689545363385780516593872181326940119138673197819244430565546363485933542846645351471268176759035291510180894323401274955099725725722090812411949679227661760414051457335585899225345851776853726811704047633222316336742531099691371199778610495885753212100503469523687189199217925901827900430839504345271063481565911359482090979048587502875257270321528063883943030205581128710918787077783096766036989519290404959132650818409803598947339702300396623484474602371920466418165002883531336961708307311190050005078239798281790659525404059298011781295131996594871298193697400383810825894757822130707359660810333766918230074006777974452571814976640470042006321757293173708908280028781286348302068127381542578279763171288440674817700747935479231388074527691330996626289798728122884140369184486442896373660634537430570837491846402722312365453659724969841814911333816160575594995644406947018208590377493053533874450128008999596233159483456780950814309793733273009926084322136414611264320630036794214918606018168846590381431698443720039793519558208725221098852445442720852629158459670892732794391462171040075887863849047565140168633241587875577117229510579036282568388088938969566321514114608125761318703329289537242524314367566753300926327251188166643097527203712678663043707460165310613137314826076711449601313465002575103127042110163035763945836207832724269442178399614447840069637900103489782026396684586671494566461880830544626704293802997062213692299455647802119640911072726142414752644961665069895375203749380071241441755720053380487275989889957608284133470815905267708407630731624154103073342730296915113323582658883824806902972952137319145679828310914258069582898438149968317551310824455399881838264960795840399306168752177491294700650066455619410927685789565492102756984769437611162820232456806381588131996744881504608536335743293799016668081758310948634278080397612202400980492221814371601222877814152525909010332471723706315367872218965417718635059504954636776673005024717422662525520366825051010331395822967133744231547929276209489185846011686583975281375375482637412403301391799638603724902859222885782303227041481540311102579340061633302250323877018867691657806242602712631636812714194875647474383131418171378614708350729753222297259637017824816849698218414853099214819938407739214736990707912865613926441545851089203286687865823895426756358428749614334499819750498718937061489961866319558167718175336260386906294204674414605097228979651601982486483416998813266645879618721889573586973418048153590303730507540903938583967206067753423477293194549740748941778905590421713615813895403005713033361631446714083697894360986523444603091646950405363675972865617577858448176007489906974577888296419583832202442357428714569831899769273014272938376380941345428678318859444502955943436811432863085792232758940962399395638465741078321286263131716226625942892515369661043523402110881209803787454046129673446390572982479507362879605449425002609858561676263650194248444790918864831826710537788323555594033275079056233152602681525302433785683922402034547114575865746677245729930505397067389922016809618043051110308707878254685646280565708112255524036908274317875977332251408602322739633829997834967603903926659375160741664868006499544630022127628874085266189039707924547216136444095710325676171973251565495535185953488607416727233658927524688366819853718835876389631203995262713405361992812561846270739763005531550533135425924670161997067048089394511374910992873907248847467444472613904506257272655927194455968144177531789114243841801081856240760655825259920960871336843817704498068751822375825000531905566758102673901013106873136893359429711410454597570552788983877167642090888016233042586348369523730480239256920409843892011581157667796131719738323497652772437000825478845569161368176771573120478470313892859360674594394287801699860472829238011315029477574417830982450927037623101015736738574741250386305819548886808801578128065860100842982930975105948155356034640370884188368066230829704799248698370598761032384655276307982983891899283184133476677666172673524355742704552158966661214836878514652847044600895253860037183535413747082108174784783560008823540798738112197336782525318505043075738667436365426860834144486444595823190883168031770914209975005566893653254455560531716464958530474320106002252170534938821831713552976973231678904219058749094565637118362757358883736410059937023790248468890574703647152607345861417795701041256982169755954169755658599226952713253022799138988986331750071191374173433295746764544803726184382137307159119234745952991037694393012167954024774859680212419079380993127974771978205830785398750550574892605787676375590877891076143371194272654254028678509047931608251600213524238086538914615145669809740620241731117116023285859648939280362786190696178836004452202586637009376323250140023094488976158750922301437478137935515599542865361568009054802693433589633313550288046174531418102502289706610769218651392896976921333610478994693913479338396230436369529503592483728280655961687308221868163126124301266269332303509681787340687906154318435069568241502465350658105119982410730282300459269263304090782787677176809509393083233104149553474727432450980597807513781570234369257293784852777257931902690719999545891934480129180213093842248837743805775796649540014005204088256911249842550220012781633185000815749353733201327129941970454399080485778148578029599991700386329686004037182981619067699118074427983588467685567202819342680690719227112063123418972420984977656467956616633349995330274249810229002719534505033166847233077449078131752869324979495468326394668710813909907300299413801823335314116149515201166913503795534266670900930182159929976308197491515413210817968044326701773514458110665122426374662963650053613121293974841450024492102645884745575579970523089607022354473308802691124771035722701788544801391008585659334416091577560344519364290847092376154400985041712965024651168258552238645138591651240960028889565846744916364160137055652900467645558476517566528251203822657953912406881710095675101496440029491979943031263534299592817048683302493345446574682400592240605919655295057569662290442953110365983550470922124335306114669116439087036778077734310111290877648010768512836025629652987212472105981769648113629291816545256161847738319569504500436267254829899555648463768454386296171130961349415839448845293211745548914073331116849616166482509962182509411653689730396567198154959588466996070055975558347394621877473192137522817874777037858774157689606469559038666290317338305069249118833743779494300262598813815459248077993180094936762411525215126890217297020188970470603279295558560771950238113673754400344829413862712293375008234719972711893288720654323487497474667847383047566637523361788653055286146439508336424876768784171919839101053027302706386731450565742407383027836158085179197480687062400750541162733684963186264350240895010930349825609755680208339798043421458858218346592462281034074730107302827398065262166384039587093721353916057238028022521634679132318102251654634261500269832331235057328578289904513701230089345864252723736940268913319755735079886536121049185660333181585333730922033049850931241039641931199922385363846250210249989898505886252757380016917774140374931295002103740537757307176192816707917496488637872470969428130253887583701700064263229338649631777177732096397933266632978057947952363658911369138758084026064358606933355370711661905366242817261546928552108668962456213015764257882960110583255069046422019913299422144320035055090296872804475713202925574865240595672934846287766618408663725516159107014708635964738766846938760263054644177967718691600307441869503751125606550665857525456281537620421636562478372390493337982712984929158533319612270649990358129089288901137335126723240006015582246474584040792152571558992805403576659703308146986381097887051109270295609326952905070511698357209436590222096332792877072109365409867870818562840851167080597730643176852483485263756373406513212675901222353934744214573357861934171889824475254476257610874573079003106658890783368451481906012947842055626592322021456886512029081433194898533863672924141044713317012859835466648925448035544923267147333930308192978231500070698255345398044657197830711208293273116682542388334137775033951127021457101007475101149106963055362392824372557841463739888930125094532315653620529130010471001893356480325475439438012223817120666045392701528187536821070695854395519128718091436638766181791976919563747056285911391889079931970668371937361660827876576496067270819387994769022086658887322515186782411408610263948756198749756772201750476646320519666133124378108605592912033639950942619476186907992283298988432565089212473405549478800684901144093861227348224239320429392713385594825366289593568190254506284813333540349534878713457520601998094516843062851246437499940666230544348830268410479606289550076846144033101218072111175149978402165665875935415999605928917440466605463603890692708991552172725930162938006188839375343056943927278003738710108224688081923791570728547745290080666944269870248723923960721919456128069256454521559450175137313344815245769372838961281943696964945599260579123435845502274582429419276704227786300383163203612375542798694926439749429735138216176154903464502807821797924825081783509551093675409606903949664865948683339511545920534190067993131826916858712238074883618376849577063055580787184096228956807401274735028964734659649229613933621769850124765541819703809056421989505859862448760425179188403630830151976647113566354649054701039488581708018395636774850764697674444674934519409072954520449224538747392897598154277615111300087319002072858709059340101662970399253009131755678069282224297798664373420817806805386992116495822062160624221361769277609349697684116841357118574009567633814699758482701898416054545231296166800705019211122377582267311482009433375953712441184469339571411414506640978470710140167019183730533028238329081556470368870207929655436981953947524535612773640655613396115128998484062688676508424553615035420237209989643835094007724275103549952133654428670344561238424108465667824901808746795394349938197258436164469838214646808053798306149650782909284396023779016815243256687762331169591270853747764422181058610735402490250451434775478578356823273443834863438568672795642892829057879536791024322104071621442586624658949136880276134449104038868790425193116140885787614503472874735539214313641517828613805491761335712658437707088537166651482491860190385713363095001265244674802920199436994453475977951243668429462561288522245722968118923868733926178092552938093399597377907168877235031823007847037510484356917691019199468843957898235149633894608798667084134085606976612131899860080848093866451825724294867205677856268626645149680793059684337519112391757548498246969007553501951801357096679040343741257144498106648837247504210152780495695735349672473268086546200145647795744980621349572567992269713606756928366883692916822650933358751502175636679237767094830804515960318167729681221024063585264480246660796797520574865214595197004820948552893202506465613156607471785841192939129013331632451549581177749385648539706265265968339362911883796508126982415243406231183461787435523818400998699317331615316165055060491472631157562013467288808299460115825434719610656427102195257197839541549449014257700667198906854747359520500018937719497648699213849578138977608275190883518791849684503685249537823826030973198116305019461000313570347088644360128290724425786051491103810870155757193808521148924749999598828701836478916637949859870544984365355112739108436418169463679803254419968910119807020738850354953619982686183787884346414308466080385665423907762387388375887782050630854640283040005440957623492627112032668932110981373168378677726234834846273730580492216276687381567624874401134541940964233777683598619205859087943715876384629440953746739310994382602218134833145294511128838335591332354776761196878628890124618279713625066653495502075276248396550091241670954223818281392687273572181188671280100100853265230405158249271218036253816305745066862495993056608970016532000311859078549244583061300823432780838854044886063509292955704657225313798713836149102214184305960169825720026047469822590429884893003291216087883813371186564007435808615144652117700586352444037332799300828209850535351723456896198855246670678304362805649764546390093889822558858735381712658622437935516342471079336742103382211088668889229673049569219438018649845130651515967980098638003250031646535005615017878508400237943577646600628979668866852649664114579140807115966385470006666651465421804757981679141731507920832843354384373763056300873574746654924911817957433471137441280206249684345442383363261790159258356368835412159873987737809561037416668318539079347243920746696790011255968638546427354914543837223770692981140685427834983656395105283791326311309100466403735292500110496245579355718608547577908824840227403977963995891619306016983028179763597698371305290662391784429814784142405425245741342973016899942226834908768954488245464051400300491003951514653552285045731313382667028004664876849058062510012541132006927272000736340093317636683251699320449602893520872778388948119888363693912483944235719677215037585406593164375777760140847867026460815228415238883065700056697843221738258471694553572133330584877785082261176814627074444975882585146040238168942129160339681687383004503582868858469604203580612279532233885599980205262383823339367418623698990797806971545225900441486423448025613814264908528465177500142599964320293087777286760466406467107129171863922529734743608033950101791617136974543713424423258090473591271412426415066114125209400734908234772856639733110794643246869899846005716173005028321586252172542478955741866365549634257466373805075784532230214797796134813819457887064117991915691901408998961067354150989827029212613169189465884267200795286032336148363106742248489718528900635892403242681452457847633898577130066378920776976600874512743704985709366157046558907292191732544921799153917681173525504596856924524893287654181975718694645711852659737939347718418616310468530812970964427751072393839664883003551227088093615880900462670916226647998478698960100253240548039711575082581191002107651157599036896089642719779194722665818133910281564791317938242718259508380858416619907729010867806984044656267011588036846757588881193127970570960442026707270293111660635394872314904390464358957148181360976472821600967113282944663390927698798903777417861117811978965094171459863024031988074068349657237426542582202181930058738863501007544720903277335354388959455487545711601810031825379830642322078041485760236180994643886121783330284820682919034751254175954756706270498568346346773346109534308523901160136122619860598986792305171502379073050241126669808338535321589770923711902945299153325317829123369207469417021405411241428468582979907791864166088719983207396412320015541224183509200833106637291095357773750538487979148705234913926094194764213644788475163704354495018040162430131406140468326886472432524660838390020394399561295743691182675366815317301706281673950353400532183731882766011442150003239381863020337951402834766638608238971593450760014153721514289523593409156951162047650788575961976601129350145062220661780976167534461591883602931668875072725382200976252568078356728716857429039122098070283528763081031122170410777859707824337518572719869997627984790513077016775351216511178206033193424089967860970407336226885870549713974725558678588830780988400132054662968259434429073786677330741558425050471128354695731196299478332477978561714586422360375106145022232612864393072775530470845314690938480044437508915441284508886323923911232514816182267112336715436376959027957482947639822581983638141505757161997076303220501730072335133935648744681115034011868317570766594804307545401268212674487371219998191356796375981136958266239008847373876752720738178662803784698067492960744716140693122790682863211149054839757099561125333823502796290223691241488567174527365540147641080052199573593110716667741784278744651702924160856890054188396914520983248173675112559916128281671465134784368973947594401498036886133282875564857472517532707286855980852632728637217305884933988339080858982924760364796132691847346840643739778614017360236476638241758738455035823514885923165698115053405734730444468634100038948637867308277635097415118882204023726949868717868919237210443271539169665951266100397232888037104253078959875531096900587164533370576546980794960223617357238362761430513304390042384998069092448860764797479398111472479204765283428979929087157270975118442373875737478225663477461446577540687676230273687110084217234618926544463597336736747298219669257190006666716509447877024977226126636625380825157663985375733373097809137773104583757189542776724422098053486074984339825670004386393256610105092339780633761706132591953127692439965398632588878225579769219821640541433423683565041202756703452234477473507172630854676777955446449422731270097092687468421308410816768549282437916676709235891417443878527728518002754455174935571899719412360058425986766940803850307266704711188828860056715825081843395250911171074339200327403340641586222716730162923430226673379506863346393707155283774383735379013975999359739701931196739466462327438944123090035208973320159501063373961819187410516679605753665170365091605559200932539211020610320882732816271255567009955098931509795965889613514377058313115849039308154003630360990578029825054062353954158976684939150331153380109510975786464985907046771228134029378457569768770253579558771541947875778180353030054055427190050866835879896929310880506002801824419547554446789748985242541670653203034198532968872149722091825954466574143491952166537236089113218221842447514267958863086084643697069265867521719784036046248518373869748675499245872051714578429002268059310531291394958896474856286770395358074190881368066700222201759649823375400011774973532078967953641898410607342754838083283232837569224856046633781494090201152244139590239009767549876268898542695179300809820525370381662823619881245535336782328317684814592676734444100620932162379316976689198525323117573559676779400369764060130091790792348994251170918570951899281507611176840424693087789045116332494697948789502327276612897845627604364161140849957030487209712259678866017113274952115665572615472305134567482593746202175987521223463204921160121408313626175089521410957698822266367052736000762319885461450062511342315752499986981897295025282661837570790944237746725981290470879715681161991928720061913234060475172190184702446428486720659418407146145603778000218199084048550969296957438754418968464217061153681232639017688596809377436537755158517204613113359184838716293405244673859841243890968077730376242303222912646236359250928398516312731621301982958614534434539461190819782793203339296689154826157127530739286723005458877063179023523504049300469297950653808590704328874604779864063905549661600330361636567140142084153356290632153476135977503403560817617477351920559354214869842226468773330942412940269163599329752018241871420193209604282013043184048819626908614966984271183599717948861492981798069390803450807869920325088889003981228704956355762206544125535639584830937708129666831702378916321299818651623566389281176528635424258448094213913285308679435098147800816401168947698593908314400750219988139423368901957261483716722524422242548041035470770068551963392311938303614332764361829850357629637847226419897186367563866888970102600013690869049180035496207144969892077662484757893371839183625625878912333032704032807538783439758788443106494559034753266384245840765177506722246097054992075123186176242953314445206485775195330921871111461495785193489012785179198888707017217645352223617050286301213252138521270054494503082244014075464761654755371969478232450886150948879918981405270451304039218557779183742247533969404931436522690939315686186608737514184003897850871068517978858704857912463773801123297988324232006555308851786572163261748937944432917765859574301102513951234753856741346653953445876229065556527501793400863596058753792034247982521548310979513143124628773174041056927436025878219801707109714808507848348405871384013969676134501292905675658112699344494923038360449286877840261379651377237326808372724220204030762712846424842388268038947409599060858107723097189930303547424180710962218358962042235841544935444730348188090498269888889706145047397227755366103559258223599789412209168619852955982423575337456579749473190287764995543817863215733915352732562737498318858980095283477122520430543659861379752415434063544229716313251557429752594802850938419790117477090413335351779075628068615166395533472454541055024790565038533698074489765345603489444642913857991746986266972848444406357090259423585545367620567356060766853034895521061262681351132300038901548857232090253241792902529595849272323187739302385578133246346113762104891060738289438414286630943579198652449565755777332158002543270913852843699130359727978983177850504844979125184823989215530871446664960889218036554412301778144676260992709353427642497521341678369518386919258149756232272134968713483827084652402047937206821545523087254983529558386004576972407079468853445565467643479410439620994607599530445539348571500205126132577526499018631125730344562566433137625206676350105493178199702084980907014649863607689638677126524618136713896830532677355348830469812845646925507844197734907504010442534745686146202818091332610258143835558843094355275322965741861163900652499097067650645724881342786204094266111263012218698214841366102080077071474866146743541844790482968668619718995314318477044180635013648670401070163795079048426035223064928544943680999678580780827539691431508983124038767032925458697187914288495309426444760595359822077171497580169771773978151154066209520097881027791078726806039647688592377521615420264187196963774612411872535345620797940529337246833817303964771468661133921972123865759417120958051981460487039721348054421895047070468085953654320579658908512052894363616736946883402533648496587859999728183074175645065142613622067049680197504908714504514381362836326800350377284166056255357832911539152502663035523701464170540631313926713117044087219290356550647205556581651607137002640210954554183689525664681932832369741042251387574202494256752828553937317441999224497475860905173753714917855335256658575023952402118279520282191749507631837731338858930017480198661399912462826798037415300071865967076765611067431248346247139101863659553356825023431184357052866473773359141277987454272917650467060366482381017486260552171787782841038273774663845881079557678994396816285642392055071262751599612598959656085809431628540710119421840507433612913103887398485517837317281988066772173721853775840067696324600075896948974746455628610929977208992168297401695097316509319044135767560649059868462865633971815720634172706028258933770886449366172122078595622259663956265882870540880777246993577933844308469262434251645693102053894875083928728216483611825117299074418512652451880622045122670665004016528998972111867427221369412073078048426528804595960129435036056394044315001028636309948580740590331065342329884364863715484513980690575401824105515189738727094707048182708288929492582640652003136447700569243498507294711919554288400681367079764332501570119088158895308225613001513112581834350747870844638116166132190034470415340292768036807702831783847881567239743866910599778906557988303514389982229945781034979015611187386662472714456172220858243871311270204310601097995998945520424782012791260022630084893662574304729567758614545514712163739256061147655534355148381001895414112846283294299517377560379207393433707757645942177852106445974970256251306061571321903180590659255354099884023273669390958098543569677609874792874532177540809705394417529688161558438127346234023748966421680454561246008102731086910241302445798047649944672342405196813484013265230703691431246491888136168704417585233110080383157143568889438962841151204036304838994634238185644454298300325158898082253414953810756686595093611221777057541731215941526982676958916999421695027014089361993945522106199893337280627224801262419147391536333605207168073393555725320870435458149056916697800304947387004828038058654920684594328863848693456755932791913269982818857208853428751586733989522698283967686520295848114578370444744475762796519712752766664685282646511524516473802466525935388818239797826682952752085555405775421532728503778382234755847273813291102950447443796993168284130122951164835063002506954198208791010853687288994242121917145919790535328212065569402278622551649236716643261342855877704573414282071240967958668672223370602963790207551637169793964759968400683069323198560058693187603309515149542906170283719120091834766462588385580891627670788239345237231418120232796678011261460460790113746144727070277050739644503565615049503888571274405435673441975106406214306054109469162459526192454375333233934915698868356001033665400047354665268864924407656114609621468541460425564090743076373665942267167389566807838986164848387133417014421952272283304775726445079057279327695600800828564889545502328483568687976735224512763131009253003959058247853052255457942695616462314435776053556710919475421604758120793884883099751405336040886681859442996389472672647157131209419469896238992972829003786689807184927685663352402223195622872844156406473952583871331322581201322282520382291694078772151795348216293483970106905322110900483937011440854859254494006318516711275079345548354467255753585503484317137731237674583700232943346826119883670777139821013379650702598458663256689715789366855032047428350012319947336136716029788341208493141962150041899998778254085717865521222563409746270859045592799318698206629405186809083321351029280947257273549959570877673118215918752291257204760611422566247113269737123381159743878987934307326616053924414162760218247177655781906216118011946446850307636789187497961004759591845399436667557838719428878970184845216030471138987819112477744988881092460688655511199439325675412952839520453077463310106992609145654341884679141760306234070616774265495668740427459018190174541640704660591188765703228566149733855771217410475655031590070537443202367898142110081346422016418654567648412867347821895025636825416682318975008036279305323774327028623613331752801860767485888214090114889961031731214742000095492044093915042064665941295387349054186617283939799233801433490618079597641426972487531197267916886819297604129221263209597530105130825118453288825101935066386626783818513541391270086025245324050832121358560879651694587971731835079175826540584572513676578737858477921440397662191860301185190822242812456277113091192430296818805013501470834858293635409394495981865389452815534386932101160879429216881921923759028358392714168121209959853111016914239977936457458106076416272974694076863255370463777394533296522075434247701741653522912846772886272085945666199595148177961504929290577448233013871049106311659112251997152279604366034647084911564777283995462306368157760751649704106819393351529249150778371051303221346015203680682896605837608508969552682521088682203115802859214315644847890836927447674822277924352258021867976294148059108425421888515750318050414891908478950424015099926604391730297699691841963228447526277622215373736782931898769574610877161792909988688485505448598329186764904871318129398464480910048241853814277346355692131562065026424859610943632990580306946536727448620795156963234395916803969219130807266890561873818307875430397406289863095321015636468664169391605994034016595827813081205113639374563418339484182262984682960694997897457460024148079825926909768277568477826869483487436111376543580521710160952432464313593978218501266488773231983625683751272876967636236907918683542736269476821764640799183479513565670090727515078808832371466474341389551515962954775574517791067447683769387874193588527975841253188963087538504323588721200709881288814807716180264677254613195150974006522229814122869952076584555080323644708218030100651707034709299467208376963217713381885019234611949165239844259056309787206776682633373750678091827419873849735483896629208133725267329725949316028018262494177168258579883709480897291503997142075812210295653577231608623185739160063368611355142204009490259805562049264172115384815795414083799027010984576811276159161401325615629144022552725619149711517149626955031775730653802398109678170729352794612439306598149223642813948277732095926162919459730650088169053911409196457214760551513929070414427548793651257547147894603048664587720086804402259418396935855924167406224211391767351880233668633231761446957385921344515094548948475331745358555541057586460040522864065738669632687118258172429305332481693386139867410875722670457339552182177354335564474273068042017771814649591732820124408823889091490325278487263880817261707688893238023449291045239432418016336885449159867052081524719949591046215169763879347278784246944829170804220553753194968159620045879543421751002874037001325244770995003522103549113583509330033526577644339682301514220396633237022920917269630016630610971071453522857227788187937605256682271860750897641746941997217292706475255326431625041533391638806866585926637005686675888843892900334459163587636224066829913136036031302848524365342140390288203625529514614415955227379596072419514691875453211487835810901583302357189996500221045591565887259483977948524251473360549352294128794389997553436793903849038708815921081033894318135073933400085315228748789265838465999573435609361784851559842200224932673577213752414684036662041515012862964439624646574819390606765507104739940671449150868603377193838285413425435932235727711121808536423771943200349242947268786300083129629984674287765835598631222229440410937882734366532996027843729297679837603774813232507153003716683411696766993770935064175253645886198735847703986647138029373963254444972821720469328282470093339203607718235107085507382554050780428578889994581629401585615897714598271523456921578567547890546529048603168437784233908937464038443283044766129563094129660062712276370891632661464582218013509619363620014106280282501844303817840034435529793352064321540814828192217491244342891873689073006202426066112919712022968587964268683605167568398676730543764355815493672050224824664891383359724811663185865758494915055723813798668801189340062638822455739312135560424145537552301823364937415789398288689325481490010475125375030651886916289719612792836007993870479231377622378739631699370290684650493635970472795704489450849164604301960606485072975000808334194131403894882203552058167901350378955702874819450020694451717528152163441249292092717540264089451992310882362354294608560451532904893980820346303631910946681354093139709403123084360884332434879584947274890506693847159329384784982887696506280153232927813768464390419726296228817068651541307718798360317400696303242288655794303183363802632909669163242277405010510065188716487032782548945483804683635142877607460501211216767617237228797863030372095501895968408277729121051108456780994509356330318723404997888474665448840349343226637313163638029361906126129145875919045851244913294931836062981906313272715149322798333550768119947314647484610041414881107568272041419708217181694846476517594968072542299980807918946678340007634396930928471474279657323415617441834939240137895493275629597723286768105280257202557299664762129315490137984839235875829438816108158987150538318308780883469019666284440163292806427260613115331675745670863821238384328380271318631409017769943062598385660845212699039646882815287191311743311606239797634990458509458012743389662648141705319880973174426172301272367162310381327951692431003112011553059157750680439791166347135580602932017500455120914900142158430273522961264082366846057714829386913715510587877229565878911742142267633587217311700326866044516389074698141030019275168993533003029888693425813774014343874879105375234046407743117098378646575789122855019147839186750409415367182925391100053043488428235525023356551983085642272264425647759147372620861001600644353379581556975629602389279121678780287398202148355073631524619216350045894241751520426789759688039058965882494148344511290480767666240601613794318027180202192478787373087027449452705274996270508240686126818178126682618091256238564821925184782879982987201527399589626622771553101554760090107007821624009931461893777658127048661961803870441436892322215341555832905889809354724408841400258147877473979738966399586491118129412900452994794238122889571214322866220787512007396401684199691917220401195441296730216166193177013020455065517453380409510106135710119473825109393932118212108346683313461216540285141676643010221087812334234945104911186290114797621029958464389053009639828501554090299655342142735668740744363577917080316649147542776961200255965667241696063844755083039590491990235330917604030348618396897739710054871970078080532011299958771856302398416583393540457132800548579134024168745579341114067032376466034154911239755283071788590678758899464397858401869533955227033460440853269931728582500669140484174617048487023823613586856000683477659942445475920418697853830992568647016544932303916449732747470933853554787839037760678226416563973372079456034483040929989598643266374876790942924053771918187295141122101761944114412403705507536529915745393817647713478620275537809181868929815584588605342957753851606397015602409046665225688924529763154464976131669186860278357327861809418734610234759275238299001958108724827570926662393815328933148955692943659803496855235503455486998716780556018447269306806821852715157162939177355683808878956034654823744009917668870285121359782514121085987550284964067347727395326129352096393494380034034350956073587441870651562209038359005192964823290826084235380616113067396267411226141893607437487305943567009199620646782672329007869432558585061762534131228365968537633942453863655454573831304006921559079177987867323155335826382558361400221930707652121556341534583653183503943110392425478842726457092736513699208464988045357609668328594939886865769737746179580564597149936446460595335252675203212613416543778294555130241592933678216104567226303368824148876655984967893487838434893956379963728338696849744977651197021801136494425831312913745745400696934602720241861363524918033823276157001525612300826156634232396206791751613202397015910769787233911266518247581306160030645765860006074958378506031917299156632542627878517042533436584145963047568741602513566945131224409079425355054980186751560524374242774301195589041346070383791416923327184999122969248544465873553087968840626401574387772312133036841959492690623490966990511664028004813886375565674750830514702927500414558573210292431705269826928557880049906124278688666819429049741007322855581791890780339228817550382285221761521716110333510456568704814478666695473381904254835011218552054105732753258302041503163478286288513774705837042716158597878746622702284082658377800861886839071832625373501688152569512041641104546234853532408250793015008485055901823915597273079719510069724276303268409534449065101418873124160449332397913338499957428512985281378127722502853665205297616162723395594244590992227090046012527554050495871467836050577295984275477560771759518480797506668631566990696105939935140424925831995685506655428911548303226229152151469982079293290630647638912549869663398247069983657143790958432575271526817182349029129880562478547305716293867940321613225822686452452914717289367979492959180720553921864014016204944314698241583647170415427261670845161322531137582895096282930730505009568435875529927404322971530229536177985900441012817196858420641974238703997542726958089984781716264562549251878640102615906698663350533118556849208497352836012971228050944829805430656147581751202688499942082317611289114302453290309943430643855169795768768517422053873417165452912058663156035082424580044510215512706777923574437757213186725290275498077448176532849888197256735397479860189924557653050517771922846144284900024877767379111712605439428273365755429348637966985680288740119838985277355641777544985499279419062529814726027838935480193371442948800113638250816379968925779803272478834651966601121229516798293732226674484841803629004034566869991861258928469696739209342283357565312958521819092660721753478489653929420194957967681087574516142537203348972665958088257908789442071345433230734063484432070391797438469676756312408400682945306443488527208069647375409234174460888345528208134264468072164451785206029950433357670353144867331905982740136158932505623160132207449857057099432695565591462109361984348186897872447089420984640854125649475053271333130450134920581041946298354031729154176371065600000250654191469274115218781100395782818411257211633165967913055273712086552333818826430017946450404787632322067712195811759711598051768295992165161440004715040536929217642429651873200803807930450376839282497166674022273361254569771501169088930699705048965257307188574263349326973067647071188667275917847034605331938240529374989344454481197460150721810866575682319878149590604054060878432852878697378238605042516911121331539053895154583547145902608524381411872747052581809964426689741258500095113375459381729702135104085622882619441678549987530872379811373631071405167684710477333547712309704930866565936410552429948971915669196391987922109798395925615204195650570859294718280010227976295106063993559145687387606157831372796433292128584336251190856590651191748869575190145622629207508832803182265483419727371151582031376591868826526578609394210214729014088858862627016515524138357277914850889623447971634622099042090032052402067195474392567407916389102159978603497541384805067493552055504298983503035436602141517859722495901021789638415863951820803034217790514882734759531576753170544832657604611891110840868442542971421083920084751142960800526911228390949849989070940694190537705134612514281927786326130979607711729836108288978308547243021300162426307203607696673499872426356401656788307756304309666101021673759356297184426610642814327267994089728183603112606184631435333511698565256816870223171935028178744492004584807680803092172699120342618884290133575416286741816550220075830505832363166322868206476905816218703738775367175380615977987740109752421931863897181557512683258727839987890139991137031084372545860408842400078349674115098688106963674900037246490157919650635667354829623512758148458446449140736147087317872215681248575950642921126531826204676757620735969879463006005156961264795111476142078770141846679424073061940564593198674617930798590018629851190738460568330213370397482829226117570352774066648957345359454116090111488202353053171898891100982733295977776208391457503843294136452573336206159018447422575622145727450600075449492722967641356815105838840305666932943671282639447988747981710869722432143838696319891205919727590351168740366121156505714889085244103980166821353480368755248199892834245912046436827659515116246072847239669244064767868070837789719786856929248431036208170314622020862735163478025094950609700157262661900957449938229774399231629484421456899724202322181104750963681443322563336430855875855183716744550101281826618343883343680698528239345103152013762907555807680651476169302603288046447228952942198071586531590579439318641672505322997976066886073848686425947828396835286706466220603705676721831539102352930573605178164797247373905021473645166210083507443625175212577867138437348122333263287593835717451411757939890403369887154652216745712092203194481203713641426819446568298830310577509173214401192407294572367907785130598771819027903303127498960889066808805815642201989980786871411787760260062406318968795941542338090626032973714709636072492417548337653393677929500199864174006360107368324779350604553802883349894320767512526182182964909969836613413840265403095910666759604664259983202616421545619077773802965241768422442837743187249087979405876933615434015909406949165511425252446470199605625287945780193274736368363341158203466918060286516395221879680743981104515377423509395562298700345310873406476784573800208040369797474843231113679166974708448258278708688490514258104566071830317562282500761191385299843748024792708913937937277107342161207825903975567653411939655022256581980942579786091123727884549992960782389541904283604029306028222517242208725682133927629973965116635853126234608765946455544044834949398015147681945697668375415526012103282368197302484043960078461774971802616688586028206538228476552409067107990337874308643843594456434992185995832996199262063032721516009526029052807848991697735228785658876963476981610210210642136234964492496931521056273609925211636966624756389641796805434633986554175140235690255239670815774116263715265740116056142859515418214986371960176886644436216193687755889435754867203442911187908033754475131299693679789836769177684839621827133261156319628274458867619903287484898051505548244196780136699432309180796699743058154762237893284496412970795443224432004648661502702922879795080736051097404181289164700925388862547239540895725395383144509577507737743279960231029977837877509961725950288155974233902632994707985367762299581477551389533881657585555935423513825701926789970294561078674985815176016203316466306830543771834469551355622601842769644382504150411444280662000647885001419625591589980406932911900908450428717573370210138356902680941076782983455355988350018376120322499665581914933811424248001285753896827367893270523865198808363105383855455627877152878567646972048590463280968494245734651104124940582955248867756678338055792155280319869567423271569755324652519483634105735699206755595391340135686064652178210745187105618771948096645401465784351140530700794898302188074500259500364801465472685601778211377734087143059824760281485127001042635716910843385125786954150367604534739712281857665968135060060906733731355188181759381573377024290885531406070549461341024467834239436795145002433338900368026990812486913585996948478124207241938772273970843333450005692198569475565643183131317887261288851448582588078489421098345521758413974197956840646834829418641001172890893366054750403607193163611478308279589489899167177976438603723555426713523236673040847322610336213724211833187392414626705934333978116045743687564062324939047352343103774354001058677146365610868153101579707498942296455683347125237059428300695132072357867475262949567213718581794007987103468160128055505702562750795167951475078184492016233724601733907096223453298661763612279607727646076939617693160341525002481012442095155978250778562964491447272551059150829342605154738208460317747799454933743870758825331288393376890390719232200584548380955226563401950879927969652993025602491418029312564669945824224545724658785371056323330031471996902096553779717718697727022734714872447913791031369090438561566424357593526771254033520312208009712524876636479274907450037025340683800951126761554237037980030952068073821143722075731002849840661289354056489570272282042475535257691668321667775110312749363689889817860831891445093486427610374186295386147228917750590070722728044923832614592729962555268105782460786354107981860961338257579097669786030268634844084310198264662082036812194445278382117085783409824248273976997063511327875809585226803885507172046196515191999274825671770884529026703351429591923826123337845573279031575332783455235487387615371998604130667525209273632570453338493482751180883143862175940855254052772260284035239316539262704666048347811834823373557551067680375046117829245793930129850804133979023029928236698285951780122045391840723880696928205456020921096551453349160254166098436856661829014778504818902727556296415379316856295456959111744577755125884665339566462780355799049985072020482943049262893867431557218790505009722774737960251072012903143179296987100726198407606312487537279231400729493195721547835994958922278757400354934208724157713857923339883411712441370622454816624266720973005462765073911093270171780165167784152389320182397859112435828707338792314859861826205799982064070645904555332252407999313544390981452116375049213608675970723346921659807414045056333323202169913343493017092385605455459416970269271814028061917405742010584155514667775465205767603345862202486846628980832332470344346482691510168749993560598498003928441832128683590555685053213949568726827141903879336552525757760594803040286409792400148737633247723910976620451089510954966927068209328399654710787029110144460285243474465450269714805342840974955379165823573972865122297204700075298790942194661039777882971300851809336891793366652900942129360904473353581325693523307808567928882404461086307102853326702486851660531460607612014940975531667508732281976885732662702677352180911528363950573075793346610649615144556370534095024417809776184923412204215866807068199305996377729708245881802998241855716353113271446773541516476839902653998003900906815075194101267148053843538697137993545079072842895033800704327278017005129665625705079289933339716802809889052029850557446035950220196904042283334090217876349092532847920346831477636457321634192035826330571447503996156328559149167375915907203410265272500246760400586163265104103330043309097823937305359739661081663792127154264572877434931967290411143038412391865902296939099843173753285895480945915259767249143244574560711086446017657104340862864934567617883799845538516571712174895627538238164168979434917232573435500549467472196890226156298644280943730567044437355170744853599993255492693389926549278582111469550622846130084040280015375720401572527086108944236581157037054246541052733267862280226627771165960984693732717458789755997228856130270484563727621196290206552594148160134312187422623112067854257276374501642405488923883026426324623827593530616119376006882923694842030652783984117577141047205130944362990599731313619471901709560390328487686182441882778635109440728459980930704101647927340544759571169414229899700686104022772726820326110475837189025265956795035856807747825164319489878216469879364238356665124696015256010483811043138915732729873688995251606250088568419870927178172779675019227573532810395287888160080679834004780396458635593732014634316930507957760295190405412166847531262535740536636647308054400362233293106902328933006496042485718831832349806986492848004684722975136776401448612901200991945641587934730310320188955953958326972489806698806641857737568415407278063160174505527941198706282878406638276188725702349989958463544615685366209382007511419086897359792863718497814362805182670385651244687451581231006759152524209068037303752516143187415749002748593278021834149506056718267261174201940366044430382017157696504952173009386420883825732829346798007330084856834311950832490683750126788836691658141746483682044255680267825629875494985241595586846645789148271218301316625394928949129376797536032837073078320517263502132770388132995685827569114468549534665946294663245191889352698457797220419223890333249227238072607532477504341707716223289558701833290751988206686822035884954861842753276624460971699001448507120089967939573220954955208032900246077392399656732648295285656571628338018406075782450145400917972309145329458240239527901961598275036654944838127369587453391175405404346817816191328363756016589081292165260213755982633508859140215786813287166135030901502878156450969891381755669061485256270087518543350810863057777042708285977499192965144041851103798923328123320459118541270397557913203416288079706727585959654153061056610989167598769504549106565753101422465184893710596973902646452674828660628964280025110264388713892239744709308530880079561357859689843881668238505166916485852510251278210959355496856685040564356666980793854651067098222867857766670897531402973483873627373066550219296494647411518185486006134265818436396300199648816660611150582068980942889847367981761297799663926135382346278814757283302918908855767241487357959405509438713537600475843555922739549640299048148872626924375621015938560087860193255215195237441145071197699072318572640773151574820677645061406178949422205073220356965351306880155286679402209545469094246756407017941221877733847352727163069972495997195163914406756034860452437449737317775227362022298464640700650268982106859998403373957860878176727636209468799193291999715656148480711991847057440892944626141243022442934427358867523841308685052966304388344480148279455939851684961619827707628272567087793986350705475324267379157970447593585279618498523420355581484933766469576584530996155205040537996270887170427968452062528172086856959565284342443239411317989018194985180750870595901817055987566756048152033381930937624020148752946222014886772479475997795778306892431995916221042405010689379169382648778787436347318613727760351210231926442174467036765662176889969568960525860903775698233562982359457148137928501328601318402158634932431819708539084554548563896286430319013478303174501783519825525443162367836355067158535374458085106022995635606609565427206340655335803916760773518799843326449101588157823547623853552894116391690019446367979372746520722816712075057297141638907763850717611080056516531156715251198884599792394147223292134185055262629462931643179799434981000238049269268485652705027725981420252496404081856979397597552348003187182656089702955249543461060581212022430480719450008862364821634903298866568216268805848424501516760006690329082991019342249624869069273452061817941879179632916382968923204615846058231609328784368459887608465234414696138160517502305814413899197400542275075480176481406882732031507211579998086551984692638246558386238935942645662785213137191641891593198233895515477715516957110316272920333227901555105526528486471240104575205611364250490109118752435535223474730291446969495751249679680430270416025062008747737390628383574397266734496202663311448116097888883646804367912062385234668684785447234134405390050692672774543064744195759447169428444475817740661411302078537790844577140468764088869027865889630004640351821368086264664204218628678141971372573543551898105649820206490948738280992828805787176054960168707090792619284388382586360753437371688518675581725748545650994601116601750308859088759658011860885695948631084031749247925190291364138065679696409597414277451909165532917805593814588498846205230162537661757530048844890426546581845755929087878503559007878783778191086386212550800536766099419724721623216228331362336846760352157200149204072481885066220391652224215143582990187370844824198272340341224927059855581660461063190781441569537244891074356778747458968437148927661394203209848086626399296303738589708843764754611382545372890302281463041948103166160353072769762878399305286486815103787439605983672193735483006119026673105137376531949022818734854174588135849581067370381779527455535098460653469438999763364142357549935460268220250649224731318452279508855177101481392515466547102625525773971498229515885479896547580215599382682420585430138894720242792035231045130450745725661238044072317744558476049116560015852207569269270415527734974864076177813239998201326415758848936129565017122341396583393946072039506424252518057952371528497190358405368841002966612694915900996020789399598394548858364322346330687307150299490292500541997282859846031735814519192076290429888309950767889714465951941398744693460971729620354285447186719032533774852873682955083272932439371409162940028372585395141964925308870038282060963341193751054556081178557928769146411659963843410214564273032365874058624235079711060762469913748300862163338671187355159721082492447664554279650348761960477145706896993655527936662191763179192218684090756624318533613087501099819314938568468475877516258973158478390281965163119856024276277205239753757120599856211546192642819936985244606639483498844184896755422500610764723355721530655958629925547129913900262554788750773358194064667462687156879194080605887615338239619469186566784852012217480326465343949127957971637969391863993635529956920758257669164419984644843335303130518747623769690827029663854053395258215481367463888001525172779460119155477053275352095448029775096199195764383374795765652569351073148737439983945064551453830378102186207961539419466928976073932273827942304996795578713188272663833911343919894851790813334656635678692989198290612212352486833816643744722682153965468423510170158393526834151255324271558082758500962788895812135530832994051897700640117088962916534501180829060227507331773181826721791963035375104657030983215425814418978187378870933134273892792630996838752036289764084448196632074468000390906903375007465922834403907082061285448188567674757539715988114105845914478934617673844552860927326919473177825974972406942417274828870617259097056589762101593843691294539143712330785092374378188158665997907929320423822152276264400376293761041833314304575254778958905672031428439180720560790503607966437289071217378003533411299785882340151049110811600462138881458572815852144611032427405945237743539721610985133952116407855679527669715370003492414937824707787369882447483770824175384603207984582766082916934472500611999301056034050786367395639881817459518762454497278486985380671171213226568156687458426242906582529601997626565303542123992192004626434125915356904586096004390193642600147693472618494771288684060126307023613057380471425762978412344069529602401947476865903081005008474529556378621898244959832846385298506159331805363097668823323137611512649585837564327079032193261003224981497078682047816846787890081332198098474976084208564100781924438528092970278027761786303291306719798355086136664260643336783846291941270806122025430968831728790364150349832027266719405459032823003916017894950113158613145268036379767350250600359413950518319206071214291950232412900692269713849167374943494858389764593489958032693176141316859463120501329557107518536188113097144102804078770004272807376054095929561202239065012307495669402250128557118866769755185242443071138045719569496647487392855297336209721332903398236034154586962893365538716666496245820427037686135802428803571937583184145736740892460437727030348976998807864922102175278788749677562122101826985536037348839905371413360309655835551464843717366188919292532806438697059750646041254336065083283784700144677480857289446328813321404649061242116117953992086888974692733817391298342626046570451375450848010113789754822082342238242565221592751392285290644048032621222206885943398953745271478144352872036353294257639469686411752473843305252521452149054069098190291271019543566510480547117711772588319645763955445056391419817306074820512478693711059769509674537536128291982275709424465710722123471752898279713471242182522021101209887302542840515590075512693077703534781427377307712272506782248944005356007724642258954218951721641577955051626727390014361333263992545260264655486704590215197356501723196464856124755713362601612962916429918146163270413835982246518898767033893647729282139452672530071820831112385260858342978588489256878351739822975057183424835402265547257155721393213335033775431651860312763636886874570438911494247703490551225257029261954989613281622187582512620072144038056061409113744732862361522535120662128499124300438987345776165784968866951586001948623478623509032894858756943862758316787842488515488678713791186646568146834632552206950838789342052327678609206058860416886179880593529903088262259933394325853047188413861717501238497828131034260200288683041508044181459796228326564790706206138911938475461045437150553543955204665494945865597305113909576831415951458951882660200901136861971384193771984041033810910678168999491114100930669918868661051271516301146415178841193523747108942979420834339572515668998979317016887111536014256226840028333326809036596879512199329527726408419750812679960254376536465572960468834996892384773997810539130925264294530270884270046921771625198769553484872543196484686701153604142340985287374522093162400692088049047262285017171541433084286942528775323907044288691855553375773541065829721992635664273452935390965935505700241533337869139942361607585616693194986854423122130530216431577541585512556353182466906597273702303908555301623699443616821531514425815228997631143750037115562864860086592324047520236045627957525241708892462975863233356371612278152548892647666441225444172249351941479665962560740735376969173779927493318889258697594904980544914092560399737547242671469568760549681128303980138766468503426857274365625866041257213454467285195151447416237256575662400191053740868180743428958701118045120145926123471527356911638005970581467540388680420482673667941773113870479092563623932877053829005600378592739943536117199388288952274422932789740033631305588174258600906426561261024081165536269150342001902853437995822449652253944958406321029180661713684158663882835695801630631915370770074344505753893240131469848558494795190034137737988041260949069640949049680304419397496129862868756967231485090652893222629397088420523887372845284767596213713567487006916227464821309298907314446743454865231713674391308573240071006774620243955572899491034046057023031007771638509709320137316544203921696637914483672126233461455470680078656114627540651518608953013625575239671133890156144170835088884617286301348917574652079697486037553782995354112863332488967005924855358820539729558200426048391421162827597724343322176711072690026044901715612219744751716554821653060165428960068575088852703170002410675625947045859169577988010870457571395633582573817067277571527990521000607157708058659802211703272302894029163809578856534706951383583658377341941359538956204022780805714706781816405376761462937467002591790603273415967549639933466939714733596141798466716421177676834113803605201774620354192248336294911241557468447615309354775590298292397876348507472748576004890748684649723670424651879202220772167068846842425944897787391327066018506184755080899932750236120488064433251008839825268271142243811192652147360687877679724681477719897430351347568494149801791465103977807224146895874734388672378218807584372527717261171263916360331974352336889881948080956058758052610936319014772339739324528630371455497278997034393448447596958853977201293030084452064212826179165532632293240356966562919979694643803943342916105737920707615728660555003206370753101767726924030086526651693026700565728697018205138175626005709674359443107440109848699662644405656681749394728876443231073114663314215069087654655364872331921431272753414397338232576606465809131356428437866288952818703191769185564025085205289368061215759324552523725546432846317872011758426847533441831069216404221244100220167343960754145757718709259690048674075778455322854857006471148125145366984261215404505789176321378188778353261917769105497842587689025808455964500408975327127854659265017974060772956224726533207383552685647753331062011489722291168884732437603703498192193889272113068857878719731755617943610454630053503475516109356007667250543806342284941883778354212540822160340530673705542302959590660484512596044571606003430234804100830600172163514837993147167775749554399879052001701195223416152912514391888456827741763395690816382024617430956212761030604859589272604902585369966080348935682728348923836455694381345458242303221693919460206208969254267105113731884066174908482539301051534589862375534572182326376323631831431887039587033737967050811302715994350337779194301085896748746316395433535211242301701264803727598269437821647016649822852783292204931973588299053689164762645209080273641633677790475719662281503908548279280891180554132263496389354247922833282918935346761403968459000355858803044178765692869182152544009058663996955071861765142265963356793466197371079587293243740027845634674499951136133119648286717148578490924425766307860598269925059426385423424639567222425983934938497262977270595384888919415611164846828198582301071089782208912273515722464862915506888481889377304969338352012026104189052761883468033406234533671866084789182778606383719523451504368295998981959790150318250356778327500669554801532710762406973276480555441281996276717172745289286219316022316645541819815891326538769237905642110261790738544077891436309533469443823816230102278062228453035956763321120690455286341299895390150293273081610678192523503703589343145936989584678151624568892214328379586412898924068428517229753427662859760596890356706235122017998236855266704706850978228173810322630021241066685379374113396550199433606861131222028868191726765482836110369748126276411075746574713243325105813575998384598635609434415060741972002716016894119794749365068653956917620963489485929661194972708957849819617031644901697417869861902551360978900101018720874171784628875187800001188493591661309896828375087838947466003354561102562939339239658206444434882769609018872296471048578306831412131697080353708861547519223573582941013287915788746603081758042990317288654920038346340474739160075614072568109806688371247132995749091692448421464904265438094385089477499100998442079251980666133385355660839270254545704879614653306751744536475482203377395507610513575834440081786376396016046969275448722888082873560900863878818598587157388097159786954963319461835034126018683407276473995533712731360986640309202307642623900987060705710128343886657902097172660365751657394014149440527451757637974399729252060310930296132573321795807270304652907396331284918381938785663648063750835502519470061695190249550465704536925105044827806629369756232289023753771925945778517885672315391271063048472678491022343404431823261571623474880148506659623388824779184368790734868498386371413488368252186389025630999494102295261031040748399248806745657508651724139670290835280651169599023934479667064016046409891419496555337354059382265050918654877080601379303537032180796134950257948434365930749060320044268145017125560324116507128907828764669632866713275509942428151109202094426821462819762786504440416619335509445884326822800708192679887668333953806234637307584933036404494012820074877623267423190670815696449754812102319057988963862708822935364995536896666537109514066680534551271679475615827775106990915907851734279345265454099915506568665675608028312618135972525930110847675946271779655168606679537200924068731180921686702471593218089626178447136196306155736674475798659037438493842102632553491215367289071154812076325199296884649652764812783937055689375027995449219518828910770452826934306612856838384016278996115616369536982941806443109185643659981952456277095644508208552974510225910410064304969586289544893158473855312754804327195289506199689299677205902641858272027873026254262099895649623899605934957902718361893923201981812428225031212931738542301389264131598549270731588444516556683934703631566106029959429835589322305652791404096452006588509616113716625962743737294001412196394289273904399801789989739476153650637544128845348788431390427323015874649365789792445990599167840253457504659932858468639948551920344910814775960388586031637160041466663387818633613075704207184953564368080616550384634663830245497818167747347001582510957390000044857342255911594017815198116679407326087300085563053090944718344262916091530686828296190744555039473920921063717705106353042021012362003917255566219488997987069643159032736986006328486860605458839258861438948085643463928540491489877567810616404876071475164023838745893533124392370691192491248214775232602830031041492595867086971829012289098768432068733104689787915247119864818075119082822680591114187584130247204337141114002601348149313387824865933344575083933359983120230128064805075121119024658665017733051281178621848708177281093628442194165772148377519443700140007473438048912558011997731074793219555067551835968140585673905835487281055546479205903409569861508733263676013677824986959036309466364125604060397050012412320828534274491182687899251043697086302433615682522193474888590783560281536491150135247247997659343206147288351131397195932938789292919872664618957734902927960654234259424565756291765228567793784652433744962453677465693135940470144156603918963821548384779623397790334543834001815506501221573388880231413727642756308423442374133327712901441851332409880837893564462302226614673169021818742485527138830749626826653985617578589847347176891950506005288446953632618699209390224493387614264998953687678991154703237947996243294472184376880670096214715918113855039439725240929162546927465737712274187963998738450772272185852816743762549173137780390484123235974612981092787521663524841927653703256772308576322135981544562719110397141199132551755535204957015846901563054972465255569407520088195191553795010294921463966578862986939435156037043881111163134777328494700741415743278130894461272466038073437302442425744942470609678374434025945000082644607944938007339494695277285549085176751051574422719802402800200571765980371621897476210577949164613196033958155106081639583184156555643165089704722838569346072839896983042320819044676684832709766415975283550612312368596370254882299811281641385184702132106321105113703763316566506850276032779356147322438957655899882715744666444271814142385786893074223954181121783602176713269398909992472050630072522390158822253937774422304466707262420710240796733491169048367361110387560140377322703951487535189654730173215630548521574747124591144446462310611776811838795976950278607300970836042094154182423110630556724503004214375687622647566170355745300149628660471062697541973244143833605431471783344570530561356681031509920952101001748883107834816153231417897671914223545832195295559378689357318730567930076119046173005989373612303315638692466258558953928779615605636110181505493111122052610765195233410582431651080699667417709039973542014844823295869450628281933102981164051537874697085597696669918369080418630505005193007850771440295022603432567426266137010908290410942362359998039212946909189212565043419981169822308228963230403861637066355197282397088344025856910709089525509666494748042626542169890133169258944383306717357394860880530115570970718963390522937539502100406177538183275766031971093375605447965099841386111866115286520204096972542815758080906988583888658182785092308854700277126797714839616885524054383061826304991716944134235039115932658268346492614917690966844870704083828704382083536493398205139650927765996403170026733105228628043927065239067123945220480832272499294939923287902441272171516901487561939210248080481777403574008218609524301913754045696409548850458774574315017323386029096312937367585637544496524765739192477169837149852883866205979032462548818570164936436457540186979105374343477312395829373367704768661283200273107908742278350097897354165514861344224208918031134043597641494174230538779552543815137565671736678832770814972839782199017093425535261310593841051753786751570884670623010046316187298878672434128277942372496227190097440030202387977798901122053736880500945645945333150666122407386670073924025903212792045511128897131526872794812531687963206967543363095993470099257203429749001402288028436270136730533854679755254300382961484226225679312544513008123134506737794462450893578348050960706300415556573463402569998179516392671227676026011789005250032609347369982457731532013147288213330786657684133650045214400672008681882386600437802764272411464519216983015784277459156659703865027557895348992384304532710035123007166347805502629592101056617611237367510005801557808388097231807030757582145148554442035248979519472276678219778850126360179992281377306787992036738642208627882963128314380386658348909019170961603690372046748230930136938948466167454200625196754792743137355635792445705559963018726392507192383255309439842086842594520817129202831969633353690323418258399700910784611401071239922008535443594474291708176735924752512951548222445231040480726509402049269590264345674571218797579975449133916610708648231324919524623824411864166791753890172760595182356505409587542453213430664759805474633421855156830259412317071237494974929370220947750037721146628464752926142583289121869457119214895441223356619793256168124212479716930536656743810574049809093117851402490814533183763544119746594502939039616165384814041079887635092421243727202511466889879302997000236142797995095129573054268065369893976485624963945076413535927651165506032021188800014859410728979911892144891255742208334221104395515699158155141148066356343396581297852092617868989096063504398267165196969957541778035495770729755575649542765042165775539784694270264445307626085796097845942917684212994999558803120231299537192522428830692021741432843205243907711950727391212113347559573098555327069418391596480586648413217495304273582819045464588439905833965072886061917407062022485873474077510358161763232901677959291414091557764170768986771249982580204021360576768922966538735072357093454252633273164783483719863271305387375132138981283873075181412126456282913770605892934923285645060439966715929877116959039946710287559468117417060868469052053074077778271878495594098050251348087634530759098082949538550596636891653419495947126604394331072473934677073611046709157739966541030531452118988073247162333790423071899583528416971924910371894295873129418076294314669349154493797616255070094629582397381518961002593549544948634260650886538655341728724825203322386378226499517286858337801217488927097311849611950150469642405865490871090101102811103495556934171120021899338995520605060061775790950582530357370895134857036432543656623630094277359557185186646634209120040106564932291667686019316091803745533196526529396523132201316696373684505759911144439528347794625776236795570267685364506906598751767081872038324859842139774899234714454246246188655912683507446019495986046027323933502048248962765170790669739514489415677906345123765663090591229109705205104437368677613903302828100746731237717736470021505510818725452193911122765509691517922791101988170975666013779009418101630346599615950210987644667548448419992230438234883629921255164451654637439914914295874525952312157403570830132574969333842471622918853229771427269454334371107541728192081406506149473938293820844121578623748687434673703781118889903469548622836549553158361227683496095867859072991013101100821249812264154512330604497254005938597563851299986460250882738546896291730100569057090880257322726860793941550373619230653159986135425772693852919954326658822106579927115792455902691122175733024641999230394317563241400197145775125380161524729481474693242023331848147990639425155510850448024328433833588688183777510741264294085590614234640592281795318720947573387196612234922288591058860587617417325099348942971990616263834502432974315807710545228299611596381319602461532901976897150420867348500773644743990353937831921258600968839432697895539373535545692805175220294388932602745402353236284768769585533817713575691362019750904240043186024756014711872479068457141862984134401662504137827868365765053579217063174635605941656071631979929536886988411803756105045816060486791520114620444863748493553901764053240260651430054539036707718110726739812130968075126027410486189620732666725682343243213818721249646040219907559885385006870630606707997711416234627840824037915056347845512457433110613493531771536405004928653392622713481319625369760587229874794694551848459431874615448522746845263248432297953307947471773910931322701729705333837415473228653093734293907028274514146235959475080025535056791853515586722668607853028267063442326411799259338749443172819647878771571924090007682484061283885974492625907898471129755498688067518595741269412985430220256539150208386943801229189340389994800324576977258740641605330454632563862466565729512914052218358195987231745974966598357525976042807692461754845367226057392382033548675479008181757428330112061604455763111662754774188213454910367952566216111316707350970897730975762926339683004258943782677382801983189554333746332076726526539489367892599641266579899590142414581522093595399005541838630128461085210674797832055515329194966902276404506588236916530544598506253423789857896676196541408948639854266096077793447947577349089044852947110735503116134100850977144333679454420501421138917391675769184112833237149163590145865889648871840038219129117756874238717405899474913861482949407018431492443563963492126304636809843079683174327534260566330748273006996076942522742733610606858793747075700594144156075171177402541777293709500107696833056915606803546602761553331298666296748915786128027818497644632706588351305621197615913379506659525280471746932086001662443118269619249226834144321944334802049902408050659533242918284792075723312550390191361467995144821909356645745740086140506534902430534893364056407198229659299549696064102933115969272962736721998212190571448257731971029959585135703655971897455859828667560596244031172173654544408478234720733594859317521179747655163083081697490936838933903908050427641563491528925562251302047941167153768765819702439885477817309011687278511368274096955473911572111897595714941228469677962943828891453339996988626754666972341835192716529324086792043064237902617348752222197825827375179438523653167348177243085089564656412619388347090020089918143512882220227832656271586124041769713004814733999673440884944997883970697421662684041384938005367875834951089663354705953976711110362469563693337894346841515638834227636862614734289416663448237494255604040143353874923595939918349667730587037786687014283522229367628672302060557362630514083367261895918040925027000308207845422955636392037437980232594389218640222727046511599294323361844942731506240423254039470004468471257349670750153422406332288555695376224268402293683750027895384189135592370302929089583807826224989477438611431859427295112058360959433904216494472975865447775740648638163115850527557234580955791187095684214201938675308764652431288812751275969075653054031029751676660600297840126201860216714290854057149293738309787278656774171008641202116824558229716244823549427172529605268817400946434147094303784067606308292707127280876601373635516915360898188161302186814562484715412148751239889087041022261667237385941973738768366219712690470120337082137947566750507130048375688853452210934040010633749143947670264709089261527925856350691593630464552774184263319132081292291179020599236201786158870463569078565357480488405443542145154181999552390391277254035659170665462495847651728566364708568552879715585661782831680084182872756885758075220243548610713295775795423109112780406038624816422663613986355855294497842171593863118448992695647614217704373639444369866577764472122096546210372725799257054738874003679753890633834139630200218041787236113073437068713767089192364569673278546440823831194970818814202504287196641721749971013157152446507992833489363260586832223362526443716990923183361499217804570451839047393122069425506484714457460095013861043055877971541402608502124538612025495610265582143722797397436022905575260986987005414339017245834501999563238944709694656501597075257330751577864446764121228118548924521647255232519424603257991112207889421955141973676979805042150917169058896816304823835060443633781581551037754233737949124822767807982303086961080506330807144280900320450564107515726152347114044101941541398249825338408131226767417432171996290549562508901633707153785481470241716909186469256288072343921923891316541699257268861867282760016915356323024446880107144095427459116116955298236255400777009896128654416182238455694192209444282852428236797857588349981763445057794095658027347443157197916414272545682037870433150691861854647698393966646170229831487696796636881623001246508600389778744228908234912396935211716743187567946979636063915680074486348352271391841358396296591482160453634667779543066141297311438164794512141598017960988256104705883459269778654746765863236850913830293511693570181880041500881044598461030710682285159430163330386330963842174466406433629744420802291476703772218291906404840762109665972120422324074293405932717162265882209347284541884102017590387887283298409704348159733461941847893713006305493520754784039230703146957210596644294115792517863429297815950069932539204637475059960342899504729840559537370442882846415269609348272091540443371509226661362366136533295546097652552499353892244526001120218568104762225047901242012677511183737973355841343752179628293232593111503170436522228839723963058304155596227186253094555266664192018669278566196228583630643770965164334191023477137078564847891472392388240105448116381950518089549705197029524071422781397964316361710649379778896750976640077578205328314157611103515602041911633310301478417866795083232220236584667063389083392425577089839226102522317130380916875073157003253257324209996654035325911441521744183943472528519166106394525179664198531070718710236785723002851507326813994843009164277594268622373180987463069105943433117216628215033895191962278425256849445229481193719852424930959352708730042879203000841352317884760822320128460675566294575580965766375615197997348171963850083965514037016057239421128417942205523541335307195432991858473205279118326032452658341192606053892370416270776239381139894376446372361889792203407646945154581363953620854326358384504367705258409093665379522532033865299166801148747264425487437681266369101015940912026098338656023699352029724587516886252676611810028367909568065104359461441141841799944489534257432568021584298182178808307736619926273723907330874972213100719832691569105510898277071322690672571792273904459910022489036889673164316376573972387129951401517782584763485667412029936199653282099596495995816503228516363184626081467176095565297346612317615244132715168751656450105073922072348244143475322660268228258394732444956286786000618295685614844501781963740507654750637391406832581977336581456790846456484242215565788614692686104629483404328577269647784505507230297322084785845414609821342802464806343959450911064510238136239732075079195962063392444899463036504286218189506190316404133694080770223960759485974822221193252974778497218786792194131965510220526268088910349566953788459282413429248083177527002203126367483438544243609091227810740044730181668658381123417631958496781001549154685551215873546985427987831110589188519411635202147455850913928752730896530708136942243591298838685059400414163467677090712057544846153166350532121694311600767133699707359616947748202491386846651740801680374622021340027683535891944472258083799725113619220194404353604840490302849238941685605340098412518038168556030249458107228692881625770843498944062051490712633742585952903451377931854055355399670611836441248714037970828905060839486590997421342026560593388976662846590477455461120672946599495410536217121050347131195769854380414875788539575784139847686929307273174030138401049560772768454582754774821139294314298487389230536201416025627865365356184793764397205447582461254934482347386832898283816028609914963060096331002455178502975495173006449380465279072720540431322592574929732870715750113648453002394403961241987924156059373452212985904513182277487909273076139104742496356556572129763275948654740268820188722114271317602975926147019757572338141009782312347704600644992900674412193685671253597702655148446747582344180732064848679867065632665361222040744965004062548059833302002693272859360643703018155483969379917129211804872652469372863838183797370781578300091790065876543638763041790746182537163858002999549993620009851672355358767857579643634654660901269626201799804199277488790243215822518197110145229844057728146288600564025479346912086898072895476061935015752790963974193326016543019145187235342611387343051023418290804700781555682997521885037475296984189294672547548007769281293284516789406247656653523085365220629817476621381671784677576970632561918225783487850369434844244191335642896087503535512106478228097661511656095291276112338409536771447140404074230585408914463149901451511850416605455202998880606152664668426082774438820695547180827453527764254243301377683737772641749634748770090813752366160462409898405988646850233744484475506303234301003562343485340312901160811152430929348189302627846314851278507808155676416264186353439746726968937935638014226009480355853621960869499685263565824292618259893412965765129450255407255339933909417421435609990027245569535990720512562310600874795244559545687439606552382801733514836588836939532773657972147997524653582101751718801076387813636700996052132885276903911170997700018373174332013704726418472443479122986659688776435559602096859574286247535334229219917784266545544417715601614836711832441860648218941180656301927063291087525059308196020832009881465065848305940144476388084926717911407253330366997302665486638492968999721355716484097144255667417069707277486058602956315486679719433128027109974993459928983821879268594506454874395903074613757096763088450907889692650214313744077182088880771597159906410879225687492778883933163810364428930300033163002288158319090589301622337292302293252979545912574613527219022797558215698118675976656137160303664557940993231723333456716754585542034218828254961218916263320568459141863768527418410066632220976782959089596154824699786714510012580884398726096456005599410839500948698258260825550347732509211140793855130696568365293806242424746573725993367126138505258031709092971582380965197375317179440533228608544657839239997316677907204562696576446168569003677164798683384327467290009993128733485943152953481833896152167835215269927988703628461419778425597451094844923072236043286167531646283434642419764216269752842414046822395381598921200333005884557895838699671364236026346423798051499559906888481158708873433184951874507209447359248584436442136330587973816130791724882786357741712879592717009608867303610455132855319724160181193394230851328785734968244121700633737433334653967415668224527712560787396272890673984612759463678520063818474358158906211656038499638040522717915112547584436179052688856318412751082786238531713256136443992064669555238398035036759967257375653183300362389196257588797756214459227390966637227713565478555514446645952078507724925119009421986563687105088453865573744914346050799725442992589206645321306202431279042275355211744509541218709175473367384517762543178437962361370514311435489766516173745858636915015935553371582962726794267132673359888000763830877092336761561171977984587540215618403005692605446469874994931192809330356819781584493246759696778988931187859236983786317869205590562399706522239701185254248626537245589466906032229031132950597731522723304268428019337558557998160743679025065279231025031807630258695119342784859421036229526788265945508418521907597954195741979198293847130765902780850103539754161441328782024722248085656899535118962437532244009947911009699017790126730268841193611539703173735081281410954580534922016129693119041988724679373326395327645977168895036238315545563483958199572497704412233038504496613252922623642681026348680063731802121262875170216185234680696753050047661951781035762646406597239358918599049541333034968948550762534129872760148428431215582834232294727822589272383920473337759858528054835586129652427372710200103857959089204624539737400947724109540158282127634867911921369353546395784541227022604603851303625019465092178357739873020167682610118186246366664024029922787317337227834115956085128057231194924283709278248550775035610076330665728504173669629212176889479839293850451873629118688597867112864258575413934377537412110659917560165611796785822878850093211279217105381481697254293902159982157947719336531655946934139633189858461208265188388235846935386277726642983993391957719869829782084238948329970697937182581299084243247716315868137179515356411194019668721971917141186499745993353478179008761354344914359422401862700237288449656413614536986703568022719189431051130756023283665618173598342529789868498522329582318916141337915503209950926705853733139549861331274988915769560510313349491303435989651703503218584341401587312663054081046317361867620926162721755953169106077201653666833925578674312088292041325985593793175877903012721600631825889241806444794362352278032127273621185799349413075930736396046686799233116537553346457472787496543983631211648222687060547048913115266510145518156358775507902444583329544168935444138369002065081700084271351626617097496462739003514294831285602739396858420641449880822061820954801050944005438797894831548445265944740384245095765397871720049453340919056121442723033885512935424700549574638105753598430389576027302006986438155805934095545916982626978881645102029982762251596607245667130275283705901203161580341087418113131215797641935141078077971534762552269520652961037568534559505554655261456653867108966416198799280013289149757139987390489039805799671470833186984943198412151331591418758988279222691850340812848889234414456107726147558513917044173371247515008704723886985982484272533375670049186010306283174187510329421798309672940774061683796550085367831361853245846902062626076817285063233009124099928469296100188220568537614222076383186811333701727086745386780077458376204996149646913058498226780549525327995714266264480809341289917724942052331926191406277323333444462493110206362010023237145066001047467574748246983562429145131031099946771199214821923262177118713592310567201982015596655139109906561637840480188930497711047804141543064556292750829407693487451666422515450506774613541962401050418387615739903276002880366630228697542300348960044971486178404828795336570882317222822756764092901850465441554635734542335208970934818777863427806474732985095429440768107393450831422052194163548972652198893202710678767132012975178070654303910411047048499390305917794859059314779862989027708974206341490808197018440210211716791764933467865716067497098879710814442850992344966107278238203574502068902587371920761455266942708987936304427600739073643758187174223263871153077781706222769971268805973876645086967687985359317617722665334107310451773008175215332613691223028919267257640823841296020872285329524293282182081117025341307018254936781515508997888331424955558686064564290965150918337218471767520450445777064971967354869867621329008709894987915473136696937874411113333422515323018898963816064878176391483174869924436642719019382074251391636001865404207793510946340630553559368012557917332297953078307529674436177791751402434779717188601737537727573879986282587809868806707258004466367163236026802312807698185235998509344553523367888853751629500774244127208059921306477488811438849652857801780863977342202720300330203537689563800412522389592042416279444034832176089604969249515907962528058905723407715641289479898421506789733623937189598569268203027719985386889604509740169234522371436024366017332634515626110547678489182452171838028090426429376688746737889128679891367974078249628618025234458756798455151602677357720639285703186762392102224460705965096771083463385149844637650303086246399885058500520727959296862574859209634780400076342005492542608631104555234562587730226103255124578602269526340702657115878477672753277268364432866609195168787739511070597861822843967295487547601742563376265554192221383837287230256901783704939967205266190330825720442028773057093886072477039622552550095392470915742751098299560564612723796371931495383270198137360785973884502850982443738209932393045671360229124393878216750390353615146238372697281854811482753501225828763440262514963982721919025221180780981880279995155629553369984404347608692729420093610082649336084739890868472775782893992894073113361968486860148330295201695826887430939601102538583118228703766830788332309740759152552766269535084412605965286032959461158026222160911108146503814164926442938113217552878177631523762881477352493605108448025226331994696408758960870553594218317696581759961278809201750174107649164286311810295741655945370278660839186170350510224459753835138779323959269836796110357521092604093168361309237638582618006345369723710445666334677198161212731985291014504898992872990138911503799484574711320250723389983305079018213372536594889586376821193214602907213173531726827544300720191652622912637667869217636126604121256770513627108883675122883205303586901853836881601524575888927259021459690289805318126333614103265273365087608468094420931353215939755540654246580726149187465366804623498918909575051325899554288487446137006564326856307315703270112693105407913944287522078912283439760645987087835884799843290784233886231996911328917231448318899440100472216633446611048174141888335426739535268988848906089249756124068141904630622959827039240983235389597228209485205712129598347640224166249383667206352612131198491015366873458264389808375654646221201550784381301273101353858925354924171097869292979174845252560120258006995170366188412258772398783220257512217398128637175572110969821643077957226177469051877958749022469248114599417859304665843814158309833469517727336603722590357475470491768112576665634204946197050913710665160474335526733370051515319201828682720904042189037343384068486067972910463822237132862960142147504516049065255655202155204588343598291135368579469956641602432581470651426223652759319755242186941879082800298500839261827922952112424715915013562215737642361191654236335055670402282453360500457264222501622975945702045635950211961251567611023422988475134130678986763803991221057347906361187024664484107104667417363937738955466990748702499680260644149102213447358679992076555391778144372144613561805011125813710786120941957024828750506285291822535218152039915214769411662720719734443659574650807623397615670510960180766002586271782686001224290886522298357145098460806202113856939767522815501790416111636585877558019774062233215382433220482468827878034295787044748384428194759790666784782976434935945476898980261460303369695563013841295196779824312691771312901761724366340637508745283458788990114846271185571870705256201479613237840999000271150303670246530095013524840646420676655621778751903114931846244816547876978938954622781158665497021273475222092607907260247750037639375232175337557081052787642356376157256837539377866019135559254969766781083115188993462382205995752805801025989542700949157666823127746261803961288949655586042627200915615132541877837777432079374536659303190842652088938930529873231376116230567515959108762153497902338201387223279801016243677825159995711685609932477483083576508197069901734909448245043948643302916902783383762635054549875033333690373654972959809881285626859017737391771515060754187554696030391201221619830273995916481093782599516244215432500443621865339903159140031820902936727256583929250628447712688853539547819473135963523278792855029872989144227122037561114472398839209506312498653565228816730351147315322957428810747392962015617679147124479923522175979535238337242160405067909961984843773356217265209079715857706648296728920907835544467875699558330507187517609233548811932424930394150789397050488017944549686795309800763816046365357463973485970655366035850999101408388805097801266905205156789983131969658135156871689474319203803236633453505038080786689190185752470891270074379891719791747118933606399192772245611890560744930068724061325425593841945549623497281089221399011530697096227172948696795238280280833088350203306240599911322549246642901959263195935757258516815757448308886820402567181004684702001820057450133324829564396898482267362631536202743860508260586405422516063182570779193170573545878804330312587078404985054842226197212500552968544163627295847629159892339413442973889893615950463749989645379520956944791218945353228021981677139855094419542057044779556773812987540421823864951983536899718314649638680330727710016105785878730404857935399118485118212827176380563458719472304545484716125858473275120870483796248040065169342566272235320978986463599957217023461547930586314753825128204752536606305231465231469581555830800976993619753269541265654132668392947616326875414582135081913296747045426071362503639395706995239457518116134409534508769716546767577591550187840641188398212816674856346137877149302683635876662394468472795631390403080306276940794727062763419419406817192853493759412840113902165233690902483175144243058753973967389523308288975063210113590574723121679809537733015025409805599430988685292551634996327595748360178152634694844557962217284578371889492805233084597227299671276663238289515012097484920759281579559792515230944157571484242210179177565530089004335230863731784401551238356231745585193507503636162436081052869378780204771236763580110927277916084627798122503293370712751489899464879089158160715920025263494970277548477547982043321948650488700991295185895112967689067483147370090164060133653864490492664930067152385120342012368523434672051858614187854912483642925316499546708972043870574446733094934843143981556301614521327492845928318918512982044832635410991206040614324081696213317450057576824963929322255245727998433819367334478775844190997402943831087256863064985646973069773067824460490362055307232061450608659966945112095278556776966881971919626292472781129877286070621015625372407877232303369632489875095164182757430449898547070291195673872342447150774365893234299641594988081670613096810783254146865282260872793470480332541493321923981611696079819810602849766756948626327029881817124139720040757583166375951168140442338769265813745630927298636740124400638326222770000105559773067689163508504326003299475711346718261892304676060349026186797810695385497695197063179518552127755172520665404137980869976972627058716876996397747465018517910156415170200326459341153496887791247293722426052499578862805295805069608482682926801191748621781313111961893226940392509235336805398307870690380000460893431061729616729248437609135155454457402240536655917888206280392616579850340924803021480231859208127790255278932581377466765645530450334640019869424299954293688747099602007120405434645212885815451504159741896793035740931214654433731172290557508030567540684135238592206648121448027615230151831053610781468653302201415241622657043238556960586741128116180974206868792191149539479607756249156524062768372457070536198528534430043605408309064386052324725747900190473703082706126832366232026227477056265911559772197808967283246577774571526052706505365684247360474446998871665991932093816202138327080362154914563907450870962875750623828528208454405851967994288446991423948320418073233654979846888922580618000168658629670224167789571274647966655175935278534744690718640160580148723757564020781167552270738999061745529818478905974410126657794376069838734446910605619871051673837097427716509504691660968762952450994488027100444497981932696524285450894949304360635808416437377411469359074816354930635678339392330104290540089329592257986872313324990504266385583669209182636834198288330887394660504781671615526100928385473323937743935113678151121454433412343976962372020026673188809579854916047192376962342071847022167740280512545224549138607133818689088439402912957702937548076329209477190850807031385127346736117960992484035281149577995893107790333102830353088101703046970203660943668319754757777345472018079927074272279780799155378338627745140404987882382456357198879146210286509582287209542221344447774550437634593085472152507503616612896266216592927067821823827788570221676889347695005902562787809688201081934206755296796143081971391610822592462635332992862365682410664035792953058632591381050960977431003902611130834635332875240571390918795197268022919485505673835490133545167605079640518215257421384964549293659918061080744617610379044036403727460981969308932727699493870702577626424115209879388978559438663443084601144335502611304755431527534712700425306736398703580982054414986796343427879407482009500107622779383167106881169491563757683118953767763631975770541559017796262566507333325891249225613704205314703645002450712668773544920157013382970467860209860045762321792447289091363113685306821859123841075731078143264156498522410801545988928239929921568979542759981169409588376256877869679288445824543942084144499577799104402458713962304821755145751196966433758270695557807335680168238833258633199862555269009953092978092460050497067315656804272356198386407873648446678007885648015101515207405027866317704828612410005081262663627725646813621628805704986406374647401939063106946064604749733120686812873179823413164518856794824994797857192237476055053915321936674391327328843466432757976165395564439935242639166371436855544243591335725206925929148225432414300360004405246968642212599492966723815832579470921622891122553153642694705081682290134310812253926681189136866433388632908744505466942078681051766782032951932909671972865676404096343656882594524195028862127548863219351828498487622892245263202258612892967105891862815491668524122819576123401320864674055064370866697338940030817097457500393804871027818057893653789406258133324216829849835660324903215100030110451165477493039393082475373789840337451239528059764202722383933903175142734679335686245530174392470155952331356569126776094661080683262066849078670621798484216718737248602957061571677768948157009082087556634683769713365907254993831344883640002222262269911710708568283396846614671074898247259711080989869060772670130904143953737727610871545133076633538200746622692924220033049748420839769124495015018618945724726551481679278777370742956849841303785689640002567816066215228652904959266007205503613166840942352504907176753773676518935397908503531089810118538240135315684222792490480532555675248692893868190771146746366302982405152921412049795011046962817972116683669847611375291107162714517053559750968630511285419841666656665553334652099045965530563550962633603223720867481464591126523935012318915750910826133742708246747456156152579627326621363805849170254269180980905286203439773756416066969047622277857641814552403609393368234781006203282825080072237065786953947691314117046340233175198839228921803051139684421847841474939451190034742524277268440559393430778482228530450168435227575441247097171872772039245743903804951889077304285773857714119199364220601874993583087291108655076281633152402264823743086335970231400481586343018639330074887066783954527526739424281890504898124289548163237174836521133134529766624455202905779748807332035847094571048960630692971188603316907858594853874839759490262773638035108488560872414164282502033155999278623302277735749163335733700398327863105255554819668007223147429157286556969270792301134908399926232035170994786724968269403763862640498011841217443994627836556911857745654396485482477409238285584333816895169699439317575500482695922189492000255758661844052629585958645539624489646399293347940605129351544741089585223493483135073951705197351400848513310469069087969202552809312468471247202071434259418182610021566326496152143192468514763168007435034922751856182338668607714433971509215903025999337079476366470629525034473115603452646200754955027261218295014439571180778319662988072252750540604589047622498825651487746527720528797020750456910418065991124845980500110202783723538507908173228024691205542556668596817699457256823670699768347519176707775498235884786711114147176549960577204734964785072964218877513259109915414623920217922900470755277650007743035147567807098360753255109497897642014917837465122812984279818035378995038122608783844721768358174110033816050038034745939605563119090502637561421526351480344827127649875608999401205067323223268700413290152044573828245175036940940215301390888455396672515322752475776142656602810468031282258037476673002981451567914299317139490672971249628228936900143479263454787039103504320274035906632300020772315585731005991068688104492525953587719827682685174137471775460234475002080144112705423989769499530463951509494294649100903141355578205537822549056255524388684803449622243571260778373554309398198330910479680118516097409470894225876945402312802376114248218484301881114743789274044372174727695604636169310843714576290528703105801870529882241106803459840194297452742240070841635605978376254017861226562497334385039624950654967161901715771191712418123362804784573295601405151087727967444418593483114496098484713881854391100104439723228392302237120847818981269485935852990746348029112907790404268136263377395148726155216216637427008981250748449981051901960156023767777560949340292365093386072203745958666560896072960266036800427529994963256438496448841551976294739556177409032859048740247546883312475920586876037856648634329673540360590874950153614309877102263344866628597697327138961261691721883675408283773479109924094735916316662885023974812533250352264356786695116111343141190481705638705521044067127918954257955454624352152454258993572935926937341568922355562855696591471959911964955297555139689526260009782443956480689822805537470944004038422349710320762851649799541138617005034000629251878690853051313554062751722475891778145637220786464478669574528404876292090793719248995556849014342487622215982547839829884019106830213690087339038645836035193440954923420881589869346445749936530401967833640062218403394615505128091372340723022819043458222622928014397211133756386633991352924492609050580430247292528723446143216202817180297356296401418610419087811036570094232146738222044313964599442614759962431451733020311276500192103360005192983387295137743993134346689356698202193470067878892627042811702380810500199890996038204944998794119083681145815584276534275189022475363054262891545427317060466648497096392118238903739409836016166626042553818903739302077653359635795140101064652339560831254511492545506581163848756302470589099947553250584644996816617233682736551679475987316203828757766979649445062327550376940315649174480493688498809409259071252814193616339448722102285920119992395792279555241709215893445599132917019054227241156409906142264984117351367679635561416439304587375382399008394587693024015284874907906764555488909131646219995240927549765837522693664986939045211546538581657179970759551189112083743525565659290580008096209903882557225382268957059002488790783396411179791184403748449039381817275803289745868169033612375795177331831874913406010969672187838656871214052286279040440151375574401006780385476082952250913265589562205481145734020949256393157115398272358706236089805471525397241506484748246479537164992285905105378531119097551514284396616690229058088259083977068947589748901762589906771625252931048840998919100509392797752907794762561720301820154202738317024581167963424214758211834600386353113112455147713154269229705109863321759095606267919376158735588764473246760401243528717324578515171265206692820479609931845923476767059827237069039816927508905081412301247080810487328188408208213408325747400699574518189307168592615267922127108042992182204686410697592028339422239150176158918907020148115318717185086090391973332914072144444680980662498384726961048433231035534377274076724640247455945001600328364197191058003515197837543443692440800681710694228267816082575717959201965701191233201069513062178698155422742850775748892803287180680917255025396998192138365474612086120656137136618141522986242064020388741311433411336996017017256896239465140978073059813493439384457566777023164764868573333010181698115822938833671954826171304271725576287417387047320806679003910404155555772509409852343235523408397630081545790454304209644169052060509487799975456987014011473185144567316682193713454219059729445080049532624688265670740905352888157190734484095686248555112777766681983973585972701828676512753943359655153524827496115204627803408482859122206588954292822049885897458359286040119908816982023132420797872553840870582537120416830565990023450679129194954883023304560612098941688371643401811638141629701497453076940603668610809142236119007893367049370716675397067251845071784055536870111978125525822039342338524499636604550797964806041206708921665786534387572053482741497800329806041268751453960415117688582748375922068960815601960075268683442680977190717948630747469779143522893600834817504128073244779299888883268409060669721708542666133620729792347965052956148114305751379901415432455921771067669285753857935417506730388385627903707733108083930085173205151668273473910218246097991913322204454154679626952905767467479749054882046367636320309802566311332381318134389756460320489940233243710560458107104973891902742323107066602203936685693683798568310996274184312264545684604906381911641933069481143801015137607717697062049789550255023142077221874378844170296732991037558145424356100053172102063192648986039977233178259310350183691505005242564177223004099566143108828015375047956409190498715027010743286122049930115081643127223042965123073736779855199160873837950943336660539589452307757303440942653069288325455025824295607763432995494417085392598884653034949042130903579976520142240263529068240631424667050225270930215542660142050081501224472872134841043305238654571448756330085484897903362495194042642689394907184170738381930910871636066306448437472942126422114541319751496074017972813008077532996198223614332055701859723667118552291961617550452700621101970733140205603257025655988809352109605570809765255465318920297849807015392837198463587772074902018119755542863095319274812986080342268440780543759394149212441384385526816240254090279748271098492598626626842976540438831821299331964761695173463942422522758531742641432153318551559981360120855810417435154094041647275938045014599408144514441143345140927243022893818850741953208843882001599196150187565482054036725108792539383712885622043171376600824532733169802855488846186879987841294321634982523902370731360289932879824300662855186043862960397248111632039196564103904708465299170753712740701795905848961819162606518781412084227765318641419115305971167742235426619410950754968614108518674610567175017045618830475948030021789971430042897926663329258932620525878096415670108110532855220455849616731461670609284701140967405714602093456382674606516294938559730822156260862899933131760389941531700538695873686400026343681886997462491832114942534027140854208158164638359383987225315693384252002441554165029157841279215079853074979103805131277825452816894231294989435343606642911228272517240794336785302399453544397067817622386927508924647157089271872730712963966368734872384456961738640516168963349416901070098249640552266732830135494889548207154477216988851084793863071327809399142805670946700552959696937652268290102804298246246519533819261790197714313649225770687807480472293269509173409454620704067185497714430884091545033409157308595603808047865302538951930791573251011146543701468218415766724266319679075732454649143962264937521969035505267218955951591790135613314597659870555760375650478615826200114988326097185587482760131913769292787755308890781666953003911555776133569940940395229126711392572525968764620516998153795195632143882709107647057553689829116326401205304216020679169066385757331414373532084267140334779557094396518962961551704017588725405658099391687102069847385982353149432733099797642450114610617442873102912489546104143421135891833142392233546256788117183032740285725350417148268272249334898706079901312274176658508703285641337002225774974920666172094484325610570130970308223442983945020592976150100542774461079868192185783308549090600385136609960607056324435666679066683985504596048164532387280234538275342057408142077560730077688772814704637008302227518037799552155305395086821813135766342864660783077274546806854130245900691594874834044165782376453786543989338136249279483423213747016052462126535852511158185947439445393675231696002579552352717467730345392524135440574946145560335137330225476459222722488041183385538983570546945495612466616245033218102803124351557413437509939641806400136427430294938887417050981045325288126481084340239543280108204401290408329573276261045902764568889284562748879538899278864615087804222049726968538892455009715354311791307614416933623234520445431355834515248592742695715396428566940055313717872520623733343881429526637641406554227918208504771844981974080347147533402042890972679830884531477742366420727157463415677900768413423800822240821753948497642172542619186233564562907342066775197893760200289085334340971752683874051062354718053388988048890215499273060383747952666613317956888472693868710662605985271728369560116053166405711496411462688497293965931324803745942572489208927412973074991821069119533341264565108228413596328082951475259632931519199015814863241133382984914114691600457478520250686003450940086129321632170057291986442126797234622462126294107689414298650399640237045361707800453464256216523980961457422628689021956213778728218197831508943916191713643290924498237759198362794956892673934631416710663919774339412528228953786275629892205262047261768360484605806862599817797180598096899272818732937109537959519433188002615332773337420968880824575293252542669449638425239219320249973548501573964788447422224927932911131830204818110851342633384316002124815241542882351837646419692820356147360391506746839002756706938132316523191630863555614457491922239664721000279789693241865519428824801912754873956072001002865432485703083819306201897958081578575504992324235226037382663612422098595507088438791274487658135474841152804409018383266870114964927070429579619761852605152953306924684669961128249082666551520081326341167693921289177087451976879068285070669278343129757576223943664528693787621299874180409055671433839967716064444653893158685033284343141348287968824430210745783164370587054389689489588260982128281740717149726888878454042526874791680502803268739837942139427169111806162733134898604371315799717253328314938564573297904715478532245152479415547296733580585520793853828897138473821357731485279911075037703892824158390328598964163902697198659993534263216162154733367507154891837347685981273578962648655526235957294192541641921116909330952140844563179884051905399708758058853521114154070545506385084229171650710750025612993867255529514718974356733270744644970120062434826423654274093602051926616063888893961886321139536984347731225024091337625229442691167985326749541678563318294725502783652733913805602176150410301354033366630593645112264522799025200934082809869742186154928319845025787057971308766758662325549104094731141944607969820381065500081538892883563670065690632513255018859563502822389678983423983390133404932236601897027406362873967557859808142512644006005254564697727439402887580730107137194893998315563640955788538657150947766643640708103034527400799334542036508812619382865998074667582300724576130689033412336894764667591826195282869319993912426568246590298696238302338335009507990032100008194649167625838963578503042306980372469896739106050444071514921981351245309333823384280747880651242212773948697227292590746114007474236603276403403902892307644976068105693033116209518503217603237518862321566992535267995552282878042722899523130813585315045548186930229052433797577452830365507755386275423328465152442222837195239463076024522278142736268663398919653794398747515137327912013192233513416340368344646394398866712338747428369838405582591077504389517030434817851694430252752915588783334063437852337765955897797517623803330711093179921796325105151936554852264735129426284372267551732647334008362773318181910028730413079904330948294507293331104120457413722842340390954423778759386394751983288763299001156252085255212778861686443472214238278934353237805716656952383686025106885140403131488006025311770675020242626410829031784131807467487175048874610000834948886258096159896927069106905928147101937860923232581669413329872492762598472030870202252367086892117888774427862293715467011978533609312152557110529436203035103806924320496797767582787163599010748615493966860456625640524414648400447315779113088240676753700987776282097324900015385734760785886632530129482825055530885885210167615656295021433708285086536038434367508053191037225839462416363443252702741795881502737802595097947567501158520791485787314758655792536083677624163898239339658665399704746013832877531816404164648994389014040113481792149519155695274432910417055690568067976912393668310274942289812321415393506849036870047814099957848162226892576239550331314769021134169485008309556463626427301275993424828303032783510996650181732423836993204114128045990866431324577640267752687583321733148149873231849280510482827205916773764161309522153567042341743296963676899627179187740508426762881656849790229037019453241231737371877771580263896049598194688535640207942946744650876452949742263607913226535584105027455844466727191003800625585544396983335696433551062993900526013431376982706659406344145894676231890540272449796802386289171997377637446916534893590474647440375774983618731233602813660039710547224816144270825631597573517777611004618642841763941290804264761123553938699191954325445752028122784597853128743780375412795333079712447805601973966795563533116814715608275727616512960050354077762896651958952068936320917343498296410021494955540865702808925470696012578388242820211934245912928351610890331196043948688334313351799382849196158344480182804581176600903942440947539552058373193386286021439765024123299319163676161733207374994278110890216696278082577318417409941854449809315499759680927223809634703739135431104412721799309558045450723743446709928025239856262896691343262499580236100401889156480768660232071197204504175157277576407474535047945426519222324102001120775428919061443771932402818185727505632585175520796385804589659969201773634713472203779397845582564610103178652508618749576615353855776126349353223876437451286874701121717752614151065412619429381693275337460560641864145976938374507175766370496544920286922122889546184894664174010137836400977036061330774093907770313790975192948019460846731629337819121642415433649215153504735133294607945996341135546480631899505707226708805182646019105386296832676753182449397152283894449258571353294962517363177255477976844958844211312014200441856152157232510007023518137641340511399182099198811082548808423783248076675430902196819112570528660636310000633506169790618514400807791200600653474171098458208249324026039115694723438454761269152792895516332183011888766104500628169153948566274859862951026390473143524330167136338677228608989347408770738011334409557539751717737129000914955543972937412267601255622176056033365548123084373433269005233436447119455260632595157574843036885435347673849016504062433565524306327326606056748480877066356484954815122470310042102064496557399153552601659644247342705819436311151397484005457623288398557977407957846773048519174827061371756493150201751284242899927511290576898392483138151719168083894810344638281771475923244673421332205536823470645852319233194702480657107951666924941193355057617163667105457220064959506714221600750599254274678063134132801393038635257767478008897040188165003560054256021303761518481059042769335181754415499762656252763008516624318308255704365984795514956747659892858012509596069564795505875094924488320501758555120762033093009802055576395828095154032997216595216120679382258591396359571036387376438200779108288475056576502822114766444336400325765327722071585014713305318105071572401342084509639951339665202481077597074306119940011254422712966759617015994100157205093861585715470284487582689988803240274253844559650847832954811883501134319152044215938034691200482398306786088688106541540603119791283888211647156589729635018342955404692286341708270298706407589791426735989499733088645481459337756203905833873398207574393953040008616622042360409557567207424845245614605608858750532675730820699124104371631670764960412521727727920004850116483853322144655803097765750446820137848459391783729558416694485443466662122447136898526913909438388770048124682483403903937893891182232271275534269921965210172375022708384772641849202045387368908276797556319892307300572756213741704113213263025125126518958118147507468129433358131215603853234460735346588988874623936722891598127275297598795107065890043227959234413234114157247071747036467359200050026109573262859197399669663441020729111703235235943156698434777640443756710203501190176097455998686967867277330642869617788656333168852638303050535630258871024413592261982751125246705975566838995921313520431636173248664876364122531997875518620710808644378350191339096791995878263065227299799859342040058732457640632089540066804438561494747405644692131883539969917833881829661701615830866762954823760258840930642646766556005564822642496104433589605976547361683179514478128879733611007614882214250490652913334195608005550811948187328521243212349927534720129305902984031212373749110963625912169442961656313659652655094505869268323728414208285367356435758681051053700862095292485726041369273517534786421822219878283079620625266232573158980425353871227753757117879183550613139502759849001443028866224391387250058294830680481350105915121238489023289114450707811943125668050854848138484682024157641423140973550768637405827090420948540470270390956755054413535890073954992269234020818302913729016288770111251152808469531869509047967782505461171387682984287136573914941192636427615395256352713989769310630465228187155031497015730648767131347228095310945051969696598379519597681473985891117319466417384985430134777594817332789903550946938691446497401901320724558638573559044098957897227224530349044314087613310510428674876035312727419300513458447992881275486058898479680627470635543291159152213312121512393705315947929365555650223277522176132599271452827152943688414237158712274620832657677090499882817592705607300704195482751031201416018772746672419788154394046055242854137212925971202099718541763579843394904157478057308957103967460135568634830870880312962255672702863703030888641347602172635411790495008999444061733761634860019094150521013675835704888625382896401944665637089788320775653363008565007447288189800479938567198354223481569433391009737959209851033815542925549868958070514301448617387670481754736139907756448501301841763245635247066131339460932920324501458193404316381954269283533154499542596318065676311491513443145787555603266729735720721040412100110114537452695997036921426538606197305297021910715669890537036622966775272095074481077006847013338989893161700533051164713052534146828868848785754430813716801265603977443192327494435936045815705924531224002243217894155055474525466190822645855587362583964031896293707778541331542257688283179142088949931239586252406081357469593120277938775377112087152873583298155199523529990181984849619671087771548922843946886459229202403949113115490525343602482986729666270588941578222140318250483709252788878641576885167812884694098520689188341946466057063618508948538926067542556799660198122071752453479670225180541633885920781581913326633834909008762318829278039121576284723155383781246913461891726071801207427476854183948006889480077178054954130680607102644181641720141316653500852571845407268224823407949110020296718423544142337255516502470652590366527792815029405460564936561372091378253136638279884325574407221206659967986126079196925893602329386140403576534572443673960189430963804611431556903229384709539415075702354622768136366375292425582218782061834061483005750895956194573968636526138730629074479015273110900326111239197939568278354819310397902991683810132450384808629288649058649367135410087339720903514865077807586029890498384883119490351860934174183081797887052836130560787755126560125849959219998528566612873875664121583242241686315402360816138124121788457861142875225479728828728840506133350167981940778630345892625462541499707393103320903329013278858193029094616519833102001260515114672878202824732615710424786947555586828854753618666061167569808360454621651487822795635240424050637030275872303125713172040999560453077470276657980648389895484754564501093306374666964556388479976129098558430613239546382127352412747412910629640827733137405421918410316647877406738736835946103013403004911251921926281439590521926789369830812231126391870003691619048890865459412046810097822718278509260317737120394669567354686251825299206623951481323657384773342423741823365457992287905947297331789104271740058938057738386541068260453672640221504930623409364671156001597837659751870499240542002092453771064655480784480258553929167417361485857530052513575583603182096834473630675567627358175912522869073140925600577968815850868536600297217655599053577532594019403495887351793659037874580366373060996548480202243296540727656371777710697894564771512027651472903190301041790638841675054511246365850599206065220790102395119375309884727396074091835577161190936044558325367690688034556723966596345921958156612278101681522865739887514436087217538455717430716881757758483387457197956067183714725400373029415904044503863823611738262157801174008985319922380305770292529835964958202212700418927372987934546915809383861377050949791053108277835029829379700990114815461791207009521569707489485427316971832079167251527334575586684879547871712580595753765017706524658155012892080988031761565130840871620854882791480407197473703027800071647471403834577624191822688175936246899151231829604104406024712633696292852695469108118740733252766106273492766906574334788256954068198142349738675334886960848801720407489966674147270675184416584458452772335630418344740663636142084401896988875381328993625457516877809530986653023314011992483595864667900786063551339802851977176526165455399904567295420119141166993408379706859948505223034476561394949303592549752190498315866892861873429291089442656762047689732850943349140857761607270487465462592564195789108289095210767789177624983433525026631461163574771626762642326720985469158101987569953668976807582353969719217697509815197773207659804411499326711511346343296698394814537109411449770998474480660070731474441101934557230508895869030798096567570383759860808577198133814877655915098344678042368606417900645314011077528869374685971288086747172891367278790534459089803889882495628820788168844706875095156472607304058649649660413632291054109568917259770238997480759485306001753142799818241460654562286008904318868729660777550546672214993739084011634317499650196917862573113508844256554154526439690392075051301387060399937444650686155520204248726000468031560896397789457514156340393763508450339808490054112684654872003192682845325921236608017263287389952790862200155734945437744279281618329288626697996301577906228559353916382973187439159383077756154320629234072492289551428526908702261114869958789806477622491722974004983396149360973107546376540082067647884693204772011424887725474032244335158913563243551342956774474451031861748506645373102513182959843572346491437378193367295107333225095928002209122983276218972280528706501148066112178092113141087558955122409033215486310678183713024637345947224556806987058347115153344026979499674823205097810287865746835503706489584514105142946160117191610144961889293821941499311392245295942966268578424650443388593582547332576622074719376867806965826149113721141875930242005944969931569184593006577712758503943326072265521144744279124233732827810522736011206488282424622903465109782870621069427264377217257234939480557523225885617264685691604821231047209581201854043075379010994613754300640443241820504027121287302757689645888296014587690923184425633558236113431032763512771243986484706339648799666043581288240216184421705045589435902601881628464237691904362519569981967305305611658081943389676955102237784793193612018235416889290676652280218078173044276870072278403366023872033138982193430663876854368519905718997191460501725636317428841037341773501957577901240397989463121982425749749283527130459044469818115636554106076105636575625669271876950875484975027226542135618369293213929352690694427305634611448782281995054056070983636751244388911287207303633626975797569976020710189576598804824726528139455322133615867952517393008902840925992832374809568447307780042224487304272433544225525798957767885165890642418159007152832850555498879533942180110599250532268735724631164775285825024796614420158106876270832853787979610700470970535047574945856692655900899156641927471549694173132266327290155716004777761590136049683733329258716862018831444391212747815406190633676586962930228939944021698901030264367021738517660181106439398293274664083159081910243755994110291032206064446276551925130984991987617561437093112971728974774267644919369230635082520444515735807893186013690000958737813294014817264010424382576785206896805047939178658612029956531899766699683398744922353212443404355841018816870156633652109011591138790291163930918180012258557138045844446856404559535435423879563290611249925955013759616166315355223148029561734802031915182349059990757671563695264015669165183189752315931193017109981514999370886861973556720747343677615624914625964315425678145325837615240243878500689266074672607440685902949478969048320117913538279359571454213646962740309943246974037894330143307942116112736677238012088504896008758590062592693206733760986992095160783248848509500292741514779670123984678063784057319550513145730294099912690432094897662875408780814582548317876029774081121928524743228430812930824504784483950423031134109839180710647405075944166175598133035503532155825533658692373267424910644863261127677704068703830046805146180237732931589464296878517505427770422942672874981141962642296540209212379049993281763807737115789139317114478641738109991949806647101978657207454471254248057203731066770669227844819105214159266543808580062886857072026221698198416700692586890265044393302244931263476244783838253578517462461058315788577677339766016997271230884946666149016776159467037573598864764910376478149352894245133196341678253311411171022966462357874598973446930215631738708888122677107126813818172933648282048111960950666165581281298435498557330308948191330131905215425288894596037583691434049445178169621598085904609475392035731295974493544026666751933443423890554082604526093670234511531241158917226300114700483547589647766058184983381641556192587484017410732231487674685605950252346832949437128087743374340572669919434288862702131335847584706713840335672571139339779688710814098624512298101299175126070469158117559876485082254174475308030139739509566629488618887753641306576360470613214632694182641067186822018772163852027303280156030767252499630629382137243622374775240903388888479738329568204011030458538725841725607279229559531064586874154804196087277524821948360155453643743302020014688227119575508033158775346611105179265899164086740793409853556609814069782797049937312116779900150313883648074148346192147494765799232903636849783790517632610631265290077776352718982359096571499999966370648019630794574694968741839244957582107129439012520453225515636253909638534766828779703084109663135872160613996063824191807010113507981257204209729204179636877650315422532196258406104938335095011562452044450830454706397528245206635163264139921991313711094995313437136100672772522942631469861347891375976530857650334090835023829590070695120898185308185757987389392453517584210848148582581287260084976098061850989412780243236644573575748408744123665426505997926122591695332776429196450960099170664323530086373058625673357217489846455271100109439965618489856040052874407035925144672060803490062654131895866206112860444292147806231320423144169218697286328359153501781791815634829008844889233023462016757731717751033422520512307336957518043465861490926222153941358775142705456448103203559170716094228257347972770813247512049362021732583565503812208886151864705115137029306886410683683655878567477524705650919535000857314088154473595231380149829311092387259916283350993754303780865920582533899869690868581548026855327092574107233462255423741233679620967596285178885529698906248324482813297481462977612181275660230691680549076658875220251288495475919222000996702082280372349901047163184057239283659041388356740994093580785441047024146710271833488361626957617141810000333842917788292688913617284968506878330058652660051455811547853049494763887470382860916903373059407018268240163869234557309708905005906279374366540051848230571693549449709332170347488816537975373162469829897907864208415598867994773657004217490143297240817335828982444294930208207666352145594262658638173054930046566761578508720076856591512721305119051518821647712312206021137035517073454453279303574065254615013522482333312707533275662923297726429905763655163643771067751016161944539575928786024786934697353079216625644678516260876990070238072152433091390135555550756763906318512443550905642306406627651800935348531214804617866437112694283933521747871732832296412979246187774595601490215581882990752718086132220470683880001771367734092642029010559652752132511423881797713973010955766842673353636487920538909392689453139945049040541684193506598616067096817889926061211360125184500359351167931580391922586570419428262843942079108889237285796989895236140681553327410645348902031129511987489841557732482749568034720538456127718711699000184104551650725589937849589507031391443621727437660894766031461042698658281641285480464375034389382870092718606263803053238025022502132904835006657304942835707858492606265165700658594992655507706087332522513375492971548677879106808802307814551351895051250774474621633993628756123922678055414133368957126044430671540969681578376826009956246406167044070548517496241172237415085965214665438406201864950257639046385125370640105064496084964473984789635205216396263497747212073207301031417071283862426589267459940803525989497340115791049622275651926769216391912628701943896605153049457448872762753935649217544538680587563741758503426506734507843066621176605512011791597623203958328582383172092319031300481931268060037669450397862936413670564848731228002394148243819675788779854591730920658129327117779789509332518827563380612303262950010556242520018431965937646371882973513844718369997224352471928496788932371367735959494718716145012797337123970007624135462497457099414048278331025265987022922770812450207282726385316058969099515321302895323091233482081446364767726044030224735968539400409214410647924277690710877048470608871636071032915306292531288654544602590862410883411331024608911414401729285078650459525211552738652387499075541763524256591708151844693485950792771024148391510925801938514369664608866734767849869568967407199908397810657461902301681515093815304144880388641238069068687722648925838393887378493093355264784351627119182553999909373363147118378723537687474909988591113305906673257730188051256748023992672878880829201520987681555256894002656483814033442112876337956527228462663855515849451029948084369781620629587196912186627344455871806983043113949496673179964262298404950825556316503341388081052367419143763944335737088778761628651257361421877042557952005120141688979520723502884378758943399787350976488374108046719334389651845912639418125589320421504741790317540626380849280790962420730718254293706743770141503878999936207588808276086873444869856406094422424418944910320628921712606050514753267170080455428229162696697981196810333406161134931804624075664315735676226653618524663817540972834625695034047756735969839359075361806188788874065291957057776611965657394446542587157266563295334534797907492155469933954607908777624893237435559828760642221879686642191300158411192005102800354073719184222353367385519790447368591669277533358034285410326274359298110111752634128867275414165315409078865387407928633742708566056609935847838531743765802863375781839055834785910078615925323078860963649228892354030533274895164613007068843178335420202754169566261537463059110210970806825052229851144483580374890498842997055497960838030147244535028325995868135526220712753654213108474602521619755184270487522894416714743738747024118919510787847233407153311934018052046221811820689329665460569556027108707884911981273522725554302634463765980785161644060597331768526957795146678954170240494267061854863265813123548313201475791525143730824657509785967300324821238729225475676354215579073202457493500471252764734068091188754177246518202701315393122367633023529323478135405596642999731351830011725972448290341252138829718630099163354045669946018343244185554358551374280016818396396196906260135445763966914476069677430609994335354587403455975996851482850197362287427068180470127782409765072501529037558430683896494662445116648196836377001918230144648585098671342659392927695779436458352612822241843774830882782408148321801055954374197426871435876494850837233262213839592785554421018814692777641497356403332305131758264176025392013256969165649379425579243468006808376057009820044437846231787379413161630002773236562575169520073085854303709532534154168029226405028912433612136290291971830936907384167292377545485648634439096047792278455393438565686839965267515393246514981141517708383437465270234475342125513764478308969307012099807786827420289775820483626447051009690825990200653657288889148714817962560904373243569628912406875246566757045677316997706238555006594705288985370954731152422640155797378588947343066711913229531124467822644066334983259007871021097891873667630896640432767867410395496653629000165079701329230756608708716913548592320876752017677909493221142954931703063687542802759112238687124418742963981906738006112616027839665118757838164531810615721447231682284620866871515499806959208180217247451577682417028649305244150565546799894735290123262684811984738644035970344717765786685463996726866270621364185307406808011462985446414617280226355447468899013789887911322715400407275889758847994511132461632121850339470052658394042187461331131659936581978805500070071453890460857599962938762793802051954853776995768105966422152521043661889415057134619430961703801657416586055009648451099775884698440717520898138978555762181524193126735800437904849216000931012247571102050147824939063370247710702704995759177710337898457323868557635721470647156973722051655167679233179673200090863604347018377091346973814000606027863362232823619081447227618269200463854702813290775681990317377856146382565680020921308790138127721582263545578587946171326030968368812417511397158253116892159868938889644785045390467885102315655547131655590698523553374756920322996867899906951067311594877226152012050368620081918710959270236974217581159877348372488865775650252399298289333810098902005082872410377203222213124596508982604884325326885459622842776495910030929688336911547542469666054912681232105500234329744097709518449146312553766294782105240072542523629322886072977830468567097252367803472801856025283544292395504233690198664913394488352134396664015082875390731767239028315520236144444317971595759020761363785370158109284608121768285954318669345947927484507176534836244691024122523422235049461440232033037412730611437141324645134592034213449401170272420539656058486526242956272179309189263385132744392591183917306235199649492160874734537396779593350280808489320232366321278775713993021991866241631814431315511255786867358972071443892105843992972485836495217770158493049004958821803515425337770812715595183249458653030375683868416806604471423250387996260157766658070002130735479558089798942590149257459725209700702931349046363811104333618577791683411850159162836480571569467422402423794103695798158685660961870833071041903189766695746437365906703975066702641934372486402850268576476009121935915856640105591547158524182870609880015273458500794850984052841738635716458270058027059658832467830679345767467059467338203409489697508976800311057510260775942744165039194746361033522264346158398991019588154627646955125203251406225350115353440450856300695684463838257847454303650556620105856970967571326213577655711729348924411519193839688628931757771734471734581335742735641113651996275728987084964262311056553107212975656513492826527483218762360467419323648647230256964284578387266278151424478390006044262018868847221464265642347766033012876834884487525880251508042603568280063696164603688742877030253545517577727962456411430426013105828321554039454719127222970177342401892268155044771499976213742977038746003441221187096664499869979857855022095429821874521329053301338769784056597704011013557301013367695338334435257593429715988726787728733357556886566507123135321900650990354614959310849803578860926861600726354861740945095642497726246171006590631075568476447565049183015791077063354889807305767283111217403327611523849496570031242279944362274484722006249452482746643591061050808281030045375210225763338337457343033882657498740172851060580222147228547652936421214896797853015787630106166878053307979684876115418895957988115037881449791200458609188335779691832847138217601555034787178573094414615386879091910478085519424985463888177110867028681989675834288554201622046518342924772100486881097244893802725564960647335471975636883246709082256684961031452904942036924769250531211948716738304536346008977503919843423647018675943514900356606172680437773796917775011178181308818120634623091243715645877460964100966761321097113811485552552524408619947434037096634753568215568089520670445721307670812622509733252355090682896847295679097346578711281558323812275108717860847046521648756792907537339539848179618611304225370385688886189923675009263414884938326871736024325298972283151189269051634656107751272498730660965910907474016390293984515115895798235835697702038289601357042986687316757476948071541719285807343524885661391824342000599828706861416900139691499917647739967548076759612514290586371458384671840692782358820070371158147811366974902614356687386732604273658583553478998975349034776359010687205856966421138067176796968694103703861378041026675942476187336570363813155914491604970815161535806029111860604032084043568892654805064307285877703436855567725268648899417604958286040722933452968018764764690454880362534119187806563867276836046353619945926311660411213129502442573545739856012842017883099182087834887476555431484586087268733167151948625211787192209556027884757387322746549119478220880515794640730801498643878763623190828244003168427233417972419391495143904584247609022875297016121404597577454459177673219163526590907452062243085496282145273397582552989810019501498168326456992342294808685746032324385610888784047276758315036201442866150341052841440134557277281862269773807866590689009442920814578871135982209125725052288309549423901941897912549263845713292933840422827036490936052136404434805283177428969703429944737127708235378728784636631967363112868454305569095753346385638611539627852761818389634797448594130510044544966569454941783507889486189462988355356662629551017651713611074317463828695099611230388965539811700983444301323033395845069834508714948489516306544943515016029896415024545987841845671076747959823483526328324198521808830761865766376953999777853396474973761759657899623229859312051174265724564167668104241210621688689159360816813347049657984625418468041782002523896307424435258224171959074883112126219677275229295511978823984050695030440059712799959864388364910083740692781328806887261554499584847276369539548246871388361097022618113056094499165430713819891855995875030250405609263793191120217651068695655155276244181842814671124346753347904637417291592496686020933036401157661785616580067337061744738921119065773714608751592259931891093552834154618032917205694525747478600724442923930801696938959216437106056309604981938426934612006482280657651988913916462056210078843120631662637462314687145904807096371762020891299328063440446216604571779217265596160757735549933568937072532867359381832736294513808581204143396459932590947810799051183252891020704051770931202717323363820766599351859199105793919697320324581529185200746221892386552020118334435281269142572261732537688778786026824479147666995001630859279792287134440106862884894393773065738599867963830862957276820531076290563590931159490791317979907354956066052964932256973138766688395381709865806291870347761606308549193944268890814054604628083446855690699580293021232614764593501472082227970138766775289933735420513000647704087074405022044452486782492998118403252639131324024266586684206639102149779738472924272416171143198892956277919005628782330196930636616923856756960000335182824012864955226655492775720705237675283001169357957991108822875976471718613425077142113622109061022715182341946820908706443231432804619067749422541504289058489208479935702942295724515264944304284047211880445214603208268729820769307586725534140641619133112554141063980562172418320793626705540041506747798948109714482764985455654557464159048999931603532109227519209160211430766962441619963958857743406049068111956554937653137589134504981309367608563660234780476356404635443798944301721801781424665491237604557538937703148365584588343396455847004339595749469482960566536094407770490989838592186969235578829969944958805762149028255574823530901926124797818616765254282074170155958442452216987372826491252376747004401033898431013392815558332781323639975229108824838575475307898504100357311054720771003791727827799821239030324411219343009196938927501762355075020394484925185481562669926942724340241961456795382644777488959827170874309979831363841783068970685249215159055320537719571729534735776776604519489596294410203933878011363995174348218481209089374744835119050704242519260904647800183656493404867110688295671179294227512900619414465810809084436326767045194206707383286781733538555878138972958772927064839492646502163285887828298069749026034570939166005379089400584267564729267943886247069768627290899775413838909233009313839374480323500869185089340179938069300679227448109327449814426567292517823534703845222578053912419678058572442232767531630531636121021671454550967229444751936897363430110059503857805236915005618500794746614340398923611444932997171200701342845271262437682803691075224180222101933276930955225201802212418455137435734996463423434382207358962192500320995332701268235834769602406503926277519726753111068904396120350835517257577193409148606783870597182107781193819745236220603533055778685899573887438911816392767325830773251344267473565427948702837719743095792337541224168203565797952205683272273049890786678143987067357914766767182942258702800927741276765845774729842030807572626258888225809865962483712681733333019831576099502865579093412470791686221557270257880606394373769406420599509948696816001450279382771410676148174498452353312719109805101919430249510278927521112561692808839790451234017848971134999675307184520256930867558421762293534254789519561119518762052784370402616435906521700784937101482873089043576005976027175544523276862411848789867276426699997535255414883443693348226139430725216407726696450771647407340896719169998202878942941451112688437432272986496396661542898009752908563306543536055540324231182714134659375456834302583246161192618373456824541593682428802182130754814375570407917269946317233902901393677778878536823102291161669372971899948614995857689773853301172543620127283462067504312320275003191094958391520214301948413375093803678543410952320278902765243704578886925160746510957932391692889896879128702487460793678315391341656324974794395400040034859059990430416239124159963818104144570996357096963903327111243660428801855782461777328052883852380627101286653009436266756275853085785464272629403966314108381316647577733436904388109587551151322992076825441068310413215011023653121905057439154642109133626599803948012072425524466961476141855674909114655288443758787042284060144801909072716863689333124825484350677493234911475207175219526025448296745256712908058670712319003947460396280963558079168630040789086643354296407617953536744782148684501250434961962494519936942634190743131964458704875499230885038161710421268822811760079436756972142008430109687599906820077254935301683014507833072129033077260166467476505597148284524438130498700853648190383127227214116888050040750122362647128816025835711031157937623065328623497645196431394273905182506614627862422539718249726875512170224833006544932350585018385841452299752867771276428910219533879437938856350301979130009837928455633256363283366372763649011371099673078835211381568402549351356386208281251320621150835436956034278355948066266226979529133745997002987030300513631822484680149725962670995044949780928467932835471565176050625858408693750749365406329307585677063276230585945532966232124847531809758794131103290744588128793307314614807907626373729142010484414193387987174330521229447632031766625131381691593511565512449242619208896271137335349631698986803980599944063522260482065037746877455648947439909491876261083913914695741922516528416838200128966803437493674653073757358065479692422873142429957702101531086457932848093692221185109438247324185905251853200796480083030210832896420988762679319900113730391405064084653293788722758886943624202791178111548687673512025523080658388276774913626776237625722599637359143471274425282693495115402942472864007884116028796203153962094013618160752404159214499954131528669349197307332781290400905942356367696540557784773588653240282465318549402812435142074111528255225441277980721792304582874312137622545089777593719237468934533298350773001468324607214503304083069955101724121227901900681779120889495993046723692494755544345867207508245825239440706943710712532119807054723994593294649596912531429882143859590852658294861095790913845356689830671754525914845753862274060531773686844724050244819103101203105481258434499300624056645300256927537802587811859357660468154389451237270454548214586359392499310903499504250012021171718714239620517171932705320631541891286239423720096397729158589985962997282253301938057317590074684224834724931463513046254856606662326006494724259366195754389476817318914012371528522427571341943803174680324097468202485380529386465329076754795236226415859620141855083533015350515101711572433556478927854811787679682510963898341848548747819201650675235802139400496354916957588806192352862487058838016389957728946350686962169886172298783772900817360669198537354118550711742329246302848143481823988936926522727562032801675674937300267638011977003835345143224250373994356860759979405164465048512530591056562166724704507901129230826533233575660229212032326157282569332366950367784787382933353290536276140476189668749433472560725576320060089782949967722733193455277514003693625476394042689126142925784487013884457071107511638521602758165757082205315433095862780422217498916755761766289568630053288523506498332250847969669389105609430555608609439815927988421854654556274439316004908749310777327744305026839293686127723266969972653565673950733030177638132354365310559502082913622573963242599282750328535049529673340789022600954166478687064375828803126960523945824127036256852488805087387313184467570270169231589335247312387751208596177321279064565364578291441545959596593882096218920361345591418413966286875829103861068831713094956671056026739103566070763208286270798200476879423705149342193188273701081205575418610929566525749114536875470599841020830724568738083578902149153790676035248751653303067689640827814427446363226168009538148116733160168158543428022179124930463567752951473039276610727462023461178835224503106385297293581211331591452642558963722888532444185687896070703141980784376694419993679670160538196003513838396160253512024583661478053726563664051635699422008252082262541404760661740498606286616651870947789391745601574861682886998489334055740337098219048252853883948870337126668568210393137625292969514311985328842745812904925118057538463401247689437969846629144894931963111937855356065953708359040417619069940493869658015288399443382455153319365545451118778525363965002062602526617764898616054594785487650147316017107826488175532192275220830972342730214709717539113889187943541527621120939875552386834498751630472385030686160007050199972721282917214454188125082599019672730450511103012407124541186315849566713344672299405578821820926237827263228749892630834515878485789886296336304387724497356989775656570887959389232774093372963177211578645815323640652754367234711143354579414306819485450583068700838579243733809316635268714144746301436138334935761268021370147555446622075111156016156367293235277872345219713234971773111276953957183310913707613975666624642251457026464558869078136276522842571276815907952540114368105305552813229466385537306415137582451017615824633319064404892696760983652227083326425855863926559240023692004577821500870849854130887270073210114005220872782933101516015295356169905495036678049233635135179870896867193342876688200275971944157285124870288168989988905297065362690798829804738938226383033059827702403047456548353268626623212297175003588707613953715831228241276311898832763057414539473896641922007443194641711906809871943396620987619075595976114025959238950785377410502930132178965934191666817637652216053843059381437756016610355620256853382861459524759832952849368677663219049691991153020266447947108321094449184317767131582948411404205254607730004209690657884584923021807623151647679831751320646462685834861422520881367686409091048370363450055722207519852199154304171744744352674787018946906286371074376506449279396034016219572912755191284245693304851238083839271092506067293426405586877570705143810652969516338102604305451085391653955306171777387055191472659306856672205030443357681473733917868291138099749796204615115221609043221398382158679062673088439900075933720892951946467659499772151607343559247666340788660330904342714835458885318894142085629477214513671153092089285373483230952130620480960795403901940127513626523719295301602320663754794114859513716823064460383250692740802584374515319629725274036413952784486193772370598719669136281082049960792700442114285480634303976029635419848372557881316283878610914241772371220165782999750699220937009625804278647968388476769355096198432882258724768649920873634282777490092880088063599413951662367997604231344153479674036126070907109673805832489896432647866145336891075256360997129110002611220689016404123718703307270605299543597910269127362034108241440748771779522811847740531322858979930602539718741787950820985666374733313930243048545720884679344628936347432545405653357619646583949599975307432462033167919690262671375012459549211437350708867669012042547421815690789266654964488702196268256183618379043750924877901688487423627657960306534966591421053441033154382680115283193942436205821866401357192583706547219470130599827727168055059038265171879412882403535376016835124581898364393996146491409922108810862977548064100486919166542101301876030327071171254476416062108965400613868805182742013878458939465980141229749538474538682766331128912248670996846831416620610817144316211259368948476680484799883914810748333839199230126146191311239386511100130323440828280969195026803571023329788334533265340560376009554237030681831809000273125915480824740195052676461357623118794797571731544595156887481562778684023538353394870091426586596615690896809847441319787289911732568044319358605117819840783621070775256477359776082231635402292554248496759679189646462908760447855723956877621935643134767766274222652620785615823449710421540089400503044747808690612510815746904911284848668445543795409538575543955074865512365323384231348872431159636903209167947263915976377092104621696665998002783736892569203034430555985180177543406560987724812676662829416230927181315753963755059471140576686800228597581174259282997828345764535217576578242811287277896485579646289602607005235679703811714720379778609655976081972321670202489053708700620527993955460589260597565823715767032751750208295909917458312203350776219255458919748662544561476469208128494587856800629354574647442978134220467619319559749843993245247943300804773060884295872164177833725249086038888080997810676883124779610957986135743883224699806241025888454519705929577306804694396967267518781852429614794976568522547165708792266065998919803791227877039487836058145469279694189087967066324996012769908609654149708618369152519394116578799836516439750790448426715208278261177095920101918172118168204048720620159427290161177715993974570068235960519458456420216236269655024080812469859451059826824827953229437715447636155661052224265870092809415235385378638564565636304988162332423764280484041235512577374067420019919088819462965820936377558040941369171377571552915452034200044784186910327801304935251728529168796239245660550130939411217874082813196356700734914887339720187281900059141176371685972773594458094892899222751629962110351670242533332966606494622614035522687119430553754082680590197003886262736101014939340131469630376338585493798656853477145367360663341970355751173203826645454563480742126903231907534975816161220616257578654323933406491329904693318023658260251221268702580416195357028946110757826310333031031688163004432925872215071070843878406856708044892514179501966834021048191042273894818446162371961916764972588193838115658665274587227008151086337506073014756731789137635008085874026849541131551081822625991988063746352668314928605347158948517287070811459875881180346112463410992415647239689786529595592075830095089775704054132962569744186513968852468285621580197039718054454423622599771281897633256998374256884181748744187405386778715746078404927254334677000206163347572763600405355568260641882544657466540982729403858188141045117383155633112119303491200873978206300751910707993782388371668523707059748316773243743362838748950089612408099571723222494680018608856489317635997717501290726305774232640759490273998516853472780050711294143370022616043492273233270127169816588926574715193179369962694382383664722640656941714338126650632786105988700596706811484433317470983247350205694769554236472506626366941992365418188023715017673171900893008022290209711943587517303424141736935997255445273766617737531233109435417584232818862730978922251689450767687500313754109609994534624541807015190286300153708530772608061694196173357385247664007451356604280026630220061044967069650651475920349804804753706294842116610141008975511250477973811539145083398962608806026807427359156110795059639783574346619014182553662875306183017398207751821806366189998038269115110978385248886971535156179502034745559873281127550945183589118602857883920718691719500788164016794058014369348118135009739508632250147500936878033671895951468654716577532702606905001419001244710911769801720963614429493035500137859080197386847843083286633590155716641537760524545616582047223918550238301102202069705730745080073910382788795152545072121902921333960531380530121421376591254822311191782623437716875563200626519365689156643044117183909165237104304419637760733435474993232578173687975547254297215696082260468550797765889866446579556179628395114242215201903107210747971611754892926178500332483810374515760655388927662605624292310326045345466574632665169831835334857848612281166353998983893152481659771865908510408576588815803585343768111600941738734421023657715868268269689901134638978676522812953588146922092828205503725407768134521261361898266948396035110116521997069335791744910207096824844688129484735644626270108872759500867302971638271874113188866793642735317030103344992034962164468987806227608085243817908296633157303314473309505945170121957149912868367009494431416922444395484253975489480438590451653212387733176857372898191785550157093987928818584672603320420436100393455580399447925183342721057856687183246031739637187355608528608096143368306119762221451980478673608763832465942012648222606921549112821054094070460996656547440582094588527242221729535493472806610863841850332157215085469489452463749434945650975469875278630646879293965212046609629431588638022196172474961568742787212445919826452308800831632193908189029274989193210919868719291751707947292068497689609660481279773311139487320435990193526302809052721508121048149032144838053685990150490827967418159383895533439632020676798317960447567585322043480903568664448939887804018008916516595864262409490403777015198735937062778978335227385459198773815074869671564306097068678699356654259508028675623123714572625946227027958944580445387035809744395455076401810634992100816253531099582033861151358648463193747772458853515210950782131063613459633178508934896525307580568949130885952809049626104149432734789815133925426309524779371258966595539502092626116330341808363495359409714590112856959525240547131411278134097989875271244471296569921095536144196009093639964698794821040735097157921461257720650488003252849933666100611894697757598342541168517869902739265367839623104568969714718167786509954765172908672973379292746511980529861528929370690780957340483717818917224504077828015227897549519507264155804469412686531562962651173263936112289532804162148008706453610876002704973085146454016817211759894476861149933057442725891669690349438505409440818708481254302644550387114253052591089515160234559540589642896819046681423202401371216881230681135455791201994373636823349501153640390077767653628127268946992110055697359364890420557797463820433183377411542632543511815804481797146788660431629823971396558903474169687122673833083558997789659997415331851552220866403522742268591299911991551565280339388581907963659762982739566976698562810916411925150787197184886082008432311884750581918371954481742356465728816677163747777612657170575377834408399094243749376941687497217321109379084296811449668149463151850401970845063468932982027519419253571201467131085567507661547919215771875651902905070986738432188751592161238161414679204635605190129829221660204858126435099416553402234010790148566459904020796039147930685198823714454316372483431948742687256895092825105420625340277641646297419907508827365111663530272112198716184896754210775417019321055302362824100958500953634628686670696256514660820214592865522425195631066196697269784795212443949177033876379045822859998464618811644979474296133654687756232827961158048968972877663811752555821109325178558699909827876310839393354342609719371351369782679321713233526889430082260991479340952359630877104775260541939542173473812690673903140052685915188238494205975124653627276042211764760923821726999923235968255028685179704803243216171486175408039910382359510388312932613595407877969427214757569802113429911095193245133862694808658102568743579090439254191538714889458822796436049786317478244309953530021214520436299862489347815027657875509513715192576996084543028947575904824326560667792357653766957864398688382961318116555867728857217684929873683799988994987503311717647958269598526756659765840844039906166664290843702899962613086776725584738698910086291926214901159940542969229937116645450712467624847202733468883878041562803268251415639445200385217336875539751575364315062886695697508991709610178153734612298335462138897211603945527756055050745608443918082090696840402692368504739351851664537045052695727671729048114055159845391397482338947431932811839248791528701383338238663085596358745391438294599628983464698501350958131865146330250724824567516539394478358970297374550316036369589829608169034543580128039319525262749581807241148767637700809616375717944202798416236216974423263159715178743723812511514836971536276587175911621455169282961268481778919828365314574316191506596179665943962159762241398534261398360762867273877614683047407888260535050068030825220788959566068389767798167967544164770860768809821993127482699688677881682951656181495183605108607938772737939516507424139262692171997303246316654745791039240170005344627108507585935259109411668402830489569485607271928778926073556105326766319942075961469995407549772855838961427646765681553916386388003936247384206685549155708105340921476823777110672059572298897339703853366757381896159896198202949823437748456142173162775747367362987817451990618120390557726426733118127348708794282499540169850203247360816704243570810034604754621229086915339621396426818708120153699819748177671824097650399704606500824736311343255269768123135218811836695375954379993496583884623924040438396940306829967618846154895832801537616922835698812580957086110791651230785105947445763770373253745023601132396596293597516753468249294552743458191588256719889081394550367956659277794186446406495433186190609638113411940748249133121616361837073463499035474529689185329338094188330778852554216371606321451989395195801314231063094002599267643574124974037248189363206617941471244582742764284557134276232601147218851185178207401360533379197721879417381193683548395395294433777051824764708236703529887885535180720117711905340250328060573481879182387446270753184258579928623769299590219360686232090545158605797951456398124547450398995053159826082459593106679020417518914365654313256157948318886218809489763921629135678574491824216775606911341318133148659346136914823100891358958385289440498176123574778024222703001434863585490799791777445128008647895970857079428227604930537724998651065755454872904285699790000435131525389581159034520779191955290803497227998138053603145932999838173191650530020170891746167280917923952388233172383677171393526940021951045955815996674145031046267090083116978246885656903216634690130964569039497866996888894533569410477275536706349308211483586639098834273358807273288316818939083693503100311770283489292037950317312438512655189237520711700354890600679068892577829102830819214920701210138580485275781301570068360906898652997276974778401594617396884349651457707006955063581351827779824282317173100477669426634332389586410560910843631590574779232983860382070826682331079185981522035165377468181394842740161414254394544217918257527470881186133111736952536503939111520696217896846851752853747788275340015609603776832033681817421987569890208302129635010310030244699798460949774805150579265755059671965801900935994564782476501667018154841933097278675843797758348904598195447190772843331050814638999845685949609799884923356552007385276273442878822076144385833546161124553215956098446533844165062737660571801359913105364359855040358918615639948765371137563156464614814562898651522098357232095164960824056576415726586581749993905997725366584527760548785750342955754259625618787729100063349921157627846531715153338004122625576728045463957680315108025411425002033196673344414236597184389971960427869241735876337176319703149569156091848684215768209526028684846557115120761617484655801826232293848039393502307863126628706234055408336317382613157612761519913394919285551524687047736635667614069711518711858402924155780327627045814754482400765088401766466827556828048874593489217436552144529132930734173549396972283312488718766861610284975632089951339251716533519600304931586423333737930512436681201031061714946273908824264599833606079219695045535733424679708194406749311625457083918191605701247927870972674199348100121800381525810082587037035579314034577793782349777993952214739701252882387497268599033356055032232331057067960552945850523627869336064052727152991276498259347595333491138042708631785432833132088264627190429444530143972866297247958085366945258679466821196959206390230938619394831743645295778998641554520708631317284230257407433540539021085831107728151474310419772978900378849521122426976407352774662121222278555879970316439958446325726498464398757499013087415567234326289661602221851116356629170078727128020581998992109278452877814387124915656663351412558840050836045215866985662053304043044262709772231328530981069248920690959668560214334085990463134940128728507684742638215266108768729121652517162977924551096456923561784152946593440733869020969919329594927287421009504187510303884649863701669178856211125145656434042282788779072686023865038321309897154075757410822532996586592539304006815705558327958661223402041174863175544624918979678592492908875953097963348434408751923423441152358505195369965532072901487661690165335192186600748156915954134418570262592524305917864897128833548822405335736553615388078222895664943174885752198586072884436821616499089498900640051442183953191003448710672861942140204711209741492493824104497282541271510526212241013021438913359708269814203297151182739519875059873849437415393149648368484220742614186613496447779554348185814065705028989401925407228688181129371621202284891377328492428386090678905557484916385489804284969551558321033047725056750797723593038107879852553771236193955767448444370076398811754759306203226788125618947167100555531041766614187756132000835359971194675855372077731858094214496977359793879301862163095740488464435511452187667308740503538369564929853618255123619222589143822324648869990351466586257656330534039347068452392741518077368010898849786196362185938940335953319505340300744837830122914408395206727062762394539540171881092577946354320424503341237878303254733769378139390765680404617119713969830580235225381654698329126658697619998658215881078172640947337093807568517836558397422946210804996399257675966577789168828855101136394396075138855440052690116013718222530322239213581822692828502836333666102775320377991449329173755173912646225760021116667216529532563799363199924062291002909173855774478481961479555009684544925574555283063123271919784116361914863107360032157410818576947926965055800756579675184058511284598558559378772337755469675844207158399951312499306528178630223148643224648968334663175947403952884228229927619272259396833794325069408615989319045590721451545969794123101137956686863944712699766093489636378744859427593180463945048853101749188110176896017091443261721125348875345376199055319847220762362737226767424772056573929262450840786227725017681715320620392721561202613744562043104338809132792875543567109453440790405407966003622908938578328318532671743718582728345716728017279060306375548927305190280015243699398414142197825992072183693359827413201734879617148135571920043605460122534759973807440386777505414873456526083471232509289397428060658012879108664892596462510545472149369831519388160658078198774578711450740040408291137510901479572689244339356962664870196008201591399719424443522517292609656807466378556174319638645535519037405353960073451913582432611399075678470920299147366068049691265574639357588211076309463406666442294610277078445134064965913411269380445109750422768935414041871082073385905985710180602576774611757026160247303444187900256497642870155573017066448029303495156201900455839867070341024871822051736500302353988776514165851150456976132887693559736699502992053798203607205853234927118353775168786642243868470207812838186544062193970095666665998341592899478044606240381734119045904047926905467547088631478860253151215068990985430913557511720049616316943906006915047105592700370077884537443452428523803555876938781449919432418766786893955691878133144714774682486840438572372946157759030288071116284354013975645221128603125331546151551108294491380983452157345810526305955169606732029450066095031182124839419387185874030302116875127019276706028163616816059986267637273187147008112802346068820256984897819852736033734372617343870902563604804681693697791602883700578760322379124699244557310142139348165960698561449869459690938661267691907949840688085254026141176662917372594582635802253378030006275169049546937078542672143119799389759501179629450609057653700902154073645515816402795670113948525976728212680315864171058985734885790863645698071761311669140542447960828563018357492604841149011511430516054392558939993974887538415808781256373779151636037137358066096364237930512870217011748042186339087908690630898304498530676124677139144542199262721419100581617820939268864791228126263994674558666101088244069260781608985395279160654674158260806695970001503155209221133099143511986868476760410263846082748911390698155150893206589461847952811802627757449430883613914087092818041161288300623282689087188392349405662242122327676188595934703146835370835159256878071091698151153036907311220033532752720880848302081851480118321282716345992905350908697939511256356453342705497181739594429166308219746836343420007596426117794259319096717187097166832483325874978658099493470044833431773330011786420401151048891935772666051736476742636195408741624433687294586671345096309834758562555252204518095925449858624678233461469898590489822216397873318346810660038648311826092639562744612703761968597745448974324002952364517497492244432525790941307930540641366981441728239321366343689820768234872883323400582355217283522004328434671129799368854058889415339686090642432288419160573331348485052217562520817975796970693765020180556551402221415590890153321485823722133663608475224238891439669944638018653198796047774370777737461467673923600312071128086579715919931232381513241976091739728492256156086076804029693522260340633132628764347147111168040289369472853048922867803206004545267164315692061237707607164896200326935226565922381020965443105433817944404104937861553942809268137215660233643437217613757703076153956460390931031143342138473766993172628396997489510725258477016031651372812516376247338114039084167633839511274684989000166086769819105969887166986336379942967041079060797121261542568553357586487908829847840921779861569925579432258454509403775473793597788619541293002536055476693696322651260018680931759272150347589352499676134186253069676191890862845451011395489462334589459978260802217916308431291603637648426302275080734447618327640135255526467206851169413052233132088403659881781347880094604987114677647626027404159847550528791480426292706091517398356495969282848554396440240400731164489312534810597961860431712753166546983563146636280149820085282901004875572926717957659344242303427841086263717926375201588991201187386752516456472737055094344124675132833508567605910308111995409494774836123273217121123798624531762387242231563708528350710813778146071775354869497948961809193386623932243769902055291486121931383318310787097967168573031646733985797269138600200890321759917767394944706844462791364310508728889542977786003885909638507901433840451208948536984299450061710265163211562501882638929415289014686064109504636483122727205624520334094858152228392300153483980774309758253489915379894957474687307331721782608711329067156046356681278939145767068805735822717644080393621122860575720576507459526975132205753634759051085081728450323177085365022642387860675032228144028647073163225047121220141334320791794854091179106204210143260858707913225584101223695785320823770659356219450932421846805307497663221620935923454115560510842637273555184458831061016789516348702933082180115360252162001359653102360879131150440002672871624819305873180633770785855103266861709415133919739613120891087074793924534606812352606355052915236236501337847382247955438123618363005892228526238889452531377439543661709352287062419413979221792095540800987797496722501635328614514896564687412337847850347970168663774329810294944481026569245937265570948450188523332264087023575432814393308888946524915244753941346615046680093722234944411500775140478416678849748249489163243942886508957795443460267209936941594648290177821938680254732172678881991165626756661018072963945472473765362107965457162611294536541884157294511771451583464281642995981800749646438973529428997787719739996952559640172944811981872001335435356232549318699716553262477831912037887524353642836522662470332902751434112324735069000162109781775702622388757343616295850357851853962176379520860060543946913000166741070707035197704648805501083848671037605609053017910117180514353767645168179753830232664875122190885335064456476010788039407596051554650506354614696022637122481219103884330629517905003134718979528882296408157743717035354512122673899946563812064948755657219503481232690254858379611453783480022531848551650046570401011518952751244226814588517183001544003954096264495274024133801344169554133485940803158575414551827033244585333443436873978338277964525235094908003900644438902955246254758336410840539403828826011291615759326182997783252314228167524973213916728957832795357468705648156319278626596223174646812102244149596818538681570715505406414947653360453010939068510180252870508797209744420531254589058658649885934830526962328768820960404081288842614126599510466743314059424968207053827835525441414628952168521302627367755223815568910003248358143131921798092500938983330973425116406849469921386229794543458725411651981597902034957604475685901682715832151209323025160470682217716889446210447348266923456400500667853947556305510097251688104862478385447379817162736794770887644551214871490968147940991728158470535778567482809413714913636958746989333474615883799619827621230567143476497157045188491777673536856287018034333123703719479200925059891154413469772645956643284607931983859690099426284968938348522359580888614457827680411193704380209536639545649121359823726573846064247006587325594976012864615536319632691157172534759055654689630683900315843752080666092156096927540628835995482094841679797495352365772828398925859341220494512112522175050534141514241043338656216504697549346818778317425222238209738162039599845297877279441693350623784633427766425843268342107807662916912217172883700590562773824818192947388534971126114062749377530747861893679378310386995809561770913454334419753506613591081182246781763917171540131522405011987853838276364938004031121635594616192840512867559409195753660196661129963017081926537285727678800490926992477878056905069036793850467684386383498903662009688710627281036094651508716931816119982023220012381825541743486165458668419557531993052540429729598197902878514200807504822260606351038805271183425560133200281059888315507336333053923037179437455118471164183564533915959726742333852156099376667212941664999337833586934626938440743881820593026009335345368202698604237759065198368772882353657421897163123099012454197333942178034472761520001341589753221743082589511465528890302483848978233003864621806717975310429276419773041423743434949415412880903080181082236901474302546573993852690948066842392256086087391870530065595127093157900580433511863735092613265468352761337648557879831776710409665122742358222367218808469276591109157822022487608583237882600563762759050114722935500110095463911947992738057083877817896590467079587321478629160513694413944250425429396509527015647740608818541600569904088146037573991825295209356053755615262080447051245370921066843339522630680849399094317516764636676511007472518385967229609236144110420089893062693039493538516055670273253834626134605977003225533405607281927675982122231992079525790583126757224518161037061577888776745022943963050086851650455000735863856878768011650488929514925437962083520809427585185424695344992426295060805860493771679263136275618020851497331912887292343709594527070812600700260040903586799574304415207641832834370002662308256276056287011497480635005789178713775925847836806972253698016631875801049531422322204430695008553500020342535858586866883254590454300924964721830051236742206738303655176830705407010341637832268146877657190975564703072914441176699507809329732719471131200824093984308506301241834944738427534235920321105768921770824582710073653425348346043987401231315527812638137845475610684949769823497332608948087822130804236862016934199790785041150375713295200548597689521537264121208873584615393294811692478446291509622763744685038819620115326570533240421402620480918401242690377898181509627603714605957873150184759573000415502995518652369485454533819463981628634255134266343071117930059732039897387363434963411598979205473824486539948638619558816236018913565496671239486735795315520170582962003255407182243525564831172064749114508411011298584156824879280530623278112551977673687890555698881918564815987300605893766015508235562939728261727153795893142772798506067919156440804830953204975105394230103118065734379343550804369885282590284363881237172864243538600138688313140844133836566740104955968936810381945974083189020207815429015189205293395424845138361508966162513791468104695291885331659879650340036844979831907907306986949996307684708617793519849298940244240930035706630725535604414140976581824462757798466837990115007570762209092648810167553276293775751034121949254661203008696620755344455576030398729189666732095638194114268489641503727438339669032125251807127520922318044579550577568091992640605169609196841812684084754816240030729141460277996931991293016518993206718824081652507040359399464751374660082373436772200218457354207062715372610850074719492445520384467628198463324067880021969664616762782639674332874473381125100960731790093383146278567889548375046223533291085819455108395711058656343333723690665157323250693546065158766791720484303792502426927481598732445826744387315902561419515214960652535399753722404984003162326513302621773784992899302367100467174758550693300959899995893514587775442053156910547344541810298614663419898691280499813980133011798301526965110655586030070649070631481812284957320215217724636625487253155304370540108412750481544404485809760850065668202031037874799687187689061341238372439835274640643529897709763002168213907721135098511478967353376547070712812131677543781270275932380656964824559248007914733562945310827500539975955124987913417646014892259078649756235173818458567623140894987834439999997095690248801840428954399700329298300210315440446949277341491293503739018190745973560892050935039997817575390076201031843370415057355499178088654492793425506331982962707174237047581546632072039365856849980509955069420423164564265004358881814242508680163565376160771005554946015815321983021209829184628161188810220757517867196550687502681789927801650882543245035856521537014338159764962854933233669361270734631117890226345742017514728664148258157222333392272390534733653004880570292444120381744926991176679644668666470074355978026104710532612332196944491410239507661212470723845986999210088015601562690651967149000175565937997954986513266810965210361590811621159831073413072394583197659053673150669116748624761706276761797630455183512632873276578408590477538670195350995525516339096525811819849841851865819969820978034676679339177318844655665935673016590031524041834500351843161406566644798670795799155343861385418982307838956812864575266086837493028587511827055850735562029269701569758173534704333188033002416830345462592289842172317612805168123245884679804096784849081079324731180369240769663643783996564948377982099993932288978125776354679550755228070163022657489635655955877738355209700453219957522223911356138720836306628340919073584265007561997207522297059059768342636198290928979504492499708704779111473291606616280151717420530113099962048932229084065045778682000624786443977302599870315113702944423371680667543220302043277537756969654526552506405906332598305125836297764985241231962398870780145146961888984377594579592009116768014311591680431887356305603284093530757031213898292898566488689263708442781386535719107610337065905380494769032173016093140205579293418676745797187633210381354436092517532014289462397713608998585200452942802426160633171703759064514565260259829337933029668048654378367497437282002472458834460620193707084664577743629328067750495635621701483474938449251554425327683684907670290921939466938065789014533165457656535446581166190838151557903861262750049484278131539642049300167178780985518260804837009452527624804485968722776188734986079960161551884827739751111486264312727471771455010572889941763577671575125732787055359376758528419976398430973660297110037668140916317675542430087797127661320502765347295188249850820249376337571359823730720857032264286037427113642626790506032517447871527081472467334225615255187282692431588505253676696713607153314827823293612338866433553919348898010014087700213384074874992260651595006019495804864418452129416120519137409679722768846400717130946616295333675842873655223732600509197927274698317525430875729143174387764314774489406929113231317645594731964766258369953977279461370308131613635157248958323913105716283096931528721878827873214661729530088552134550936569864913083543549055383265831566447032522709604356785397471473995945199674129290614297849289303290043356071999093251041959303805166381986030836570639372203799187729770939219589129726765146242162558150634368877357892470297620547377729900876899667871322708550748464611247421860891343503396950621950825335660667705397583477123698594095645093510315230787781302033926786354371052770451391308263597399195837041490793815666055608116100643816939018897358065787758440850517596119192101696665197202628305547116275076719157304509954943082487743703518476591782409549741905394454219760712065802982105242970221423436050717365025962308067406728118896917437754606089265085687397635747902649453031234061028006378459427158074242794191138565343221474987127497558183422464887343554284854928978310343689751342640739459777478177926017167245259101545601892572840407310575395405354194679289803381140154623804417153878418457616780436787936422195620743927678203193031566996895592583159170587726867145392018679104999980039476807857911326166775998771939441067622218984524663401213390778328174851459418984532030446995194749356271754702309295349018069869135587163608511888070050010157992063532548766120004906459342292216152070327060925366845934903851035638849957725783705892123931230311583916427758368031630378396755738780507576059592720306388421523465707761646639936880556466386066931442228496635040999853128958508820976077121563629832296652744310700012410782426887185772055737821524615230496794426754315293130365730702025415131238682386173364873218725398648370163752582777629188497082078599831907822839169044954798977475247475081115340867133652654142072091479250619678050873806137108542629173502317177028973868112295810695811516670031467378011031917241004056828544345328843622513654977520076855739706826457519723646641839180808290953122309780959396978830498500317692975427562247754928741937733988996412890163019178268248049160535330630031356239525916608428586121649608762142930759210342172323113576084962316533899983242884554925769417933587100831924823011297202159789980625414363384183288515459046196614460885388181073097020728632145567083180626514282784886106904225036594921834794822667407686475313801980587609196687510243378924917247511617464527611228953360767287727296113011346777779116111892882033298262205180667589242656431031389099863873631220219565665453131020432788296388076138769623641969133964852139974730880692966011412526292251579999638737095898310900827311478636435211870748887848930266786232302414202910868974694453482129127638602371824481098622107583868992508205901068765130486263112028176747740197257472273895458539941128614245184256577099733985076448656899876030598976133741569161685008069688044548983871347346261963188023740228870014470873329134652026904751678962907773010017994344260939784474523728231543647964932222357848236543158808684594318300252672717332577170553515512325235332066149930046722768941827557487821909502201575422186557800308845486949102796298588116463380723391532220625974147044325046395562950054746253284418030015811120196089610164836021875870661251613279605253637211328998402798829274956382479540747152019126278858115373423753482111386592886995436980440781679583675108145855498836470555290775433999128174870570925947951176052645827267424710133828965071431912970677090369526087044783412522874161919732292943329360912264797985700239820324017080810331736282981250107022806347886818774820632257383975244174965553662990709654021945078619349217312030488123355734298659814816610427168446480564277692110765453086416569511912869142326346229368997760464977102142518492354914771534039788800155873209364135860662170983959801808303786688874829529110437927407469425316319935061168461686446257101467300096419130757220383667325441655560123484494102634652462379729237094713938505472742917843187178041475547978067950130625261750635638053791308736121791929876861603350559058035743061405384795098310556728986415342231569630789767161262357577663531160137667805456632226200130028344805116969677965412588009597355403778047598051479139800854595407454715837002370307182343290949236597359615392707577283899863872071210216212323921637352186411887432948068700895643576042584315496328943927839777871110923961443168924859152022682469578100531999494709206215747203815201737786270153143309501922854538690594810735629940712063451015811636428538085638030820598843820788079805149759766963788819170242878936689275527637928142158759284878314025572148391234182029626768994373190114515192103543544885697470837602633705408049215151760853630578976941276523258906863674069538182277736220173025742177921526454582838599392430482923710370536895440408501765110238132935964462664767063300024515909681896022212698032222652173139696530609551186811244930698420595691222657196800973708136367751914406221534085925845188961391438575897893991505050387952028877279033702382680636508371905936255946531909197538899848322167693747469970822900247138266598165451054503633611221864483450087772039546950464300423997580751227455354447535557308834756870758710612136967666888755642189540682350441165274938187369902494540801994300785699546013170046307040338081666892550645221299653320242214582434607118517873267407009956462751808755555799269784644520435060451413873798400165155856814329630268064287264038072706936056965835757183544229763110860728959529062260509666494699684454871009211474246497260413237089904433123117149744481415152465680458552456151429472954192470862383303977894916462938745468557357958371451948911840585513067924080697337633133062327286176487533019246109732064959400872142295981831549350721658442264640868511845972140898848458940356634760965668892418940196525949359724601081340020367743538563299529376122144426138888677634533774952146895025921531045962000806058288883178128167966827434417108339479577634287714958203132299941315419846403638459393193010975803766659447111242086247163978325039417685764700062151394174212952590008174239684153466930399019102325805329929031385681650057015218422610692604658539865347346342045413961662083096252036568416251202527399239197288021127242464518810524428834110253071487541438204995497183462042783242380489805971004452058880910053134922772433839106125260677532253378163952604722075662746271149984763751406011951526200228341549780117272363615610202502560743343112530206106023882209085549865920805998911132761975145908017579305214206821011870932542362346590646626492098627246860839265740076400364715149824796112708522004388571043663125304123177501999736059923695670248661303011895250397856826606839742533624629644675662623742128386196057648814296690364855028891500732293175966717223581982617039966861102636821917532953360844565569780666525307630870931807104034501302519284120166975887524266460891503790103401503712736740784749217711759861614362742221837048252522715399876133115818722237576205471491976510568624148635318500917232635241932733846362808930851200725585460040889280182189998838763861834467007245907244577547972940649795549060613651342269893414225035883676336601993869023806064781184015416094716343764183991618485525534230166806849422376728629939867682744695680791158027377097020002498762176555136678497176875785134909649880238109447585463359806981249606314781136226136026596675602135334972995825784009986130538633172785344194003861706541850434149507490671177712289125630012711456621060607752892918661027222193734138964848911258619227993858474998734218715155041343450355975443846828951414912303047213872474597241873045151352735751897322112022165322230281763969066729530766126276978049234116233079984742411140391359058309793494921238784124562812430630305231131611241209380541917160772405097998822990054409795266581392244102140383535680557936535715214922509723652233819002865066149153931600932502222770746113186064222053804865366600378139590710279727140306829620604643336063758022410409623914446828570258715710263108297313666048526150784922645949800475897363744133039151022844155636396634400415025679925450062855538631397239988832370325936505455186644548723212768988832904383093637555301769588807469885663820942375613453072159944799176297607863912276209325614858235579455599968713741093060288898873291152650321604983451900518903485458865970590935919047696141958317158278040506016407733782520051664122437503964964010446391691338354106511023128534152370967940748485261907909943470864776841898947663937672362518214183215818138341121207940873823709302989860769530427387410819432652538688127383885121889376570301691027248862123934844513193479522347864361941864824734932053197604133434505316258360839946511965301626953478492290882700380172564270388266177001858686746411399424151165445103789209927378181224271892591187933457316035521192341487472674119371689090376348582826261622498718245056282698865344506079146664504534524286267872259992851418308757184569960434449438962919679681931281328628914942014733407776736911106805620035270764949059809332771944541152875128478104250029187369186373302476265899830479306159571855115305455259320639559693742688988972351310632520446348337849829874045890145658702903143810152611685924100223770483254906242120910988938439988680542480926869835589057946974196388999013369147074388563703137326931397504225328071562598069588693335024822839034287791702959481300952778765944522322932158027044640225288930544322012302146569407146165464365160696140477570172860074358486617702445282656473774585398704050168295421384309424434394745987974057741661080852488917593316146522299116101102823533051290136893654881657000729533840727311024192856656645983521868966094364722456895893556996370270946465053833659262379249990894523937259065545082629108907057262436408511298896923561775585134447670075843112070881770223789658129165151717076350565570598256169475107972650525234184192816395114121000606856531307224422500601535409376973698009291327133430888105081788187409217323989638810399415699245122291901778843752783266181697084347102429839191733846160206712702768641841834352934095574587459911768874183561116327523036002382856617620198643832496363984224857075841190668266693932140918763823377612194609621135472877502351613088577564699886039289251914749402679712332885626460745555619871605990004780906861166955828786321412161216474756227341448569044933789608643210446136231794970033573663953482709912577379538060656986372444345187625301832236713543941915156213766590638793392394138264768665031414053126781595413413199353701061597429209215283405852811456082650893149704335712701008122499791406575617755921767308039866603913698100081777615746933851538667600485482909565020073894285651442005116241573471567984206710946060434398782470626273343068518675558792572548022569367643265092740772574194202614740723146182752281054450908275475693602606991707022290773025438993341189647623578036488909103642956054786504282476625247732491213826964578055643014897064426657960006489508690316142842817037936994515238084856162895394931636901010637572108988076581018107899535172854440121730489136332331522675406672382888617636813433646539097766121010634067856629441477294459489289770859536607392658117059874462013162475789300876011661303130985029274550615339915937708560400539916136689400370667148542206695517365918448469064046236653215635785907378626090465952242506960259793457782148634472638461642990223237942779002088315709594577127669438118121777024720489364134184069181974637702297902010638504525868209904173441257087126822139077442838844410519338834029431127998660437153707330630945248119055759978686328223783258783169185584470564405472405523080565281987857996077436211816436416494151292237177037179431030734405294850866653535259077320628624458127683697447369768378208842757917989600079237862096634689312950101422113421446044580900283300633853332352414010365429975549892439599106052135546703194507155123903601425748566897805839735730186793795750297256949495760422978825162964305285490965227673177845823675572365963195987270293323489274749286384411142030307990098401436396303968316337980286402138555439159151199007064155785837167262301125294411947275791088370451087904594498052919381996783420133893667280927444454583949616313837354750464971530428284446004418332079944125453359869057277276823187073740627199376855372801564087379070013784212403608276061890124099146463847931905340152772738963127235302448373670330993858901449119237379419807806570182317789063146989223164592145557384076726503247939306908957332079034069987415792766695716125325986935207495673104971821993826910678769545907871003440470919871312357633684940246879785053650933953581870812067402481335480355175171386817265930173806639628833238799685763173286237141885281754430713497659105221047212450942053358379322332940255487743824871809018462170619820922099840525697565971935873355026495369257762619520282224588586408067478982426567604705223704912397674868062603356544186592064080776321088159020088512395720113558639300198367267391275880617151382722183698058045921611038722371100951584973934989762846195357797257279107252432486771183028856231766192839117999658725018966787168865797613049621762850615289665139090095830186733265921280803775095317857733726410625427374701891304743732624039589850970432792068597074725764996581377983996516110105073089920558944376397310622768147635576012606426610127709841184590740221479556621364957818268862665422686859592241010658448535041594513201447011391696021924005924892567961863166888625825548840577438406589677568883659702421443659200459294714670782953970359571223334665433559340446917475881638792610486528178166829969860767022346448449745399245098567761003532151286307065752776609574281341572726688695429856921636131534439292011739848686396320602116313009714130600404031023761672832782251834150856953844729385580755008970177094207969452936456862192236754554541587144980329389042580091127469432110324722151625730599550909364501180170858929076025045404207155728117868867002732922847015277816272080968208188651110310677508294577583808971663270745155614510697765281218596685437544696425266448396469041233533555717374738894611504547083674288209211449432437312451294297918515887983200156305224586406246375149689197520199877781229144895871056420665560049271912130439274622464859702471553744848946912616471679375888255691263436709123407061617929844819692052808052553231158666061277548077205397374164246351793125335786271595132527019586743905327572448477554739511146519777247585237823635899727644706471878456186045411994957620696145542579194001309502111944591707332716650448325728728781655106588661064730874116234998614190789950424610612918849390936798646063089195500852177660578954596151433256494434859509995540615524758296503580897729595275821628057981015140562574291555124119740392436753606296400832949875908602257099212525692631254986785593975919527401336300033318054389231929834383785888755870647290368349135321144761148172360437975611240522757309575732467356760496967540124678209700215021457124498438974443666640593641577887740317465951318883125728203624583133775619105711358202785975398872522894884152291309406241514370862640015830878821268824217591319255787365178080662933640781588072745708972986590491249225455755456176063599432894631394153990484569667413919832702460343501436708330368715981700463999685985765742522522496187008667395496436565350465759654975467189867806426093933531483337192800473351980626181070942907511366489804171289908374994342479049722897474080883552375632096173412053532118159546079754035843275917171167237042974635391265449189074044707208551837632134099420770603960420918562270416600462722161354204805243947625952628056748324952650521483787364161983679288850032200259087590122224674942534093940381760427439416971242442590768879635962969583094333983253708760193189637008241796004676822750028382594061889228949201869779038587772044953251803894248590239708188026153229216444088237810934609848025939128623488087183011405440328755479588976301464670511512125053520399336127801634381063421807630685188830127322644083940086346812366093230339215894821700549693239516988951005909842541870084330670748591161032858187626127344776124137737871296746448791510151344061982010981019488882411054196176497799082399791685540262100226994277536345974626901392422403212538069863824317042657180803574342553584756916502268444210611344221846470977265733121573661503844879257798967553874541660012521356556636888749626929691592004914618362105688020671151675313769404318514177717777385463844292105205047655307270022830884888515382150615230707562913186510743542269546530348863857380128410978119050565368945810937612131845685853877615213433825536431585312210193750205513285838745038541595725433668643012243760452360302259417585627274636209862012581047465259743363456555413528468657238555892720228012946873602891944352820073567728580189082871875166381376813324480587155138478133877894958248329818192615469388990629552572269926360792010744458258166637392053441798407157634834529658852329779064502871984602760471296491353063010400151536954628527881445240503398358303813082653136705675593671336392732283966120366221419804707633791495155574942105058884372755214205318185850738041443767316560533226109953563249983659488556584995380742088923646482701838429531799539669777498976951267804602166597032668359919300215872362096492917539566375699458651497790399988844567044237652780479218209789775932843710028887887403313051629707313484317864403181899384562560357937301993099900415411676694010689865924877215051726607997105642339411481717984107402857114366920623205566122002739917228381318148343151074763935386599037421462650833462065588264220670967334342987637842134456958289667136066664629605668077204981181560191833229731529967338700759099289085954364778793276657945843344790071273220364057412780875441053864765365194420111203096484713620147692141213927658203460070739939182175568671411186523197179121664906666853718691591827446022791595959957692817163867714636839240827059193065823243837944680282294370923498550639181379373094699020115287479638417572306803908027432891043046808091752715988051368209533327178111341050271558740462631682238196460054500424741513860773293940517294347339991246038099016662043204301670529502092790037767461637656955530037508679443399007048490344477142756634492496295800272296335041819237947414341603549983607393567780822047060058366494101902522794265604835276864949363878055418266084037346666579815264963989497196234348828531506560068770699997548567520535332247714535226760284895685585722908219472148411692396771531416712953200121982275575643930018604874803723349299916294008808603589941664604026443033189244637424221400747701707886312613758663899644285780876984999382537419704583047292263483063949090499848766577121219009021001073069722316280666729027782066947116048392985826799665280741496186046578818743285804830141577845465695117521013814954225416828223535315046684624198902890918603050761524147192773455965282900111570812744192816400163676424445460616898948919403579387724346922647594217198477578581678128325084101627303311596608594549810882022745956015513554441443746565652440408182095016429281444989511511958381577209231183996525286208444347384538264566997021568779366181938709481861520410489440078633971663894371707663999867896173044064630751616521482561569788996624678529786518673313315824395416898553814992129878661989761430563953009617369788551345435515323035734032924918878363430066794421005902960986509250537924160258878986211411134680940434548309978464459157035491430166009196160105705009139078853777390974803387561144067865298602643055649986696878700223048403503738162676264049084188522045129872350421066582684716573430571650936586421482630757708155757623257225033353662858883398401281314470414125413730376032253284704403273110942834214956837333242801344799833989556741128200992625580734264423388566248917957563526371495103245328189291541980102783200927375527578963477645519471233165326622005351900561654868261673217116488938975832135849880593273357744591330483612045761933566212864787964773992386202525921398581276266212366477921365945485443062109415214443310025724872288871319916519539483816765450148941971978950638665627157220852516483767937418677601962752392985913807396587380134827878463851194092559487989486732138731548009253740805143701030929804564408222323866347273242572118428616062096009853615509321321995441697051285580581451410327296335326486675031671158258173097380296529430056072382487815597508121547515412258576417867575902239575440017721156415310233762771710698390859028463403184358510507133676472169225681715371273052234022524947696425773328187945606877153230299829536136044107802212592191921623846970225299569466607426744001865814447897879858713199717966222184175512187875911379515431380368650249360996456381397095020533089573493310332504797257484790933450558589125819899772994360484796555324795172273227990289159639442202617842783326901709110856062215852062000707260908352354843060818380687287648329610214064673451390987050074303640893745207965462710079263227771983985661291909908184744163709454721885608099830437869853613345840259494799760116055715692776973201017454336815444142627579200383539716650015428348962262454209928324568984490895179801285478984967782110898207740315271638248791022910669759377007215804321659548662643725975342183568837292684896880533027747562293278805004926343704253519081105785578352116212181490613630724908168615102524033650651112420377298781122825264920164109844688494511750473697920831180985681077728371597873589290174894576429713205017155290430467954865933956411290724430784022480897422141072191011637232562112990868565334624736220162086886658866186429409083454576826373444457669638191021498810693030221541830028579833056493329989863944465366147097595041993929804561552718545014064314623219711729525983725033469065533254576331475450720362583539205247486303700710811767542716250663093077260206545776092421770965896061670528373892852018210912795619724868674508067070475294269731374802307476970537671702087412765250577843435246154274416734418345748743896578805245073491296335704587246225838929272732277216059041165657128399638075313902927707591844543710820261332892841290453416427382306669877459135798412503378915436269000190144902925710073873624553058140746700750397043403144705469192377923774567025301841763670357764047842520247698717437510053493739769409753888455111236165522551613077304781090691271594566974459892394456706130475620460100278050596066850375777249305206994818151617455999728299255492392871373718213809432654883588825463294511387303706666384062849409003908444853864423621787703733552974236644379939371373496848864018477663986346109875038933156670560162422046090062357881840801793082602221140235075045999830277408451164860986186929118125636065638504933785987527930903118279851012352565485757529491419955279832945361582932267726218258273786242893083048341834783101149167917293014337711691941791676785547398617546504070992671360159975892720251790273660812966739570852066845575612275075706115929932585937331228279299126386059567023599633220929838309036103962003764347205480870807863914299835499363259811238669114648167877013077659087350658012567869014552365344417646743185846549394244823626825726936986699713510840415880771121424426885346399039303560521909781819858348182313201679560777904295629381443927354756147940561590985838345185697881608655338947444430741647452494721451850717032363998469143507263033372589163869049982424098971660400551042684201380923478170655742006152445174054603367075224028790262227563222384841965163979765895326057514478022112576524861315752860337248959373199132173685482693814675973523182438193124639258174747006690809744329529461338689415476879763907962773601587423754787820262864120746948085714727078650267103163470769150930142881771929629977907361261256957695182003061973101473878414989839594662957045267902156880121176176525931199145020155673232414147317290255440122586852463900153823099432390652761186492539801475261182614854393230725066042354477291165351425060314330795981888995702211495470384002574902449272691709071795623507406439825430865677083705658638173319770543117078155053351001114074154400871181479249215813781786069297426698907445048726568886589354306733566771373403108114061496118306641751819506440685274629885862648859865712343683314359061027508764820962619639491425704839908534749576008039759125786569087858320102806789801740566095820548773289459609846072514679670031363343209997156510756610617410341581575908066756998721261710916381369072922086389150474396084755833615783996296348178031167775281426723918640686848884413510784506243732351704739367029118572071214174620047882374760309715087877536775576587605093950762022776282760413122259221531367082093431489169343563923047867759778338629173556125822042373441608846398204386281303979089616054848453868719668568537686290605382279232389934012135157232507927767656296964044831134917623050300464839166518594260953249053207914128146903592820922034117600130685067905400672443503493232613117913562166303305239080624194397121038639828171264585844241779840770862121461921343037205424901690399490197896689552042046739516857634643843490941006246781638683885910268675627920099022287802617816538519324576506849586976584200226052528410813047468878506119833059297031152740225756512188047549973181041394107543131153944305048059914017547522065253393859993537254544423178969219125655283231237452516502888278836428534251051654800852552296768144142960304686824397543135300762084514929184026141460796440518742182133212184762242451909341075330587238151834689662229915363442258871563178935987099042497813274404560518601166462048215490951467525364756023718897240407923102147450467344078454682146628450952946301263424597367649637055977296163800403172553527631672576057461401352425698979451099158346095125853676412640298543780588752376712637168883395213888708400414464693780079559935634816952081279554613198846546699642042938290713752176011261431882201841542206688198909285557994731238457070876159905540197820156167557748492343054057420378940169044230720091980188345973851167548116320830223619611658890037116142456602509189268990607087201471973116458365131703156557373115999306958497311589705552348692056654367241327600654736941082458705156095151277315283715540946562257361670900139912593318369376980546171971513259849493540660543323026309719796811659978736717841519882323566244916426412293948336821912049785048792725717432127119184146903789559130401053633704786309698799842085964456882499216085172770177611285391956556767181761886911042208943623643783506407235777347653938158280880699880624396720792537556054992935892901036667370532138047594732735265275653703731811290913116454379483004397236621315231909593333200415542523825447111350471709460940416868318477580810623995277157701698973217981751526436068715125304960381519880167955447354519546416760931073412752460118737300976486859261791364334332560983090179552790179223627603096352982922621196512372723029349160730659944007074651368560682924607098031108069805559936504575976085197573499241194659651099232393582215135735329599044084209680100587631995005875882149996791071341223853921690864597161644588892124769610136963710335573269475239596417320095769376325788766753092049220102351523959573874128361384736050460902847809416424614832012664046993324768764877704661754146787475296942071464971251138291345337855877981614898581546148947898461376738069459698691875245563918518839158380694787351709897139473271954186087890421316724873864256372786472023100807698597281178383101081706997858183899670058120709647590384605820137850439934142272906893677158530261884285127367179997939258873676001280457641159285098380128749816471709745880525500211812506384828807854625040781305528032882889929523512860024846818622708747605743559425697150388534802166404820686153450543126401571506992737700479531971394339376846964161434072098260532643158765621205403909667913056020953824409054177737614756320952657051230592204564521262330432732229851202637362124185084095033960831837903427031437987996766651067984911802483576463623392689586466839378340232083939202472898464499869391919880313706256206192305347269424538644136090299331972486546279793485260500003197120937549572938186446558107522063938904968706940903358720532287849226909103493633159312898891108647821577285682561409685099574176075563734553708986058099913364809503334758688281399564416419445815606314192451917859187598846814896758159332539013128474730409787537120193841195185387963478594705652291557915378396779968278544531605914955452983580370118888778955675546107633547366411238519358067631483460344176501838041750580396432628083260104431827348380135343976084355606323918022709351894965520289529497921405108583076964233828859290012295963006344298561702202745344849214475480329994292379628396864440151136704345219914414691363910221191446635869719196854480276254770827135709863299316048466990821532503379563358396437142238971393599276457253799406436533064725552616696775523465842407905690321547197312106962034137192555531193477745907441845821094777121778893364172248921114841027665161621047354417756181313317940663497927649090022406979033756266465115391291300479335916797341888875694791453131076847299192014572368164806330499845700570429007063810390553006067564194520170653207454085577863041169824953685875854897287866077800597237870892525891067665949496119509615203326940306797388890578178715018612697853878276444979515010702067816604675784237738263274799182111317870084324148680608823300054562374937770709172731591714547314737918327714833387959587777882451474333062720861326387597633905372293082084410546569551333833259456209771567400178564159082960169864971953171650080074053475755237128936826420530906329482200307021013419345412984436614114196192844585392731528285912865108398355445375882469874184546676781461867550792895943595669147599057693991081267289396100189244199725173072452824340801365910779922089712017622149030384435322845245925468909032426686725977805609900017281606270215021808254917627353242445329710364035180898934296066650355565069087754657410589550276135500314251677562787722174498329410800143748596075290936022588721994438864586744543637469967213721385588012802020411629729726690209022278947986830812912724244193670147943979826739362519311494968779217821624537137359462277908569282145909342289955970524232771503019412708475878753616886630937686038733940046769989100355097016721761535998711711417258338193998823154222924288151280031324966686273439596731245013991404580178929855432876920748969278008856736824910460442507157449119666021494712812743467327293532006523957192439299328725149244561338959301320135213982257711301042627838664159901750056851576268988993410515457361094007027514089372464459485789496309732918637293363103634349179762963265673967468761997290098383514240332271045650279161272603856166487670435892319068559065822182319445250780852638861050847509518086985774339982066520539390888009731754286790727228251377605099230124928069420520802711785919087006381789118491631756441982538427334344666495730617736482755875777766399669583186160876385971617773625268028014465707467951627156043279206516134206913289583925173084870050649070284014106367597247537587542481060807671599688650845766276774558053286848025412468019346316845593213722921616520278546051536462696970286867815728094039069402949960640419379845268915781264173034531215210733981242509392072968369206443171958953019928310514120516839997612005463502136992654892533222787886232862913810934268642254121178327291230697499029068086392630182681515730429365018577255818352501018780463099960568265352823820416262056283734416783600306043790408922589888994658268367428910389447096533443624338750432223279905471514840516702729021624493798612452818585515623378224337235657929255115686417085498774267803031840126363598012383726821626296224925309296981920750963788489804398755753172370054651931069017512041892083233752949878179538409461314360731199545359154513864098200385748325673016023847015501026794000442734660823069098393835273152019303214480097293185262390911980884689507389390654440524892551504888095368048114956820073914881500712072901025278331345900197797771138761492221638444872393565914013473988188852578304414244166161059625623459961060527518955428117247398527830801042270280908564413209494543983195740217302558079522722441075843156732622157439554227530258190197209389873813098117836649229412076791108602566238050999616503885775706449744588092646888797385141309729674202438471040020250201124438843283980022465702458244066154777615235233096155915416619719803624674532615792279973790673256557302530188562023112061922631219206316989477202570861060263895728556453770978004048828876662129160588169937370772478040209098894180907644479427252028231667157241298762867063362739525356121138875649089986458560724834094677305289396623901898709112017451756245904656579944905416442987444669208629005895555655300372465562936253797255618513998647512487131088878221779361672143220316510843775602856503182319589126850445451185856907386184783373643276135253789127253623276097060682761397713775973605663595823778346423628050437754318465854741046264184818871587542099017179909827701468604908015410533593296291237389795310604460419929161761687336368471703889479452976174745119997301645168190655560559233708404934378153342101686655967457899019152965308132731840337852131318798974932267768235898434397728541788809248860637194131453682646350346801555410207878103702996568961777891722245445407519214069923322197733903724192832247014590997118109084398596549138235841319147332872187221681820251601902619012701152039109390114898963923752732009307894781153745633560231880843303279762401820539262391897753498828327734362724544388691669314393799702147912928032768065848823911786573637367778213691280205250875248629156877518968317596289425019154425880261766973064481149523144250140325604735491214579073880352702193077007043057747239496781519589769230331571162621746867120821153765113676516894709009085839868064056506037665946260902568773119220831374737983545643405245479948187656578176747425533583434149071943594061340666061338553190954443783978100836743416024548720179443118845530119093805510836777283804930206910670533781409143903010410575864706006109994528960583859062933905088881740825643121037497828924059478400167420573819008145765594361480356853307010467591007966898491723238217443834681090487217184783202284564667571324282802415470311488714850420899016536761078449117924550536943788843329589129727945800728671664042026680125791436419771354093696060332723061053086657396623469254399679253954611227326556229226588741860600153427485129917990565705854260584689374853392437560350663040797298157055876343245462009931940054368099806926981568712511086957989711306484494248674760809522826755138493348514544190456206537478730248214456435746425654587201934350151363252547715635943524805522295899228180741637650412249613314759126425896795346321677658952540975726079156442562182297892503135464221113379088141822269673546343584743450325786060909024118703545697583245292324792553247766407816560157372945444353994205444065797019180344678130011314218269803594727954994442875872982333673122439436367757916109080592915026374241196467964731448770255481155458816788872619463776436982359836903776758606816923669242470512361113597699211851509746326511365224639874885201800834737978497353927361518362806541541473146091771844232076387789070166049563607560257688188999454587641738033700600885108730513923964080750976883256199057642467981362315709129301597146234722025333036877349311247618668853331682835884111543068816688386945700221076831696914810025378349830529538651183138556470199068715291511607990727851066311884443280957033243811557983845859130436759797647809427585387881808012504554663099796160635215182775990826619219463296603676576390919279551487728112698176589479656991011125374465386396035209930552203290760765859123182832795303683744194879583862223269112773247621573594271254024754953189352564230921541176804928916219957169746718982744637191823441729858923174161933828410088075955620906728350568552127121748861717928925620927970381388923851454917847494669944649442956351122703789338478562228712086506205200715044440800012935142817868767746811180027244965623953690358294917818802448927339620523758283779794228734509993827374636901827908747789174125337743537665713663447754238395516341186372115085287719006515566101690547629126460066423558000210773934559724899583928998296024275661220436574792827060630815252715037440489793257841121499580908208141213576938999484364348486225265572176611294466740498292550164782911725968461821860913586836657886946495310502392920552825542297270012895587653456991986426100933339301441381228282147543668349677214577281616857249326783700701795038384417712630223053608823670386267230868840213861746011661417914515760941308979786876983939622372496413189097351864796579311476888326224118271853700415640027894109273688092241489927661427566711941409766779407781085662885194811913776296449253229575075501386836680925585267207083033434921693103489391976198174068007718428259624939211916021320916293726649908528834993196945707604968967856388499599574625497237831754310582472731674902609524200989572987741313851194295964939718927971029392085101269325240397505457924549769011047690875029563825195886464523648223616030997637661070965355485594421601753629204585746029890418207000600934595425098044032140631596951254322762622274277969597327295468044034006788458360381883328956245699590032489810927242500798026219564853248736821353393243454440700780094773652459732639035898350265956106956332195913659367080988868692602518572450802152853854357957470768071251926048301796155678525590046200527865011729828560528560445300321330208780460964416607136770835094045332002318485541130653205369070299550564868294910357702039870870431120346887502770846543854879722599996270718351229918687663488830222553201870013480415300504579793435997223367966745672865634324046895177284124988064538172790193406753349756553892995052371867511579358695985725031934598032359820733182384092556443098353261408320808244490134194076364608260530492893143163047620499644300371678158569231106332056592097531154731618469590527970269261152392463782397891533774010672305781248673496356789031388318817489283280202280885191803657258398364140648611874849756304447614699148282187102876428197635194194504562115637250467416427219282504044232032926891083436838007010729696343771710165451834190549810099894339423381149634670783066429111471637600076863256960640518921570778942517320187827521029799832923057678761852496670853736048462017304607115591876244003621584330048555878642493866921106898716027025744653234561204649698483025576953261644223137807753287374912261622618293681761499494404090829715173888995785902060067157929182906219328346698066007282795013749346884147042265622446330733662435259149175989323617147969453297456682463073756214229176174200603520419173426603230101741846212924020524202557081963853051821419548700041152261611781895288884901385844774720074007548904778353939490993780460285431233834491817526435144228491992741687972406566926552889041459970045818677665218517432108886123376835117649051163217146043480011689816351418545161300245350405407589479176963214448305590133669992761923530584636439830089447804934907016166113854114390878730643840667911491268467588563832190904550023762904633684126373947599648737586463873246233180377741420353959492875089683212389033118021743449734683781423119833574060589381223586971224571406988763440365997120936946229921060964912499706514653466351556143476071714334163983689366249364820065255846756456806784132312603489784938205355938777159987658625803606315114961486871811631831795988088998847236208310302195174766225841873204535690752281329960011526552954497878539370764863552248217923977421309771894671123681983708795857137643256202969885907102444497391418633426524463293644595898194029742122229208703112138420368604688561791597598194142316480411281732481812368477999961176113900279225445740609834264365191553374936654507430700784530074388733242294650681674000058916448316728219889520722137383896904919331388088158409955577534892418344612924864382084687715972276454839342407192277675084315963948564342147753044125048816105809873945948151467009437438990803781313652073397022222007030423358315420051441505539802126408659868103819980310574961396941427110896036248214756450902840701458041138802927961729943079057653741838587586095159940950454076527220567771341590309206270994059741336637561640133710423125455400610629770938532471114450896659517110393845602598423191553674858378260662957883908229364665298612105623129354470379556645756192867473167976806856586968176904458282934853974866097334413940119151867161071385019259730232868189965467064719223173578912289047310852632895023121287500662759973800838937288447388539520464457811665947179772350455175142552598130112621491304305786273687155219637792890724472779414335711563704083078549705664046606673465258822683435436665682037392265370166348167953818540709565335112645285837706207766505172837147514774275946515100155802919031437676139149577173900090044557310957086243197193073754257615838165474990190166359842059212047416975724492705847111621679024938071106935455444175636687030759336235329375572273019129628228543672548812137914132743866951996212660325518958198016966793344421254844596048382717165299540011739679864531051415748476751548707068660356583265994470631663372734931355637789181835731144112534920005082628039335282123788817842918108921837299687060031082258411865277476389325018949911741609299748205466455002300244111605350185144994746834375235945664240207888314409787589898252513555232499243924220816401602663685228157789626240440615550087071697219651070966576893295665229659945931725878395808130140238136842694762607432478811450354360981217668200703897189020649840992609169272424070471585146716114748315791030481706292888524363910624243953151197158431578216804289043188716694960289366095150100018710022585868587794323009999515353235910986154789594672031364292123120008599489596373785317862213078297552441535474685215995647000618805180272869962916363684065126692054912836581041015171457837164553329278351041608982199639918138377288287504346317429528959792014026355450869496381363831099649485076643133946397070355197085085971947587625005407886058199798206624158223443579379482279410133730773085972369110214069261416949956661361336175616800045239346219336032976800548641458567104288312026070920682110619673595341971143805200225185134846797722262806624430157830032340485437899417873092262295841605798451760593714174058872941248464095980871946358464659314527869418144814231729287834818583358681679039798067482128195260090362265237848528446997324880322225267032275506443484794830550886425004881004105246081223516281106124734587743831822830041052557830886855407546039696562335263702539455003480841152269300503940802447694011213342169909417483072283954575851099567554181487219932862857208866231140812145295994070251674808416464057458781668277190279012625530941401385503718562209802499218854989741611681410678244991959897138127789632544667159857589504602003322806714005008587085528362891456502531648976052336429568558861695042297840169855277868234892609180635871438653624480477316500353851635334502503501025423332089315742650427829195822355728843688817339193957038082857669868443946734354378168648857625690455530474287134586030952515015080552052284033971218009761442296238923930727852334110952432940924501377338539707566245585883534209268490446615636563878462931619490338975461442408037686995865724932574616365651401958810078344433372959466145781877435419641224734703395736939473088183090505896788956137470167651382397993055726768783671790597150134340440409157095000168150547785356797588068824556861285367743506795091909644491546164204404931661952485966451113540302327931616545669615884242643607370076343150457964906483945798275931638131213762729715418680955612288132237947619647933119197592651397063811516548010892164579672562490210883259655702714985613617858461175035915975635334623144578159744737196551423255640188173348828352229272546498359035786325670704089470443809806868959887059862631140473349882861966306749955258854852610015469022718095810351971029996288160739993076922070647715567731871032507190085738656578553411215586954041815338213401209409578151891375995426372117420890016378121049864715929367595485581772433139879957721047825209586917229032612020408976149988144046489515574651829817356245935222626290571551207456628310569842104706931859977288664535484087638926874519275727824256165386671351906161703535191141275718695300818329235597536119821538735077773979934151142196201813285391753175292581886393173655582412442058256731228070731070832005949089626366563571183919448614577677080205866964513347104487416260230427971146421794947987498336228641496275376863089200530512861470633018681347900584584482505445978690745549833031991231400315964867257033351584678218792776951485427323137383165703627080179289535765069147637429665958127821852295005405504957917438268202163054324866529433343475508895202678037458200842079759130743246154990290711838601732334595604067020096106936603742280752107026201462821143601565005196947323021367568081099356507349665541514437058547704342739555944025143384845709985876409843151779409848576478216179637284430757464185241503934350833475822258978662647381996075431193387730224538315242436684153419110767925208607792203851735615053821031198073490271763699846704217686069652129155856028605106377705668751736065643157164302079677031796327720096227878023373584532210282754426551001277895851293492005282964815748194736178829929000496247841328153265015161884488331409096950864774739345850413628385659456696383755117621867667055193446918972529559657568419040622532999382376589903437020629274441067928116494870843956609713484142424829964959917758507769970952309246511096359665753199144887007043362952535384479539579296039819993219449632649470385066175121451745126062310269934111451768719856712376114067759746068215702818554563639266458284439512871218089018725308172624388698139243978553957959131086314174711640459349432794852918243426393208024569671934666487105308206977342798600215030206561842353890946976839399453924094134892607183198191714158080584420160647197869016665629413731814666566298135556463809661989730928529806514628004332039725033763408786048995734442866169389231121278710044761168327204021000281409527402970897065520286496704959219667178338441415897126844414987754480485836766945695400690084415926010085672544624499257356329602275186113210662598386625058908816949103024537033464424614878187935678714046194567682504722501455820729532801625974869536963364976155497418580517394376067615219980157395586753551856179076249005191305808595909601334676955790796103982059798152799146992710570060891216429898499488096148170070835090326617972332744949374486044164521989023014697959459179638290585709568262498250298199399261002758232448429879092834066280627973425340354500958513632356248278339450847044708072374866339956603678993489139822211693724266038451359787983429230401371407094785910470660217000746553059571055894893814922471947254947298255928667319140996988283953544639755991808015482002204293485453231060025736335310958503073924475851420332881412811648937174187915280020741309911755031900519835800233412302305837480584254608728105998670399455697245528575502894220195485646285222707639367211374360864291712924831151943537571917275542128383457893089018246005338687371998034301285975276882183166031735088946504818697011277172935164208730309630476392295928215673703408694935698081455105248397121314870783782829239694858648416801808343805139820226363799973693178506494439896702815915792034399260604944505808818400376971768780185153532324264571241557099332079011483066573345104154395500913936727439755290789724284547635911503106280758743875500544057534879900206167629979951706276638872466834942546699378125707632154726713738173494313852092448826935653704755965696005610978185325447296992949710573168383002973698760958942418515144020316394611348463340910087003026739247539064592262699998452534430117230064256820949088546832411583509854644761560981990976752109322840573256680015469534802274571143727584325542599846762654085873764119757416583163448863736107030031661727243532294799841010033033657777749375549065595051753051665192084213478521568405005161458991153710110282063958882169990119315495138095538227431851435740280793444563180177879588692582868550054343814505276265385586078796159339356208852173489491355326500211880401508367107570426295826708047141829760849305898825418005304584221867602443455686286872253331444314230371206646173304614671633933469632968810619103130503451298702146426128045080758420678116908947419395000558693961213343647440596166404411295477945809770468688702485066046930274884094303251403313997649172922033418852108787304505584300595642226649773447943543673250077486642927100469990712010816658732622649744423088156316482289602936645585551696693482196919668615704460947369704968819067546141836725769293926813590609317162384612319759088644300503204677033542326174056538619548248360422651293379530069191187838467202381944173483853205141372664275371692063030962951689368599223648166530177143183405283602574713410354153079122942089877661439301291436767456988471173185814665112635549757658514443904513406196173199585030795042999708541422537577982335835660999336161377578618167494243180820612513431472040656975783065035298372921319087416009637109636836410664764217605591486645409248467591952786577603500507837578655167569325009611700726831799571649057415377048013599977589561632040713573540719376253180625450076095201332796452868575980517576250291732691158879366398538153720298216132961914492780913551206166282164261024118000917104195322084773618729789731600469520680693365228274253406529941115957311287605445284979222863217445200369903291083547021679867067929836378748182512372617676239825048918173165056084282398130692503703197586982890093990462802046697204002357000706000422917585045699655662116213803402478210237654736568936084399618767625036466985682474470518130459678166321958827930659417970190673844869879298733366870051533921739611796663967172052758738486733077071248043208346403600466577575409356818446188470867078581261634837603930556630376572738615673089795208529279429717527859283425192746505602466821929759811984239887909789109037671548041240114993823696516949625687973326259634818711140039172563325989330455805861920263142534573487215168973559466271567461605553423376488065932980757306336533414552642237893855056145476880384887263467520240419000057044598434925246810888833010862649337541569169528198383742812997269104143305402129269353644010910607916127096818187517828314165493848846680017908143232930803300000256521618898491322279255746231973491547681256162970008385764386140433251456533110079920072762724821315860194127569642280683873846686989557690886430979670249834169476440219103696632686749631548244077875389612598843769994769728956159476272528597166416626778719825615843215440651122706725907634642943977747116004150897029168571378504392098686256711692179319744632674515864800889232414329336512764554850980870509258794516469657251055636596292121723079424230699497951449252569287374749905200257508059654968979591819575600171610201257890658019458622563658696440243413779596498327342457842106646813536823030114043324468664428388991644563578753240023348810096850896809678800391567754989850616651717122190886770550710813132332868962526304844129765114486548446498620419534899339732467317321758085300489878845582783170551532715521457793688808053355581365907329093885655047392094182423474460642516204579543866511057038912805515082893529226619751114585794310649496398820164026111642995063775752391223664117267926177306058262383516479200748717046480859297698567523700772804759826649500194987648363410806913329257570039322002313977746858464337464184784500495600521002632312136531428828647161517416403109341034018744860582799544202277961786467601827804384975287036595025425143514010845347233293246267836960315578583097925724987652482378364149591498205838860548502655941007011480349908890297716292557016778156404832761734207194563466510770554186705826797832722582032567615521516946935547021738336768007736445837112018311924949024756551296270583650061980864438212099710977274413570403419574931179320196538528124982441185369317024707012279621915504435125533727148607906267945396866133394520186613020891459241241713520825439320400324519312532738270655431460729846031699505855584760968200082788524072263010294592065974636158100075411724356167902273722402217490367391471053703433775151300315415316695936504326852884561951772394215253737704826666265362185951753350036579476758083245463939788506053732814146023117940402516668547568395381397338644125729380213373050762613739302945465844395439012646269936539699452816271456691957752236936963588956467416611864385449844530170256929329032737848735403892675688490102056007438224748527992354694071197171350450423394774938107656117368006275390337328523878193007401173407665918530499678549516171167678688218803953330940966270584444827899190518763161172656390823008087485298929856884845486987749824334087316486248531658216108200967118703006949808820768682773356756477852727983130615499512603697438743039671063789703554840530350840451685707556681059626935292446807003033193828004448855720499009131884817542648449606198486142642040140147209844274226929589687653573597911443156244541637465455839424837654221033671441320789464600498581341678579234316306603612590990574608956858099251640293939438988303921282244073760344272950190294894474818986276995047419797428845072665086933063215958820263333108313260185515975736963800124799677205559315004178555622451776401722542739814031869239392025285697092662830896422625011844779998604980949127418122747113173815334758318400685273496929136169203376749300258654610741619290245518722286108366992124792231556222864010508369176254992198747795439952965261722241988288892619290786639410818813740919535533961010437557867079104987162098021505185852245574093101594595252886292014883995559056985033849901981129886525441425104171363714541573785056355360691104057319730110605401037013214810455060686069889732570866355873503676185923124635346610497916873722002759533652645226665709919434283124879458073953808670649980463809231358962306721246880566804574835163618242590572498121804609733353130514621605400762558554271086797590859198081917645386868189837024414216396163501234063949852314208706639331972481188745757667653537810246087758608758804444411616105524676426236936671556311393413805673693125064993185766968597267974153330810375281944443112251037179629268072148716366310991225174345958534590094304084437481234708314448991708834803167902759428503200875388898054853339260582361624057149388135801788341053873416302415991396781174184372995702002491182846951742311604672312984823164846882751489546808105625809802964922961846787996666473040857733869555167069657805779903932791958498170273669327758947357020678180083423745748922548535186120345555252755616743895783663367486192142727082050135447424091779454294339459779435985486728579808655765505450515667142729883670242135282106517031057684246958503392161101787031884088236829011801956579937355036907636508266187933030003593374527215783033490946703912104812110772847473028436726265441247777422092387537223498991510432831966487962219448693515179204936201135362234686222808002760256231672156068574794292846387117768727195627409818127174990010133866503755575541770867461718317763809366815163811792511539414468792919715253671962393075658037812486939970418276772712490781604321919027995125505478758044696458935413186861213813017643139279585943781538697942843565378767922345803273344867149759484694520796522344884258174733096035132172791847637571544996115443464627876840564397403307766989264316435060847236072550477241291858679730525586704101401330873509890737599370106165591842876929829455892913983115656548553961128675945057252503510681396773945188065092493345228247139579822777776422227615867065728845245603337336866670067775049747482076612860631612793235019582428798680577766584906473197458492618191739286105556284975548346674695293310390828995426504267231224012560023707846973835279238343432956216800204701564661742151532050315499919013551189750491478735982945370795745856638046770318749314033132011979658393856933090785230209850152282854601604477496129842061164748013672604773597383859636747182135070858616650722314254835765303261292944756158854422286443892542611362694568690086266679019830642063115650283656638312284256851702305314714808803628136565318011545245353040242789530373519975237943221940424092424146088062799344344454716184136793593304950532811249508252160975227335242635557587404279077255811345974443254573945827483926654024694935021256710459721392646257969641041989488141629660049741209230369382291462941378797070594075459104542691155934325921821314852540112054158145153971855147303218331772000089284962000890754246404039492107921086538522065113295769377793291927237221408645054549967320808553379657490421579898114148513634386841903364879522992151007230306230655520254435228910121452354682983321151652913484444315258615002631869840387758299660808549471848434910439499606885677700188873958797638727683528749453613499822077565684503760620615498292446145016737619692097859757951123989916367260277188402022474836203092857807431096727380069757617300015512940486638143884746987757670817863638644999909051590444215209771921441869777843446881721008185722264335653155806442272620373051482276662175247786045560237320557131859672095561848622632749057671695413086367023425477272076012321510076465248467191739291503567853586066064040607525447912004473342779340812901167365053089409311402875453589636368108485963275071961087036794393887686993282769861560034867382892281881524795318384681143423001521148824844638603889386902856090883472016292805874960906655561380214591154092445206053480146566814696800786319836425609540408185649818282996236691264933108154743108321279581006035354551134039659882819594851620455527064409900479600244588883021934470073985581210389001300070069532626820509152195926878747460085785123250375127473480302080470606503326709716517158382937399124286805156635225824299236543545364975932254434062775162477823507251669690209306466738356613078719746529610364468539686704690036136508923237258348167302612767397824566605727405137758807729510074442489697491495460677964401789071250442310412195080592973882401211364914178176416980535758441963118843018219990896633975480679543427538890716683532734412443512996473852449637675529836403619238764050337677482897568742509835346545809090992593598222873104999952103490077758782154355141059768818658997609952172098511274261647155205687467395387863655433165886101454843072568052474929263697511751477126625804634959576608827542880466574104638523095644141893337693696777879404869259800431431047000304251962736155481569121779820849141592999927770900337355192528166536676372379312907425676442469104281050875665958139012149602161936134222116661573719469854319531755258981817154325186896908789447691501587357784875352729884091500357576944316662664245570079563101937133152431434099665282267227768337743215449371318314863937578872321409181696059932339375210126793299253282592628690558321733273237768454765388683455052882845353618876175599368942305443775360536969016217474042081675197691112912904594577416458896801783554741338325969460444987674706652701683821438391502841114062316902652234694776291180442733165949941711031360755989602792475514083677482560734234853140060692966161133233900822080668041711062266329082193196555218700351871430548630399825658479740124151746331782122798339996928421466033405491537213944409260039209061131074547661338505460740510785806109682784814242809199551471860503889320389770749645890027838445298977466952977376670936955251865119932581515908626418422846052037992524410171522126314262082909410316880183493346930316293819347658158499442400581451516235115661823423853307154288868128571058836819369651323404520664102192383229242463693429152254159884205084303461526701109227024915584452775612817583189355876834963760694347658131027920554104824268440675485416181860448137484749911007046367250743698933201183480716966460906887811133967538942828644864985540947433631635181379868360465846839352818834998633409008592786892067443724396389137890612698718076359145243204405535957855169090793574411510506072269529250588133948096468746951871822086788597933279910718920625773928574269080793193598302233124924390590323766664719225863226989533407724065177208657028636647651354142980262619136055029582982384032919954977683466886875764035209700426046121593577704571332158451250198128307012839493723392689663725911761308398298438437994501666726387522831482305111813460884072596066288613135726733089766169647109947015501219312461781351107782278769112718193028829095534872685602386520900465284243503113852720099339125141689403629637067087022891895384203988593986604656613626084184533644447996935676323757626916708024319572323101064133529660370609258274551434956412452811561570821069786077824508203485355318418142546362907768379222761279098435599043060692064052680020417970070479037146194368546721826376984494441514905688778469461708508567845523300700629875623620113106723893985833206191667771791227881661079787898770255189787083723088590341157127492521400322661044529763246958410240253671831393382239137924333593849815981541797069985711456069097734465614293113145512007943039669363706753778169820266834839877266975108780977869688767695128264764241862338543159702640947876751502323522409867489336288529339346332907097260562348398193839430056201819517948575267302395097615697995247089479125576713734144151846254057744119625779914736335762663453608968770529141460643540915223051101128735257450290580723597877437877623858673443177070040392768877084717308358701992869098882803918524953454459939471962906909905465494700526534595374291158304969364057092695385048117230514816796596250635332105017601328668043847630945095744771693187337410283402596639855288323484671314408102166904492532207547865164666506507631267591640215433585864758324992265786875186756671455461793463008164182456684816216896399932575450465606154827552225064469270094299805043166800241833399142106962156933197610133513129987368945438280148093831206135827882157066415208895586983453202221594464633249440164518706714084727255865640807978554127646940906810381637579355378497285879349315338338419379809213998410622426710150090321446423372633004637405564806848847792222890281703131899075160678903199244729736947721804142712766552061352399910680938860123626460264325883250462469030060412553632656930104279065360097468495591972186303363418097135260448825143909352076186622917630905948068309136432057944250765309078708141903272485845459363502169392220036417851015148427039356441369537022350174496697022644760843097033857526533444054277985942309009042738097377413575391133616000079736538272848026851287099206243078828496172335093023360291980869920348230101980118168904350374340807503709970399764332879648855490817161587715327476691636999673656108668507283431722824020380824058930138507965725204407187907139672895340326507539782909119723787102702429316004341490009910540237134412483027143570978605116746320287487994443489575994655526759954983982529288469593399552935653986912688182562983279937088430060894431719206458820513471912831414346471850766940999168493830061002986698848182062249637560785855557752816438487490078468561154585478020652117484122474043630602322644888987323778318437558258714016958282967171207398820657914194752037141957348077409162695565767732438133732098216565705326013795513895783531562715189113419461285586530402899542207918915605607623608278615834946261619226938100557710179883991090735157671360573509961894698911796553181781127184590637616256310692965398913328902203424258925104068598653439719048086826678761655158693862781887877905614776868889007866236301740897090675549452915028844965588154816462532718173417985205653694346677566226845975130323781603395121810776161213369743312070966881378145508209831416419563932952800951731569851457827436393840500963261635721983389858000352736867049308400266221685965908760049695121742141030004591480158982710464913687152723580997536926066581103668329622265215873247377943151625755170034512696079519279743889855126968739473601296802688243769002499512670930301914186509851448235414943356568989609179093748827943384162220679380922239788332602457370792123527653744928085526598071600283296232288367365732441281778889647078706326411211454762121522925224915731059031939557850156757936784941127773847246275682356714969061142910677855048663989936214166399851832333942191601591785747426564938754298467557275130124902488536590155328288723319433063637733301852426765358800040467873692538843375974464725090884771057356274445431342818316819253378465692473838428570650047682423936113746359562374314261885982080818672129714676022211199442758492018789520397553710569268632161935998397918226139546350524524219398131768130334227763022575427432753127646963427169244373795354883040487854380804725305001649572194016296796442131133391946070994667050860459947224020575631380215536017133884829329602544537415227523304171412380270115161059520215192142861647276951417312957506062358957505205224457951951380857080835803956937737876736659881109706121220441602868131631656574471717705600308570812532170641178296318337179847086927002033009722141737636447841602015110233755132219390805040251555066728855278217594411091024997548699031483424591398172597577586043213120734142829341718016697320492473942255410132483901797171299941161876213453138509035074608204110621703948052327885775500953885788588236295564617837737128007875356277645375857158889077329536683618737538768971120935440937963790429602979544137872775391604554788526788113359131953207398831011222136303305819404536998333968096639653236122806659951689232343565581861190058045311592769149536256294696573372349370529483486840238159351773661166042637579039445998077223318601183136966787925678642033222617582645217646835835723032221556050741321738457069560093467138923766798666076879606688312672557142557723084817861440909708637327809576565740668238460653330419774539060013266689584294057960173469564464501848263862787822822197747969366880154019681061683918397200863236032906127198732772219658985416434652139548656918656905169312094241543476167099953350131590180534816719435810529520579927607195124241709713536342950649123250018956381361650714674927039490769090847910881807415725030985004690781971451324667355555021541722560618941150873448725750832516388024579228455764040028415765639375299366200435876087393838414460924356269616846248462083573274760172668677867052622576549843907936488025397815313056174375070203735389119442512606714874714687558001508696500281598059249711149413575299918360657881709458951932326130423708037850873006336917677240653242411193445434282588394904348014709663153970859045263347004474801295020410187104438670863028051972760493918764375871871776405964117252296133658496973889257766677253774476020387172882256991155612296865039654851286498204616408536753601736150856696639874000949634711222746104186505527700169109389275743628137875081273296255117757018578907693188983957291444825941546279876788613934397648500507777116951300764017393324366102093410851941215931895068817787448631538558791261838140262653928587194837821525728644896494059992131303418425327265183289942564923038759785908026184268191005339944663323923919326203824555480181303113310011808848018182420005529590831861165773286161101322324492562573946723718814327452679192915309229834923921494060954405595764950584289402120378321032428902796472515282314810912137224557119375325340344415892918591513525951689450160192373664681808509934671908694715519189386518152795140763011542831748165584124294135147379728946555152290517768747526186330522747273394370418386330541430008086685224532372817099358261163779882414670101643428266067123267743615870636884926219211124545333510992489526109368118105008801268666298340540577417869409734655779598330597044598876583189710802335809505319378906670961409518789460499313653370520657012453350974966034911936608368841650424254841768538355893816515676481452247920427942166783553131043974712108971753946498890047138671205942594089738450113659099855610641587566287209177027041139211582571988998419808457020186054893645615949443526794641513859916237566483494621176561784152140412448040977573188533715382966612729942081404534788439706065493960850923029880081559046977273467320857095327436808335765246847970496944792921489417537546112904669325239468287831953862375456081262423365485036047852832774130112029155109949105752628378538379343162888771970620812904104909129653577586412296924200322988249457799311008148610855550323984189867087532838429234952918697337321832790270512946378821875798557427662137776777515433182302953933788860597901629421699635746140294425624237643036955343151755982882655271599927981092285494075022239522339868438486921192485899852737181320666702965390473543858669185049517192536667395416654174942212913881359581652561350211413595692978531109344283029745259669732765363202508291145741222981786643650476717786815195615232941114241046388431399679844382596009956643682637157935463030603935310329666330549099600280211630144364793202129297332799582545977195436708212181880380192751716588656937086501971993190095293134913281254269860884851674166455851054377328864876251966982307135710902131931188180126603022062423590950881330466944225377056860349194241523056943386428871203571480690543429898595506484796650062285166063971421929321221000769349670970339024836645863814626767545908764757731101998934688494287659260767670657172843392954537168200437930224960860424893492290126160590608518892161614076165313693089070048579490551059903850046753011439729353425563155709059671946703090224243447787440462973678641877054751179183036143741290449452557228119015647052593592924911769224508225423961390344541950748639168110474948651429012635564777640634752267557894725292654516905565806283019011505374261322780504905852113187378209413315200879554329191902325962922928500775914856277660502990002339325604089557370051599320067416156903097396281424220142071496733035668091082562463740612856288425303783666313556866315961161167113620135250413072025144582610997273241548054274706835230400260999700866849089592570326429664384152575477527476490030528481202507406892911958573074726491247900776536515855289609431149388096391495641138782582931214736101414323212434366099073250345111174779363773206625580158614724217945394264877222405447678116369584562480481574593612768195015405012820814891518803387390002667902648383947778812293256427412206626699708047488413344162197599856440492854390887474279622985057543159201462678269791580442912989445173291915221459763973260032408214803705150023187282167243993565477683180081584045123009381638222855303472693153722595287006036540578104868410557040852110709599020552058642330249436119022331116345108697073634464636146089299296881630221573417835346748009625653125220912683111244537746170949616775489370856798677193329827018264627247530698745521855177472063036694651932720550212713953773470325899759443487723881939790722454954219667938870607053939125723690050219972766881314631535626127117204615198642618229172474800681497061008854986530717990167147250563021091558216661569099178345069561546905480341489297874475656199611932199031987924370670005384301391092131586216096819456906436642806719233886196627569188923150925677011287742616308205160090514204298881454222798073019645225046955756351217087861750050352076226863565559905849843667122822123551037031759712435397242880572699339303017566584120858945176755705957397834248323632855796335841144698875240724659829160526776418030547206585442254974876135147892686708873203789283858671403555833272568441294327605053166475021034985230749605224267140841657667548249852405208165566486560736253948747145481820119600540049894869531540918863621376490812852023305121498935487512916308421594047358354607060100382079523915717815719631912678902706010768062825252758388334286470602148028167224207638845330229540498883496749725359237025528895864950274192899583009386489097244489708503336647684355263434550507022939597912037576177249930636183882014270239977218851537783902005842996419011545292555610846274382908001634343368367516300773342764177859487438448244165288420657111175740104788591639896803979985581079898759007248073977012735696041371824097529383049507144402307999492423639122890292538415301753002444680625158272512257133908145800330361440936268218955995029335129518844706440116011394167677430993896104129434447556199043512472906444989106030172442382709430151436894226256304262650471545685339849235651622263890289510504339019532941331853970050761023630937497500799363229663140271917972125348285241613081765818059706439982749231251516005132496924732548156015251856431955813630747072453677417666732002927467079293021491717963931807590930211133822286243574875327199894344677392480754404857772663947570996107264957852285917973560087716310051328932821308182425801660179242443745201049214614495409384523901854141015103704371138205180829224332909426080937091591751292862832376561389252652052266039157071831625909826973769741736774992767815972149651992684372592809255692558218290121259010849680517021147186868370265005510767788228640393725697320413892359665502908382264700520743660118756668193135483102405415817248254977177818789234654773978624979697427226916589447347711201260754440637996906438969197338881107243501139975962887462955294178417298084091440802297889170992580486570950857121724926147050811384343775075785259199460747722440371213407826692550438659162277657194141216635112054468674459773433302724341404995485182948688725936538422920071746231120994240570343031596696759014684080027821902406017191396059765561347473923430466001474073665991867515064075051146710238186194543321827042408396127560139031640045734674967147200948294584580361645027359713880754771972116109579268231083403769648061960599605192556704615405927653036285723999961013716493379515134128626361182933771769782703540746306438068345039409173995731994492629494200704948585746374437436096761733059637217036512162383867144137366696767879186913674193817182480141026820913357047087138055274028587314592334499659385617641475558337784649881562641014434737778579880728001166215809559081961425375742774151580280083604279841643889247319466746180007125628107024548540994397544336065085241493131339303761278937673427521990351271390638150785920660977584393036027798860245455492891335178332426769705696090214540353960615755050493776937974737279710433979256557083416009569646834062133717941647888093925608070757576719688592350315193343072818835393966645438097318428378803985107149174081677724984151640409525052658785888109101524469499821961887580467836852819498270888321277155878253228599996477546932441008178459412265793381530707382220813669354882551231067277383801452647616385399425194890310410672755490552895968311867790296832032849831906752568601446501696183838396536714930839291456488145963397967372553976937580704872926864429959536055000647222220998327189741202056622786456154788962578635074985401267148114678698822390658841551075580715657163968406597187931226017070006826436242198052910562515219126597012019458987553300250624950573178846132404947377830946433871734344643489455980561895622283218180602302537737643837868172178188014705096345388525912429047944150190032973103434533758139633179041961976411462673426515458039621050343107239873240779863526205976238841743801493763733572117235050252727159786292957337355170488671481742776669169919094893662244891706393136832627898077280468338561179270502222139042736015613517127203475734311767143466071832572258451733682727779722951681214452389676994092474244388274886923714336757306645954570889607087715482161977522081500221075438599321591519581379752469707882849870651753013571378702850906273756334911022957423196080075106680477305133343173217960594600871690682418002241102678340911500949336064441317246289540189452214095909662270119533240899693643203470282105862058450150281281465474119932932286661679643678202204761081374244113114822545231544667047907513158395685172410565436523312747190506591360103275229199485200674600830981425771255689098452049404305121202440358109040720251723849390036317428994851792774073159299528629257774263220583726390840879605817197247098063689240377153127008659817902580780764186703610120014892882245981770058357686699453150938544416205740469260482993606007371807900413934666358790590084122520372635333605285455801252755154758084092928158655672007068147681633814899359506916536416271655284288363892671023769291025011568269889538778641284826006816222810286564191752331498331669019361654462280070154886718110956534127935562894498406458702134642839344084275252975774530335038477138970874901345377756746795779514110283350035108410493014866498310155844499611640778888732445723110513657930760821941724342481252569965404538634924149473963858740391611323011662444857880600802053670158722973713470882565259200757281804961912240247208820369353525253733282198267614624122122013231255700951786559734114234242644334952880938253807515871201350822570220063227593229765146938851066622282170980730486124890584007091329211821085096706751480342391076811934713722760528595671158100978658448696104827690984503923304448219740681259170572001885187832328232852195063498218223392752516971683087982483733734571296052936808972946788801694186887874355442212179899800394002095082303444326560989202702355604673892506907501760421602782382630072394333208648821117058636060925953544770834505214451922281362972763145831296636456358396458886411062252239377078010753103253049984545230196074916453538799199631491203960182104171280390054429910159553668195414689006901385520892051228582302321317794340346626156584889628130909375393491721939665044934735420336357444416476766871092976054393988205771929247018769887055018472689945336957185226919169086553918259009504286900451931193350557903812075914478540167862065495929076989001195254012618727901627754481538777587084008774616721575476979062248536473856086072996647242458837235327856715670838239255147272868754852428587853693122297017795289050824878283785551492536458657279615061550972628857574683635593394178285899879521900600285953170419204010086447947897728468877668281611964097804512758449313538157800183253443199675819379641212473289645968335470500317437191596548136431769649291731357124488953993825711751190379324177745849859267321624955202277834537924389284294900476140627093755923834391081811221997671148404917909502810408586391287231605466361787736789753436747406402476947941868550945274952418464885829149307920368695833659263483005609607556606593249472005945422979942389817482339672765778639506790418257561641668176926797947280743224481199886475233056837693176711357796994961770304362838171532068100932518493597279992510348974248490411525395270412113543879009843698380457634927113417061098446098665843741201611162389406275711133845413950485575761021585749660959550112161995790392305922690619123297892602145771562676137844456570431025926521179919266096585207017656784703587372843877610792714922277287393152308448373719703169190303607196941979877022858583509180282171017352835687016768821245711493805515951066028745395436143138659316057740473488523028510164552221273539502457001547583636252919620338246341559035504354668145268448562344838858688775557069846347551505506387361473120855488541097544433818889808978509772766785243704499657677495433657434880478984631348203143015465527389661040811271510846380010339149611677276782611891075900916952407795168377351905399575905819107172516952625863154820126389245727659790301991569963699257060305592284179984253086723554552251138382844391606540090194157115136386166926773171403017396491549144704375016553974543794422443008767012916985858022441166369677315928599566761186639516408782095136954257090927865179414972738028894264483155668996177716059757786097714941382388698964190570317980228694401766954665648253778773019782059211451216209370454965289328072535477384465485349757498278693320770304351732471271461986201648943955592671081202117856316913982109304103946090587759740814466754573326694740720019111765943566847115891353049882332150130083841462402561564830502455371764955933355725569677777720315752820902467598022449286955064060865569630115690000188426130014015469339768602787737665416246202678887809794876990637392388739050885235490214888118651297809275634233567204893209449934405170610769794033322324606622864317389712181461008398934028827798832074754099388308183008801956153247067567716969003007883931494197814586188548219695278675629922277118332867966657184696426233021870881191362672932500656763529720684763050764439199212501906936675078106656807122971992014586056222209588502955657296813064009891583803256655789540682060537928160915995210172289033072211730226857370136493373600351967724480574249644827262995963223412802460447393784821982556108504468698067702607247583174908150964060156535831546931443823036334291319811494903169068879642397873514069653109373513325929284771876407093643945798975869349251548792325266548634112627873257919475139054020877467664623737392333709837894900265757314599709064532672595957705782590298278232227602447447411040666423017093293743461225606868269389423740443089833423438418247182666317584853797002951838388180733676468942987821680840654185813684928623073347039484693305352271413859948110665670994873567031411050713865681373992042860504792169382744648228971404114204246748985895022585704997568313852718772472158914172031216578977987184627959008610668440430551844029618344321691461053229276788652697099959321289768137658387799472185811111287508585136498592758729676466688886720987296651142262391305692657608344228433062873673289881302226088622339325298721789660166847532769968279844853633817699223194337296855420975592185143887793516832364524775646153482418427642127178177159947435582621043960271407821611186485515420257075796558334028031875848021166376580725398801412853693115463790523433786612450619818845371546398958022870042500015804064446229276502090929643667494448665838878845475574328042769989565105395383305690610702724379637013653819954013804823422106131999059721643372062795683756121550922372123117525703423450639574366172111119334251737499961661889802666870440043169664545867692118171430820242572686499980504414310751398136717570719922105768357511495393213454702001791342132075567895575675194237839679927031252829639619339570707899664072752931107515638798389343644592307216796164993443262664876071419877993064704202891795022270642691636593611521837803411581580083267607561597219634291336605909545333033051550379515031906279356333643644950352499401347862795486570167567097746339790945408004219098343393967314201075647122749377922492981408009888793452820783469091685932552021610525887374494338843924208132902851219216451786251142606025287406663771101914505706562769146602520005597354630626659662428490661427914994879157474243426958416566187641758646990990792538598547270437124846728447407190003876429987316874023774516312526214972084889278220664293736564293912500918387399108699585972009277051686615028004409550943318987007805055199173772730311764875147613466326356986270054767662116556392387876144449977309757521842133035200572716519120374119005399813640091995352801036866076826506063586198574521315473660310898718154131825444366368398896413897929275866367103932016030167426884853657190452719999694214505471182684195427694363640949615633047627162471281307057967765484873810052694820298030681847081843916997150509996832443096117646587143426813231248577747147126852046670136477946198792077849878593412930961029416546194829551088084905595676083311734977286588115993930056816242047919315060281587469934157495974658754808000197390633799459353822778900506220146207623066050451426647122535282455760539177586400274482830828140354912679216314929798509625479551118157039633483372056488948538963159440627841168000097431148053071570912957842206263498645984659783160772638891491637670400210232560292887267611421212921173711992210314980037238833573844615909416797502448885486570737218582807480854759983195698701820684756078743019942786235176573158116270964388378220126697914010213335426266658136606947827755278540429091713986542713140258359800885594659528077377061067638210495280390907295420135810440058270431269076423131021904331412614307103539737970823411070987270301022298012695218978360536379920978630821913225781917219790956209270709531403992694980346021933443216902543602194917030929549073547554695320055042302712376136444063803831130015750682185026415822205742023972801030357095217837612950556231622007988654905826826327141200179321650608488113893176738666757957951409179667476724230231434067878799951405086954195564212261850239044780817358450930841753535227182991487226776917661325674812351386897526746313583855443954070556712343538324336834715554083782866072938166318914521126389865235190255735043407471302271073047906463339995844056881263866012745117530337404652333197145225963651866348318868787063534566597286337422800458754983809356795623526253857138456511541317909953282286158916996872190220462002879736527336959519320822229638541523610007730523235372572283359171528968063466038655893300580834142965580158081058713005533536190437151284604706923310453329880522626355392444188433120589872119080821457240655588532660938615479889106896256028977433087430857562720369359293853001683406009173822118194110586493282062389792138433147207170552226270915200754562376087647476489151193527221587629152519778884086239468637630631700767050917232031706249661230086336019418510993771938544400415048310006019696927479164506628701355215041006401479962962581908789372351653709945280758321042881518927637458009177189946517166366336272918502420640027649524273313356117208196916579804102162974648073681026120707755099435186223443732789765281793461337331069411613359571319272138197710848148666589835454005740470290668820239562363398312882478828879060007768263429222053049641249896497259334713869416119060518008518108065220532719368731271432505351045735478499361872147223568555263437937121112668314783674477476193089841629526134337200481832817694727705399795944679731488557389728423636932906517097138353334523027415310046107224034386166476892816920869711716013033102714500541848806588879423804347874770611441325193572714000641542280949037382092962839633927429290149101687691278529091210304547548861961601548937119913317833917276284231233701624110890298297648205647591883039428229778589572168464862623987780817504653735586583550401602663950734113896527064008673034680265481703129495206156763020041774591565601786610191782903912026710868088894871099553567211006209314643013709386422895677977764841850963960977596366388609024910942094867370882565889785990834411796549837749041232574476558424043173509140443184867379743601045612795255030994792805116103271306448511555325856641197221090657542764944709932946982332155187490996441412467809381105109330259989467427305744508831174153530837316427068825762752405468790104492089659464748241434337059581136670316254771440058634587081205438511070313285669768388678925657464225688506762041836676287788750622187390683535076512267723280290514942207956721471368830299187756657891934041220454927912785227859005623330421766522265047595140997032871073399101827004525899715176316094188779193415217306939544958026531150669081362132768317345122869364584738059989488865417167350643988406234603240958713217561259912340071705478211178914967941750032062425054967896690950636757579277983276948387104641297914002855939117855683732867981621689283378749698263146697257435157201964580221287251973922456299075088005911998069609008271784502767516993593867625169027356066364017959117102103782446460159929594130336286825653174529755366922139708666395193178006316157344883553269195918800164279872028178662781295250988286560392114463751837405888176144732886300080524905112332720525989623889340720369671593763500386708207798739127557138149315268965956987060031837245280757224231204300934471056993186964587077129780304111168691106424060189388298733145063494802303854845193987432238541029170689129983186064138500230783410714805464672628070390839539833779932364146615313992642786271903135518394431624288643340594641859082026474944495184864344373320570985912839273362769319850053420108926312219838853167617078785177003175295779913011378499127595246386793570493407737563031312272578276375665835035460115699311559386574438601978312611673002584378660164981116267401114666865169683141095007732338812629783059256764219734210959315401892064655721274894013312050291471014042001840795259507418229090915869440767849664596000854859122308055894379038824182644016628428598376073999280598317319759514680890318588666869205958216291008808759066065001280782488145729296411463321442369813505547204424250723160359700993580831948981613961951187567135959158987135939383244364073645258895858543707588955781940230655060768493425792102330847121846037680547172529667646658611344030815805587536852552085614844092328772830282927959411496805500528705493203254928211189563127793192411817008900695521223709461566700021567961250469670422318943551802734670177353066971011678751634146582041588240568361295379123311463206892084016722582226725401657532755104839372071034387549235661003719434823501375517339294949587098977839590663487816899069584195794716653713239993741254343379994180227730490813613778970434225432936351866373810997302323492518417273794856743098192735378780692711633697548614611910954291249736244843464794400349090856637307846597326315733516246291840009941806817870622363792821097631655242527263907973017857281272005603510326415634077276131508934557974217745494080103541848036695570474851171471204836969670555455955798179493801105567847441213663974989925891177710740182864842642032065117331467345126086257247601634724359505396398424742882512107410902710476421340217050202031714906540202436700862933013337724788495336732557326501378015324875320186365927969701440838748298472881039815420396476317482402725896257542364892756015470538198797684226854260874191115674944102250976607215379610411607657991837169800452354387730700139216717507046816617103472436124044955745833660120561409176382308526527716791735280039927100469706998472545251689196863382326674740896062329523525073496872746261413697663102219123899768861071816624701175130963146980367562546637061901130739615856309686094772235705111480174604547147637269201044734218087352968367695631823166645184400418675300781114330908602666966454005378980542711875558437002701910852499756828839823023694784073001994069233936228696336582678052072383545992513296810574606641916475962015966411750839909644261415077244364292645973041283702573260396742583896270883772754736582799855171962175360277564319000788058227714888421658004630317613841293660333070599912268193518229928994185310281031045238473480664717021812868960729723343263212298177325582902946213935475685962284520620701244977139660611719744530832636202578559750237218951352537090198240315353828531180974174377991129817917796704782029244188048980479930961055705324477466489636068704941454207311259254899078514797388372564840398987453537863004792411529980314956532852674081404490654362695278017544869794755411687656100298278343392404549060595666156688441816247298887375363103346085502774033846040202090042031677132290465213329191222722319687801839274259616174764133207180376549891744660727067718419184553814875983688459054536330103703264118800539018917494756940154744067440569402220560251619855691019566211855519577464765818725646295468703763871834857125252447640290929547988303162029003441040563577419259473693732830615264182862422038497897125034185380000199975646915062197781664545764081063403977954013331037734368425661785350140204428911922066838895939020451363339164190016799833591551869104701076409711092485114754148273475496318503676745630059173606376027155844970391634317662362878241784776955821751836483712432763938852865418712374233924399247982246672064102485943585755768051372775465925159630596539421346016737196902126733085222867481182749077148629687774113659033007702727328623624695033716946805139084491117320627144972349821480688383121460308706673554346106525606137865470341747081388125627640953289380516254087855938703524756785307610250076305178809605840597735900239850093024992197893930297646401966888464119268315406679939421447897328519916209054476764621701756463814243090609700885789643746330892790172921228260742295078569818090447602242440625431609557543852039604668830752088550466242796696620061879516688849531131488592988234484800461275401968128021641266616676869421655054981860476680368773596758443664542768591936894153704342798635750787531787497553348435868562779746179284840578900411178836891632215175874549632345251841949169113429148907940589360873587925646874073292749952915072346016174073403519259044920319825229459755720161149516729538208592654948598278941379809072153290730241305056855334117203184705249352418104461081854483932224952722179413164257440927442637923705950757268111249469094374066130488308332046999216385256765129974567739535072168857631683896708258154723680437257465348838313469128243745838083421358119378240112681599458241866628479314002132628338814867816645694517146764855163577712356559837212639286129429135643783699120516501380794010759972131782478260776751420322973101341801050256158021080892424134914387317006397472049335597465369608239513449358159095709150649426090221688816012530170602336198471913491091507881937172856216274938962911956224116383308069608860457759270875682169444783054890290693698174957950132924682062703114003181753791836417333068890568901378658646612380891561651804992585529562428908957295594886272067431163696834384145291359879704001181249776887973095935231155768147573709791880274953686907243162047726897312886330760592760663490162440816170563631248468368378307138858174678577590004169570247440152121406622543807139400046820477967392820060097177590878364680787700997184284871838884892157059638237963467148921627891725170625109242616349991989305162345171416364000157310145834229025068604002175457096105986582059528454400069248928954404273024188728135355023535967715952719208954514087051527729026807997409628444636964439153020978267414562436528266906302048338605401869446626805039465651696453281103339745101553162442263521935034247562763801886263768157221973565002578836011628303011659666474796452905389025316650208709837768326875149297439459924700738368925855339130954642838646370076038873543990801136134912664276457488506149762875720110772272279876396421139587261332061132248847380853252127590742801592124956521279591391668207423043732375938956556678793060884000663923734748694558797731257023719449473751154555579077763072059189316836161543031671666063713787615902121453034603046026600144190776995750038968117224107935740481609138396720552734453567636430154109562970368949766131444797348684106130725778298306292396980771214537527323697811531837322550381446532669821347132720758266018824179977354611590042704170335496962503221363971474961053104293546976792025595297536751204306150380406382030570898896762378256105989381539575652263396124277205663237920515144866639073432918664440326315173212632852556476188473091222800415852031608776810622380408185203415508817337223262364325827735371969865903701474962990038151926228720170345879536025670156086543162874434756164628687986781602036951520582615530447580765383461914125501695972743695688075598618079679519969564030895647461356933080748946456849635333176679559786084482822523161022878810463446064812602204450995994949307808917472909392395632566583241289726441953948083341781743534071407818224260126954945956584220961652373712049635960219303208301368024637524220201110242408134807532149470117941866434943513830981504979610747753001442190240332702048993353807055521599618208960606680679526672185220061063478719051058616171985134890483503448884322073071694608434963327225718346589341467715252583778619125871185991777462473094372788520782101341966886327685352411416884331283018919222784988142131950464280699744985311825213205226310087752726921801920633437109662898927809500751961701456300875897594780569328406754668812558477113483233198017990915332308258918624306867038787414294376860261211533353316629399029736503387822811541167149525711401070040326032697538319048057249993263656574448697716068498628641555921654709822013760984463785365394604876992124601019428722568913077464147774683902977813684320119006743060567744760492243954785912049473863628765284615426364778900167551412759926836635726307228303933171255925238001342290639313560816122175698095488302396699568653791364968011906863024481055930900464750816733098741170768490800589095485869721271398058923362124319141264607830306044494496164936132003771701843118558409017393836854646764630732088559651982105788871558036782909269830951492847267511952731931074094659311306847101346122175027670453393087482711074993375112297715968648519760585924840256260665245129830324014877662373135548054991717553397358672674981533335736993613666254129774286459211328135070536320714958788210749828008562600663741377003239652140705866480368738611779532305419421868111051781266247009286488062063206461847738150372201220733531984708528849870158794109306010285538105093308317584866807177986272304319507216450706480467006678474796553340702043753740480223875075534133622655462374278376811526536476111697564040682511737864342498931530641405530010964722258460715457264156670500737923700836999211035684694495140817164878076606171119180460013688727441958441719002254296189663984272906205221220009798155012650681324231055242333915008060097160670170086923116033402484398702435050445230767932534054286905097046286899262798809316904223274599613293784301589118094262389682969092078671871665046773851961844192736063880956673226984879233383248040106465220315064200069941185429761119458406265763828630968567412662986378897716341433453449837798767472543857671767274029702156231220372373269457638699424204008089417507406592364541217132156865503906639455722669798438688134814922898773828605554791585773738317325869155203015712020421237808072921651109024282247858919796924400026261177755621477000663216993811180915700528291388490621188430206262348076656108289029046441322225282511473400849139435201704931375673954438526485647551028577331200653881992070261199010982695308359140764114770967158529273787964661835557699670496691851480497200961886747482734665838660981265235860524694528403175517905291894770991771515659615155744625598722843968555757337883602056863766302137946159281726653565079097010772368473607617537954187461111165986785766336602729240692851125111419251801138981920058743489049740457048093506193171600689716621480541783936924510591951409456635138712751602558666972501294548213774099816274649823828552091798101693146389780130820847129047410617971098977934118675330941242643554019400938014663753171818531806047470148414727740208991338646978304466848520969044945648087005728045285260295816693258412121361821548623601213492826664890657571302204447478210931174242958108355961549517868265436982333695143755238670947595153713142417996451519345211170177047494581401564639089101398043849444790617415417208517209470553338424081357188892109275920656634034872234340491045527553401551496916760759158316420091007462249718213076633771077451273518107971084334926502203349308352328361484642112633332423033985193674720850642991904863844672136221489278280409387032438941662489788349623273750928297475620236839362516550935546296302201648192154215382540054086847285055798830199116972139556866606190119810307384506871637292082788207626622194719446469501472339453526839364684389260222670305024048097729000104942927917623971171825198654264417666227608794592838507642403604179793438080060046926505110661909492059555875174535501424592605933402200627121852863726211941639405966304533545574844160971140331627757622361336552938215293915627451997240098985230421690796039096364034416355988954910009252786916989184567816901228156998515872441595180875334226308533185113865740012293176766009761577686131299716803728768857572924868988835259898302889099540976834150283378377016390677145906789966448481208697579721355862432242711665997281525268807456653482834972395974661670766064849990180784561736006610273247641642966266278431784915155412769266546516637776860659652906757551228918476808117023501345341541055401270792886793523117792278534754580649311797457123565644484258580926232508586687251036011265563477906032080194552727755449302811980366222937559372911007560780408613016146761176954772409572736204145072354325585641243374946128404917878291849527665074067831375982733178105154608335463250709308612843212858528912457171905803663260824755385101685903573175725589398622466547765676560683266224955275783677154832790163947063923571269090243619628173233743025165994901707252532595676320833876695762360952908251475522654213772343239464885118317590760618876747927549903510828051040864259531302328700946560403309617378006981212162587982174469774568295579738752046406032721806390029281056458272624905819313601533868230536306487911335156339100097588578134176426092309314010196737843423358247628523058287754943348242715564199381891722349069168864073622515155022167366666225565784012283461945703292425191504940391807350508299133658741725995928789800089726366762845050007102361239826507724212700522307025584326981208338882136684800595598966878261409571240754170702366350718756985407430724573155296790133945291199738657960334492488512966130664892287601937663830119426982276012767709770515117990136715067814995589009382465604991886319030639502227843035960723384631930798715187707230821205790087995981691105185732662604395587911271711722119247442589040975768987787331044270228013484862895889753716331793583010288792317876480680321700268871348758501886912621489563492182465487093725782698919843540341457437011296015157172150466648314414544333014257067337178573620507724141144246071509296104174168553649748192555249254723626495891724499328077849748653482471567267566129335267820176431713495320852670226321597555016793212722792861254893597889627779147042688958229364061781178709702633871267506137605638197998179016330107998185321231728194166874881688644693627880848566394963557585814602913400535960416492071388562961348762038377675169694416547084147896800631895140236893257984220331067132513794755210527065343581060219208237367887290932819707414410215789162736748450360290511439694650671464951886500813992978857924388582943323247069344607172340397430269855728234104435363351494204230868508312880241791143904431476139879168611877754509738167017970321724938766086690127904173046692565278296578826864238012971901860182149900931435730127134721157103371377256944593658724613610871952086692447566679702395173991275937528372119126233370673223233136823138761842935415558349018358779259588519963274575322476651014538686529141768160109835982504199567082687369184483482271355532619177084522086606831538152858973499814460082690366508534897306230489675763407431181706975952399935386625366590739842542980642894147205871905181535587351801138962645730080383466896119939023852541943214660747016842991745831570200891861372261386313100832453621182497144265084198857476763460212622376057223092376020760541008958998673543792990856890835050069066075897851871885748603688835134203793517059172454214184536709880521324383796991395897487525125171787046217123775932158661781039688376777052687758191512307106753441181026932008354108473310740289996769402164575633148794179265429829096559701419572128825869537954683022404740433503578856951702815240755242543032947728735859217798093797064243237828648290583059785591119467317850783829801219509314100638535596098957842920728883166659567655093017383494600171363572917317284672335186396629085757417203666375717099007049652970638645643329921314650748753351194016362843651329043074056613340055362572226952749420685150655292101283172050285238110526888022305803477522288922372521090717607532177656881424783041872226964567486038968370310243754187550597710671754133527529773314772068066173159866780617767645469266590672040772420546695661060969912304410187238316550600319975924335625607906664329148149970444717214141662809378639966224571859134124132439203945795412359565002429242997476034071126023803354644506373093763795449183195076633298954970278958896657740921162796843176295692080202456176993750835865080033166166003896354699226302141718914017285011671485582157103629536741164721996991592407735118351416434894150138398610206706060659546634940078323496887122728088622115049548834064390186890063852853387625878112154929879750575648707915778638782677019132226161116911482161661721896015290961572766551376860379248376407363416270464650114134148522888967865931003752860551047980256857949866618198262069204517819890645045359203243623303212132452881493439655146541558651571360317108755666367440792107537440904191141742165589326129548846111561557717873165528663458954453926474887261401063855541814935939348416984618182093470061869305080660581605056697748414264283194958907263084462779002436474342763461271257934599016848902682622966299876112722886913585553637240395419698934889358871338308867925368003290231703710780957271131538397305608700293125729349613207121543475340011306290749858181762606846398759324760160344613341680169326509385930453538538930471840428938448517512516571296122495980181758234364887821762496798697074125111616466804345376104831982985581900636068546805160352059439982112709907418141352818392529067329790042417124338082803803229830120867398087021184363135444706073147215729538070877451470417513724417185206688144982416108569548500901659104248324497100535428179414914402954648446348692172204783849235695871356997722568989562253742862055150596704309051594345366003066822664990090392519975251075179076204026099396615123580719532615449126074324408032281874787714366837890959618953664912401745616644002383932276674799850106034004591967774672921799917163310052780454089285449155244821100213464903133655131903380148216293030858870072359293313553529248250650770638515028175375733099187228902420517641280958414210180805181386403635169064350500598807294041470557662859668518567576279510186069395598673836373592276383961930502339057922097754101731554777480771643955522983074777871860822570457338553012998573672382176837623933740522462598369136805587419331319353709794877484214844032148923574445846449185814192700859669859044473097713222684965295409702726004504375933809853128314682555398443584332025119947216778236717649938491250588141097777739557157101948181140336344762735393780253919855706227367105951795084615910954138898256995768625326405946879147451189499058023165627369317037270775477484683551001789255779511181987060341263468600369752031045293177765633287885941095085801453107555731460780584790218516820371822430137361712190290567729555534193559077801577132799387030059808110089622332876745141017363331437361524957550051905074211293711970119239145059256091791993269759997700937442056690635833815998828205017166984517308734214820775333264482430477422969869479835121833363197231242970688608420603995122683917395177505404275962597191669737844565677141178802845850187313964280169847978600600241852169870568909978151816235974547689943788917378715825193145222885808179363450526406217763843662666757760252518750851095892060156771848045630336710016596862541347500153647048787398020612323576625271763975245859715680221019823843019114971686690160774609591537464658892156868277873307543324565005047444330092578383479281900590671406805197364512738669776615542668466207559295222963615927682666659875913810483825208187643706228212241844396426277844108962143573595139730924588277587965847097593484573611187551409561353494819828589147670405153699499218255787937089807507268840072940399728543119505044762451598124354332223695235458883480455492182505994516552919807829257386940042531021520327618290028608086081467308091455333837452119974198421343011351637502320456354658550488948552583875916653098536052564868888095333900561867216496962242649465117643915737855187580442002888783779693460177163725655333861490647578562204836245241396663705775605400640030919221810381680817292635639097749386876601519116103007334471512656106884241714807337627211651939867653071053524079201489334025445665216152112091950555126262514634396919459730419863885416334645541136237419214484532747401100929564493127913316782799135727863620318304617820423597040127231471574064627732807650648037188345357817578728726880168932093406701093888805651618623100021819639598574670637390909855881177825446551164385773299238028180618410053328805133672168803098712373449907548991929649127044053879690539405588013305378265476695927395112380458799737985447254762074318376278259905932614558552777874768249447990120609800576350347737950662456362033663699082395854176327085936757721972658963502660793490089134945147575782849957443020401812386280417742569209038486070027288873639287486417825281901647311861726511945101514062036096513382172757055775631802152551310430816556247732640997225296211227667219891252841224453142196790462982601822821829651778603497971256433763783185209129494391771560189833546059188062409900030045108555957303367266355177899089894507853541015605488195043761032090688039049765713255201056659828284560594372430167054174448005971241948202110112956629070987885949115409653457203883349558106424215477642965566506826884752268710089142153201980833514130606580525340654519121672011600411548758401016166882042595417036680240530180031653701555836577512041042185455282990453372086430643053814873813848351646727661193442183284510922837569838703414197904378916204148130279313030613375700179503615898507260970551106387423450780845594568152290752750243089255413141086255298677295969600381929027617526871471764696457925666730771590055321578818795376746842735733362266210087991549715261486956874045186706084420201308895510858592298441282810590996480909822546038132150292195481523094082546248588118244070944610099188675988301501204524513609527839299388441480398096458907508611313792219878323758261839925719648163379748751355365803463746667459209949739872480898955914005147458848236890620676446965269390193813210170637768690219928653303078090357429492501124113220881129531102385966568291452684499506965992745908773502902295640595240128566323494529832808170771240812681264891588418321956361579369307627427323683847850753580335450596322430050297501111587878800867560487732661126510461773213049395506343476808354027178372322543444522248738373071373408685328823264998666155414743412032121904939771546486319505648677643535803175336452867832407367544365696695103301998823929489489486038636567695701636874520939964372048035928250101387661489108278208000615111917422369679744234539307918375984523128026787628403266924115148440748759803847684797224452153923117627892241011792309665392265892206892940724854163249125366313880447394808921951455318495841220487139934922062429025698440415859426313799739151952513525454123326077929945981888300993413742303563816023086721797949810858970158507415953769689126130766678578626717404143618069755841317850928531920603219166459628372969770810551899119814191211680397269440252965607142334520500622379011535505556228817163463623655043176722984480508370888589515249722677590791563692851212846890426626895372049938058644631389005177951075542282730325217009044851244043618016920405962513067243300449411750072330397325683587068253122480345456426309815308460986846632543353839099494350120392712707375479766631455477717292813921086331970087145843896646153289177714608255576570297062611678038192436620343650028976433871941352869229856683126408846924896174436172186740377618270108662651704979855105679483231765771029724483120076205018166337338362728015474503905734040603231332933055966151556604762506759844803985111957951648917989551628508948410092631163207061540211456304304045379942824360212635347542988192950968434363142406920564803454203900450383880381048104335110222610206545536151242860911603300010387307533268103505424129663504608874722692042220303150134113562423726756670594360710032261695352628662442793554476346310747076216370745763857254143002234952655144634327199349944614284304576615419381679703341208924643998839189330334584704753878901729978360418329341328314171850397513916180151864787981735156458608933922199123434400103147767764677489394330432362549620172673047383235944210338428817584835919720175079154796962101487791994469697112066169931780570198186597780052609077012045239007934138555927735778211565274317490316337653964693567278853688977259820708882058773375966995624966195874648417430604738681161826231103217730112305175033133756926796455154763091925686830855722343692293445081089551844077055378043814107673187303201283775622179322500223644015176278901378359693309730059881946668384163399183752619624179060485805002307589875080774766388749012950724050031803957642906205889871089425617902582137575329613407091911631041804943335035573487576545455966781616590467226183027724042187480870075297155201775387573493783767504191128448033182602181399056064102446825174646627033469343598623722453754490929697440527831577562808246730466275687941223699074642444569496284583850222931757531637955021014914975885008222980277880653188246244549375297624702680626139589553393538564146416436421942241564941806061115833121005217771461720870818941635840721309610622033544401745609952791994641898104158873254901742130261131944780083405496669348898166169408622636845721973690706931247668986022095438520905837732387474078302515265073720536026802967547935064386089817880584979771448760268358211177680568457472727183705217276726245027972802571280292452728288228562185627934512193625641576622850673567900225060486719581772357946979821093901516734668515186145078583518457517355671376183207307118546999140541030393439333169047339549829560246761753551814488552293898091915735442754632250949913937889308111206804612863022054562284374347730007093786324585253615623119631649747105505068800819346566697435759353323777879797142877271131934113836996457568095571017320979620774146423640760111161688602677249865153906520652576796872263991785195471316752528830454598657212690068327390647592185104699312595809935465681472769056306212741571135740907758463010195375949196631584244546432900546653212436568389357483846915376629996623201065055894842019176487646767952676212153679485410931986394313609748590860820580861815087959212718566210200056399083854042553593241189983354353688886768836599428072774601113774813317396334589834350841698966141017576698023971406602542039383985490159319939683407080166322035145055559199464608210026962018044922363510780770464269158693906475193326513252878021043536403598161934738168390532298924404703336467260540654574182459013795581638075101737256877573135523729775766129800543281413549772354863055766922965268601867207791836480938653436700796928067326164448544868407754400347800158627021082385090747053642543624198012542267079612594136987715481757287442278598059952272214685200774785489139362169330242366199100076341680629664496173426416973985495510048399698155340336637690076570590986862315041902501926148034252924060499786640206864114544834537829046225991733435658601203130727790497805764863420485618450235984395069011931287834856410181574568088639259713579480815944315131788831206921793115888402183976544132614434321262053480071324197972191042657018684972721959879974547551098003896177318075035453600679880176986501121377131685749378068802926401140210715818523182902351036656243449693124347490226514107348592222326723758864024950080764200501195092592117522643403929625353195207488509717758075989868331314465379206531934147824955567728469479085677444546822061704045563180445886707172333760490601412136653272967015698360267010132978237044654843074201338579382050916023200196091807507415354000929708271385350876781411643229371363168270306190705755214964103729377794836543241072883237198248602210558849852520238073439134018467028260082872192513169991650219220945003438690373826285941548995870390443290442024628218342374043410558809872612644850559194990031836326492841714168309674296937593338820175374009467042783994480523797968433527747114223353752738760923932360900017299806946399730110522916039944746260884477003902841580725268647088913952294514001000608863686120626528351241094072990914148186476258892948934396229729323456965946010303534462091705383255273495714240345377461991522774952730704316639287881035684734667785052875752389090626655130197127151346790323369470755304727436095938735531355755116386735601918335906064529742753264883939026544570884899246542352025035542835444707209331238138988263610700292538211713891710748472473981954477689013682074607983048343475349950882696454854814086201209952320028681798476149574738095576875958047347300698654854530163457894999890556602237598132622214751472004415422095854160315506252030605619679017627903429295235571995282048921213380945861403534152320755152443796184174853417240233727638472867240623316719528901721404000409709155950676970168989982869296390335569619168711098258541497882943495235037494580163546909267408358511228024833599109852610116897643829117754796778324290623584789530117395661176599650258131619916435492375617200409913662360848701745513163220987288737074200924034974112634022467156361341899687776268384451445483551788019919392215975003180733652943962338110879187364864665571057785741340335497045950504839576824038770236192995808672934778080686015863433824242177325690724680966031327083712702842260293636255765100031068914162803868201494818570852037969454871765934591486866460646203476872097124794758354648522404741427354066924377379902277326722323510322943139042068599231342907129552312095634366009023850421379348091515393284017663040566789103214741878072919212554046694900559754933669540166726078997335544117786018205227404193696097552637098223996576250438104306661103190573407833001772679248419933118892779120656482492423936524899829813710336353305953532741048399837100766685813986836692973771820769209340943818309667629909683315696446775010570120580445955145390651555814374996513753304200587953834275753922999745349230975730285329964603964667166906433861669022064671092715672944982618931130413431475716819203026477581723692032163197564626516614451052454410559247888648573560229680821486851739947538941695633471894592746492570127836529978552381177375276868269223817835283950958430045932100298647919192704272969545648973363795018176255086674523608836076538993587391189936955733830199004571523360842014973951822905028911583092980617579412042822426158210898622052026830119603944474547158900884338190749217653698506012176549641901854512730980331121082493421848044414894514987629267553904459183367299376262520558195853545746008452352110663727490158864611245152405641641796819151625262611206149957189130151618027836318023800513778198667011611985689343011435081886976229405777262148061369188390076594936346368985977561610157579299157141006749983051251183809747014140088016131114067330572022275548401147659282418006159004773072805424109689141822753533879605766709887007410020600638867379542492427362853355343326369485349101617710669358904055367104151576842338376775143772443441831901727126282209501696334319352531812872794437412033065988377307330217219048612841682442439946798305658607565771702013154532304883227101091218602043162381014620160791881736547879266512803161793589593949549891195086759864183370649186691934386385852797413704233958277514293852308305959785328142704063576568051682019666969677923266744521252460597844340760538243378817526438964919926127470047451729104598008212130050849637782663437289418234159122380249966821416115224356183765553259934465047484910566137314908621256828011292117319559643779964178161938457762921150063270340863141529342747716506950071668940647372634665746514899040312278385474656493799089537761061887420032662536775952217050777287551744893641100666376322007679559066324355153865212067942383347086037362416830524310556662414291495218222383123793665909241715429157565239117085667809199702620644082471083905557402328451965004739133962704671277107813540951819736910023376166034979823048904371973910621645571758424356586497245039327748737906084270778170051878175874642794548814660103614101348218942452035193288675922050551637511542158451895037441349699178408294418418454489455309271391798651729030575354624156632742710231773495971686522915783535595339156329184320051954308179950235681332402161156042013339203607537413646432405789781384152498991479825301082631844022906026627093107192566733710887870683651147141624194217361693862701784731384448083416232201681167168924740768733841326064959081453476775214443899824295021138922916979157649848382119522079981954533863916505127974586516550620324368205797102407592278892873425091046566166597889828826408223921870294803085631121105211257303750424688748173217245718872241810916625849816675268348371268093255661345941897836394949316432592378680743489622548791776996681775390240404814597827285413954826284155331277805111901888684328732836685260194732951258846106433104124280520021215962608192379694796324145168079212667945158912902854073971778055980279007579960394446446055476102159654440911002164434443103288734350598079857603643222680038491869790130606964125923012108806100515019380016327757525262799980240386400371516395431559844718413659816646033710204232545170943774843813703031383569730368561747808652290851285908135271536852399994379977960279685589114569385291666741948304757524278670466782820011456246250382780836205446825395316530574310963406572335629457971732813980389265601144399474049339084764952161783742117186944396449281355547403472081690227386303602487596955372051356100251225954895162097364536313315277790756704269823492659452781470113448093110288154207810744308527020500207386379584887085154592461731399508444039718219081088722340243229542535430645382773047487676245574086626182183482143313214300650541504544832867508932888405107669786780509428157028503442790178425022511477611143064438699749492730878148667726537679811206092275868760768591457236021670311995377156030425820237134206760406990763178223593360914298326717268025620109996316996089955693099345066701830738124671037997698374208776477639349058842411320910307035591042859026803836838076412775069235609176561322057358935241589919187414227511640648578924448727827761518455517947350343690889047423360575822763379735843007658028275085958194900860965991295365758126776757192817783097851627710850617763369486482337386140327403953770920795326475812789400380421131386731656231630982442912959495954981727425032680957109100209744495343761936966665781796246660973463061847281326035984999254243580602909950168730660639089149497233018375198955864355320065555117187280809652430493941022361255727782768630839658873433309891761759539187124657537210448825885822896417187538477308814416574157495379357990850328132605478248408828548672810330604361228003534326050565903397823197357567412504536082936630511566281192716765936345071005347578300570579909372211611902202511261878758426219502907162680048959241278703884272634251640334345259371123752057105966027709875654987331700123445361373280257453434571176032418970399581104342264259599606310765684317533711180225151907540959712584717136144530125785619574450810969355047282174184649445831815669589373692967023895946583570640604076084223978499541596058604946267437361787957040796022851132284618923033488399114971895812156895445887426998692809747828891261537926709790107112628271669231480523792834150142002871288007830873934335831081987758134917691997231058428068654586230131369156564542871633741673135051095482941982586751362137418780036274267393002854265409468289948912521522040033960211782104034322913160632758862852922916418454416628915633921098931648074407559575692793461155327316410115958846610069937679316223079461830638350396600527125977903472234849374420459395346909368190300208266764675471508575139566377389177036735592604986559544253929342532601065427348373437740279610824297143019107304944043025056333630559689464876063949417045881292062645751895517768058581948050623482285682294149235026563552949920717189707457226318758415956437808812028504945923737350335591209158132433274965004579416076578004450196574991148116048526990689925749987360700873274430985949023447691768872639163488029242536457785566927617664022769669578074049852653882684654162897431690164144091161262961749123697705270666877824876434521406085410020781527701681671599407013233355593124287537639796428804588166984668414369864943862154746375118843691805877292446989547517411202355490416199922481550260200022678279960335115208968758355429352642847965394990478705007113706306768628434170182856866391881609509110190097842386408497088111459099686099347298871289623921995358364260640456048298047021190721710472282949697046108630322165545087528110000802567347538582194624729409880594287930341126295118001822977828538562964423961717659231969889652326103097161312365276664744089743161353531091109957127349194862927539445112739610310215123114184691275114555748805067756784912088448080171696351369117638167540059101735080848573868564111046995200554476208087608167933990130367354768064933252795320100959421389961599973654024608065712847907295046170626376846520223514127631089789718668746574922293896772133650636939247836461397687380035368836388541080681476246521038733640097868790352383500264065429724608130667305473782205575383502363948299547580378875922539861625770323153976148761960996619931990300057017206759761486953327382951792884967928750193372728082556514707485501154735562138574820486446717912400367089247677742966208087049536410093752832696578058662231925017367772485033218942550399395178230109459705188302198352689088784246980593563333790881524584211882691311390833943222590809536431781087104178247710433576993484644840704836972487249779981306017362782317703186504319637049577990598173277163466477498405277432328815612949157062722809037097084167726318128941146789292792266878082426031939392893104313326005180509359626147062477633501834479788058642733251882338830722079547444743527831644524465689039827733601537249805605299965856153348593203092100065570154257036590319259117419087652920747162364369685458668038362502100194631806301745439585902743036287421834769173958837558188125689845947460273343158928215400028156222127038180305704685480203845297220388605885395737284418840477000984199183100880924172080020979111861309464318919355781690700406855281765252026345477799200195663859734347476093911056746537259910904564631666407585986978852308750875256504467793810001731256393272941534794933422034239102260570376362867479278259559834452340744887720409606873835832603274600513960232146810411823332531901295761023870875042476841411543222218076935452158951788141417743664506082876645847605703176042483520429693724461657589550064146245286823498374480319592963512360905976081033190817253521185183255824052381679326290416515066298797819302554444597071782873034194147634744228632454817025083095913298699474815208523950832978309418749538018129841403664332694000047656402547701555148629397756834089007833699899393661028968310604355624308253733119895443757497003876813597638868344405994454209797107636127891691977371942674707259504965611780324642817551584216230852638920731036126748978467666173058107312596856567603008137607406803940239358179440566717661887125960280199355708546378412889060940669167765076529525424312005129168056180493700785852725689754064032789291283584373442652858828954503777864122951711981212969867393543700902388024891800669691750172427170768447477956881147818294888144630898162561772400437567909269437681779305787618687075430600941654655254606248764675270020064038289541108784739846285508214831603692215501764179602329285057410325247266761251122145637908765062215981805383132137609003696929192242019631792224963782084970430440219693921478410451869666165194077280259852508251536001592544120580041223787655212329585866355043207831007216885289101435312682836815908142978961546880938094250333310230061440843958065230686818117327636238744214586646036721204960885973178701347744995359335947704647166305296227345494218125407449890944334337438780004379041144115096818839768314178565448425301307026862804419406621232363543520188040725714541474450142069549858523512882977849804603453762776767927019695778842032392288327258296838511785315019210376579856857869810406409433285923105306781718556526409258257587441418053932588208934215800193455101942437002808090668475249112762066334768043471856570733155076995409661346011752635516737335630083502318046974699559016276114488226107061395326331993760766483579269692402417733662159921639713291407186012567616148154889829289343929740384252660349748945817269994384730704467639304819678176263014788164292640410027723708372327056064135272415803828004919068367734288867718819212517286548518096519428733763319929328250456837958430762096390975043465009516600561076925339376405745278345201788308316344107845738955545894885700027017305129237670051253365804542505670467294414548105565581633502804838316177683232756214685825059576064488914136501110965885090279933225523784524869186573219885592304629911450467112071571236265647906882031661242938232055165381177389754688924345787424039297136990436732041938229314316179484028442070825019524567449706868758761870606002253951677753858685284956055615488275236116935891086109625662794550434143946864027764608001023255470422643304245810055260412991018234861390302120115353820118248252854511071173188238516262431713251132442049209549852690244782536967182963833303374758847284961235845857371702696753218545648099645770657471843467924499960802677102979149911030124384221354226583288368953013255502640345228249710480917299839989573677861409384688617269346801617671074175246374206092588158338193775450581998608986419850470438392424465314793384110397256586599812302859952752779074933850174842780955397496440150149260009546768897699193245332331175756433059289246124270914447068717842388961099739831702346103036455865791981600350120644543520235791417985476804693966806764052210481277388745539208921947827996132890424783204365501217145258981374363497755245031183091524635998492800929686350599925418370568275739172959665611227825725988216379021582648166815250389756389204043533592709491645277192867718959072926808447906242712861157988973067400597047132691966971335080689814066583730883131641714438268719317490045557434219206105332617513139709443566767126815013643272281662053382689168814293032734297264252454868095729678892451191298917346913697735930942212695267535696767884408749426931427212778581476176156587112913688093534171726893928964440667355255289306413816786741667906541590749241600926013836533755943882393163089633069453713991498312011968832318786148433544714430952328902046851176938751752785020940695637586522059075249330978554648835390088636769257052022828501774369212543796251197708913514734087800558585975965478923354738223890020706671234463158897500150814209840180740450828477421146025912300826595412452277900306349052009235449305495452737642929371910371507238242759843607387835986246201687398052198374185950949679667324830579128467594607880803241158621355378726407526890736169232767121743257101757779503377149365833272038796861525532862097711122283269248044784265337383861753597705175726478946818923194892760049124026440814453399605673083768623291275625197255406336771433699471895874165240357417060963429207232271685300864366513947866499463800084808325933634173013159614508413535703526467582555476106443048860880069275495444058723512279845960735102521858437979843122553625196182627866596935260260048811795253729207567728679813062590657513477208344219697292054246644511002349041561953166860741784161299520809495086945572488479412688847776838314599213691170612713772705253967346025690195667542327660003137026675192641736197849374122296365558340775452399789870707137289169785049408565641774538305739665298105120675932289051359487900326287201779553531552234637667580508418552469888549434729960720277167119577207609465765533183069037069457097072792357245257044335956594730803606367787558751755208388297990394201231972827606688801112883451444859514362430693282077062210156957914622031715827462186620800969705307276667202455651363493958314305760285115538300368453643782562713475404745403000017797549040637910741648267445234868782265310393205905208561628039404763762280369779053102821828729844636270971427031048696013530292790588749431751004475967231631312841999321570649649492564685935491205203858687401907127483318760821054497727171411491536392304086177711879972206205299714670605585599826031384321086838942014119060284045841974277469036048762783977302741268591564298494433687364744006720732608093495368305289673750289088391747365597475470412652036824186907920220105503174707913028220879126254196884248817017478451375207117333464700135257559292360523951045797998585830778956011378372776879894033386172169579831214919706417536559611082537723451674716767190604706190302826508843257968254410342392777487710905188862037204948431852108410041967293094550874776408014818003560959740452131012537156849286693951143147555994779759131240879857183111624107067641436758207160913890983345894002431606537170009980522173481236254965635747547947158343608519112015104463117683331025572037525506310069764141972282522165458638261933803749135452424131004847100370458863498380741624194851466650273772846490293694382491214342915731111080656973910605043839778290868674692226708365668592192196577761367366761947830462935516882976265346655688256518697590127973106103532478309183215100151929463042563345899894680381615453434523067339374687911182745674414956304267508803192056605502324760873143420251454283425486916722071535527668408717267553342989214491447008698855656630769565624260498032481979574541565862326299319003111774527523597594862183788887199287076352136744971013462130145773221342248035778060731667821118948611072763447725323980776265559099466312233652474785823914132611132002135986586548555433804162933078166989473108414727827958851919046325239118989924331081623385747420816226947291510555325569765491365382169561022724426397511530890742497453932570023034013762565586194936204080438593835636895154125063557119051898153059389684292945992244844644834862976119460072184169082689825179592020128448102754764913049714454107758426120538268830463804261694071900517241858679826650323338891481132690105803777313168973809964116095530122241315089411475469839574074470836462982397067522254255431874222162185289705410352128538026086181876945586230245382136715666464582187245038810878059430925928755168341097839586329882846630714275347455259922102285200806441457134962195537861397222434462662551016509814709571372400568343975857916610014988212962781893079910761058400214907448517014518753558523380045258821817248928255255049548396200902730400085638467576779778033968692351120376561570267919751975400170242821987385999984804080026581999984280640798122178142273899297792504518377206130747510820068157117553849444861634709594135164393049297527782381229219677223560617136169955090049813944689780515289146748366671698640574338854154428620648050411362443618182235886758943687843777338114881915363641404412676178342242389251554420823880372408201055967611525761166384501045823509228496521504472879601944855877697036965993754672318549231783032320609018050408973945110825818218753886423035507872933018119311354849541912452135222728527443882986615651398026453135420235572395232658247166325979361274686016765873519369394061846552391041526592435822178168813321281166838935944620353431547988971199337041207634368309454127265244705718745954188389342162388642737858273822884005540438791247454496101203363533164603923062638396791028415180098115948229883531535784725071553872318896745515496196565434445368016533870278050224781286662972355960879734510441142312738067848782911680221987857490823006377808296067315024434115969097355647399021929376564834481285190848011442301921362494041899017383170436696432088978841064686439153813799031527335019818209600028493850463918245943629096767700282816127050439548149657565440060154850289966036152469805234492729022167519658855078954553668362311549581353335802237743135818970362735734556916533197082605537883378856766237589663113621126591278705611066888269363938639888341011311765326920609917142724229125605141426264475377690863387925002973880805370580679918372665806941839295706281615518952439369462974888941051414012261906687943960089925457149144359851641687519531359761302151467877771412660566130359096657508324744977137825480371143101128763550287332588568307239619442101476760644372443486264183678902619779166062603349509364402315873410182148613808424146364950662310132679005360023597191924897620511496569811425236935018470381112403364757899595154916387073047627276988471187022084687261051907495754911048688476544638646675638380964750459927126726104747261525312594739678340712131106109325977897857657739655924555277916207299337870841086116660081842662154215392995782421093925431347858895269389979040480745866677880113517480881906198416974747712775329856995603821335269748348273645646557312074012178203580986288566410671083903654106481940621629787262818895550673387901074804235382829803075827071528938231201861961045869042688214923442170001979556149127460837819085687420663756077715503824386095061153110224615260108237800449799300053632497480393361330852658429313831100104575487890890101360729517222334778796382918744235117671472301713171722774667008367115813894166515833163047895168070009936133838511353256596751761778667102564890029544121757047308422522333406110661735114557681400890399370485696150269006222791779342896153294999723167447621799875547427661841260570385286238040539555666755127081560174801838498629585395554675528552095321185677806015932102259715668744164967498977019431087090282670763295561273751786241169479407468147577292006439041130112718010878984461575808707315701175835028163079048602497033501785215474058996468151028407763300113543022387269543634907490878928623874946190705396411237967856421523527971465488171864363474732891095111287400555344340823175395947973773316251128732836350132626811409674193506197411368263999722282038620000235855619085492640561275293164609136896329810252168840652938529649364060154991900792678262173634971034099933312964331062097374096823492304176484775649302829951671252592745932210094275719456840766750102559726095650811916237037820434724328745070386667956748528332547900613702609587838804905101327228352530259199819064580487398794909788411837890285357044787328077436859583544614010676822056861018285915190435989432576846830115326292940586205085892300068694804320957773064493280644292337428352309546994652398914311046888945005690171025095987573628991027428529339161127372568376402589364448231844289609186440501490061277909376530801159382331127417923497952816423264837336306089112114444517579211649824423490202024241918193418270999279553013790325779482010035871383003006126819417482386506820904583356066049705444008461244211058126408171709338732836290314739610793636571154724363128157077810829304205845369130830594093972951309078196791393610037620207160991578592424309795734330710255606163212254976732109550204655365636531976472262860591168586986661447978004081716923556837640848678832120201506353694821406364617414011682738863190712296424020435279965023542116837789763025597943329187168877571375303792402776368647714107948987071979691343022781299810960261407572634187298656842286979333693980075298847701173269833950396906007551392639176470309999425582002939682710077802057686293983214454553123352495186978050573164665008505923695353324021342988092559405605904253030918415613670180497729843261157166922006164164843374684385323842526546599012001409325478070392738079653745451875140118872726893078643954522244478858606969124157217478061130949244818595268451559011081515938261838190449094381610418738271434394254539493760645832849555733711135397316512382978207512253660757780949975058884330229022979156328348376398603403703819019249118340577806961818922953594839271157958624508245244108001621523873109281679655152443176297628330821136857864116171886604750127919028837730344884899104068069156666054399740369803161311400197935429933883765983318712163326548115627236307182369978335396751329793039265825635763062058271175081538215437966370756065227690247134387549461977031542155910791910843224374560578043049530699945476402034472949127916064473808031627849751478255419399773281230129446200978840241762627340190306125264923476614548225119010827889013720133023319402099143637880448359899443637124921129168115728057030778872861268204542686999767295991023772549939343586912831416462809667984679524695079199402753421233637511229065110526458309677498576983723592627998828202183917274700935403881302377977574840721012564824223322930718376528743479996124944531796030517678143458709888671162507290473230753744212610290631012315498112532521828363068762990176712116792090821756784430589556342796663548536295620063304752535424879681359800316723454148197332146867990043410227447791272053786410018854964186492299636292462326074139095018819550360740826667079224129724130505280113371730736382457542541954931550154462318723302140260354078236066220551956075314524733290855633194350237887612423206758735275842588749640171080125624853757167805235440334864137003355884639406332792307642546969412284927597549217495053659526130255356995601749232904700131278998380589070281336977025054200470782992400869167102170185948116730037758903369539526715714169815953627667976899486561153974902580606551063618713114106939490656266647554903769182959606985278078960098345882456817740810009262487149400736578213085694932354891086062999567448685692826707177797811584443327520486286720828399454412827046049694049623147801095625017453294312724196318617402106485307719997348818940477320814001278903233277865005874068125936638290900481824763113271584774851487828794172950252768181151244770847702672950713057209341533326263528426406877256672449823863574938110666132569328144879573779386040847427083949208485727492792628176768960082610766311088692162096185438024269557960505990810934790534715039024347722672530056027527245499100525796948378699009626164102663058582805072868517162189138573634322156420125598141580711854615259512785173638319265288824737945461884705868043351971422264465705063927033848616654016504236074522406564737064504968855979853021699316903663482316587941712078917022546774249473602539828354525485759609319763811457791194652828991487117306791839704096433438304326975192675842560092871354124356142734393425338726884544745980978574468135752806179958604887308792292944004811276602301862347639386003332756076559301832072515394499488117754231523047498493317756339373100490156598418738802269108710788896975564186513689523987077859659368419810244618125742090859611889774808184150105519211947363365495668100499485108369829800931883567762803665637497371825372591823174652376611345861420813353167081091805137022125731768021530044952715380226395050077371793164202863314164544881598738343403859532231825270946332166974732800849129075347983499193382066830442679126483632365503424125565238925414503732906682950410340007956480193516225349181224795588512205864914246796791536208365845514566636529312511920216497093984002231945347367460588770850189861009423074640386932313542378485021324830417856952695838759034585251434194007276067666025959545080176376413095104435448001400032048444838263491188649545306029371578948862872031370896668709658280115915847345449053753801860572744192858759292864619646165220602212092282256250884931832133272872542214372312695316911275447010050184915804199592434267878868300262822863884215112614380469941301189781986760028490507546122040409441593590334646664408529656565182716795893381035751225121821460030285996560685901972532443109076163319530829412019503056479817149893188236633284157279915509078338118162282584993641776347854833090613694956066431738022658907979176497894927580631417139278968290598275363977168439995772270042513628010918170046965297676228722579808519074722941846008559122255678425754375846132867435579724985574488896783663588501007494806551003830486040648596679192828661702597165227234297548196255881633899293453630891296045585231448123234509960508823061301050425399031519815197828205388184239325709604087970207261578032874745210341166209975801933884488088852480460897216313612295345271959872148192833042287884220755330661234846969729539901463046341938849704901322437558343853635581517627900726453961189522849232422478059231981641993856066160983124304501808377820718789743749784542309395974568452009253104083286878677571383244273452678184860588212687227334652471213389380879421052220519527803889965074393027367372057672840126723898856040034470363586853456074420191615537526651856250997088140523606863718825155697604894719021722179867544108627980644352195541953061724378211750715950458804021681244704904534879939650466538460158075832692192880107641493403643216660717411556456476883420860417379188265600771879153923391259809731386383859674021664103191037211505457475127822183536526245989546710401070894810165276649136777747221869152811030917515106360366494991244049361365464077506838772671166626081117622667223355374793832698928771141819125734511440095800904359411826014710778079076050538875653787448994184452502162312021298051167455340853446278050382730643033414698242897369698307367028797691123626408913763743650147317369950803562166809937193389110174525590776179041109915955932310357194759111238724860066805704020329153650601234082254708410123030122464687889414922738569879788738438469256225636850661286446611614527868610983247446890811575989619984193218403135246909198415241956978866759131109342138868765713272596203101303449057752087630825818926922553035160009976282057708034810270655941294293261710288074268374848778349331562001709320213383959814013612635889790135144926888955499096475464564742737617085990664863182952537053230022364503159245087911984258629128375142377268783871608835810114138240689311197711346768500182157588231600803850732379360764297619959918422547455092029385176047576567934617178757212997747693134642958738481933041891727862242486887513542865714602018595690227641694751492070246083063060620177490390095548078020025769612335472045551964323422763148439493412528305067844054300298234217901229821322813369392713199751695544545328505016505889349647276714178699390801747295646827623901364782755485649415456275025104887011981572819407453888114763853697309234874188789471563846803294254292642668700109489485699187637033746117084409554303198376492455013904581968522225035302481434849190562715199141861057570238871248863840773145578410902719861088874678404353595659026810694132399085114104205948162415082070778786859526243226278529339871135064708581035066555260118688565927998013879062455882961625284165207946470379186672430616374404968156111444592462042302655360095147120529380792340608105571758682747148801994276623572489618259458180353776998013882220104519685899019857005260053567022204617749346098616464797389252011474761840977140785103119588460727447740101984424046386558667094916319023246741692058049923835648207849673562452025100406950176990995603336420303280983978099127977369858918168423426800919688169733661233724641954653565835341982159518513125571967059392165590404846649133939038544687926375112733883386826957288010199070658524435171071658919801899576756823063632329580069133058868170379397178690398944486731555189552074122422431908115235634964146379993957534495977330439646530894055435649667696581409163809318974061745334261833898348573465071553533548459915840456083166319706657796226929927817333548771526717433345264923082688285627893834343844989939051399956645486016094226254861861373599149949660642573031786147265729979046296404320857648466957835774785617913898332170615185868671542784788479516308782220931173333395181978933978648048010998825766565181742872848708021923566900338294328981942723785368215070901889687129344658747299512425331596864197493452643196670454583517511201636525158301366373917119659898352732832277008881447556758762322035232002933957558907547465410294191378470528577614648075357474471316762027113596505188988688557560149024652840733516893634693537228091534036332138778708067528921774303391395513993652597001955976345608321824206373322787847319629279036043996658583799852352830446453980410478882984280282414265741951933162789186505836113767265129651997420011322280847871762234533362072951232142027398717939889442895413447490221118608418137138170327282787873320859386902546995942567042115568711798158101117813867588054024706868056282738155307966992430076943143413709087178441177499680391378933431086089976323225535594128106627507243838655284108681882775568812142737499025961903301114803971500114491585990386942525830298129303151747529083677464894712775568245462815950028183603598896111666483276531881444437848300355379525605994083926082732314882591150743248974219211460218239815983240529111256224231290411039355116652805225100503336714849610804226014556716748798136832467141436043191416714840379766241910386980987006963706677215982801055690566891688017264591140530763763993316353154576554366029763620728952779931378548311773685500054624245402977965317883750570100817815326950592411646895679889776654895014231760735463016198836712708851565778808847357469980417307408143219847544194584268556929484378684947904488070368261401911065977558882416153678529990791327842147265712164326003602160997539392451900040874698869377540575990647966739392561782045662636632016846766442435418816014297417208288724626903325042682921070194086113039351092323023506848393794266978670019543638655522176068798267187549711817015835350519338007388254132513093020925085392157022464369153219151105856387439196456849555243068045410522183212890157586826688002982352512391023183359397227141726300589081612109235054539129472504446472180503453881808971926468602270331719266533487254258937302969253286743147145178865680702116400857675460352162267546343353536793252625120830524894297274998427306048334806167913805045137699326760094117354810384130564553424092573369090110402883563109751794984715341148027214485861736722565587774398644390493309048080726943891187104630412153832921905808040417598344756351208668757468362517314588576520940199867546022633685592969894885764701914402945619858197289904740261566520891775577456575252881859635112523001085465374134947279050718612806922474097601853459961374540512585110396654483450934710484947261069195103215878605467862997699354507689723452601732661885467043494129600929427717246884626523299958868729860890513971513794978109185953133643393658171841725639863916638474175518841355734272235157727359729960947009573062793386987561647073980586138187443390757825112632971289908004633185553271273832955047937913451233591303027763167737686399067595562583066086260315506220738613063235378445719770413884616382907680773560758859246565324601342972129073809593709961118714231285029204513560256663991468085589231860017257714355551242238478370798558835224140696594507730111981229143411521186908593188460079406151662465765242470587105128454716035584122701662559880626825209069739608205095773064387426632750040231080622375678985638226725174750140608035238686663635786817408063216042872072528294334711059540880603902437036570033733728714815234941132225558943246282402571965857848301337598230679088872882916395078941103057952797720636580749233990554839925178901388275492892929924920854907435823616945612953009880110364085769663046406419169459127966778020757812652574762443067311191102477058399663062118141690429138610121883992688446101155785716312238892921860537089094448945765275919733864209629411717359736140929564033763243135951308124598595042190851638385286882351785400957492357608857364282809432204403514945441468312896836042185841464098573517602406840772583838608472009127184238630919851357936688539780535238511826246498102246717359635474460148268697125917123728103167520181946545357060124018703907704678297553061239241411249066444229380586326785143534784263108652245305888253908675753399044137576907296539205053486995679777472303876503608395848866895747825639466175615221895366088644379533153334928088738139963380759041088003661423402939171877611419664448202174571220584505992423470648064772335531467105450943731078772516163647655830055152636062743584994564325483521926472766280447799075454039023535848814913786637398696347834433621001566683224871286065490465396998036343464959849086853147210916940312471025871554917321526278563080389571119679120753142600619208157264437470601978916379650279671415478772842916786534668809788516212004317555107269774709992082326219728175508934735671933473783314105176479756898520491145894948220063585064733699615369174058806419231883641985057729323840814086751908172676183167125991872370730123511736129796625605048177974926824575263701368110390087073797128058175972192444299478577414368016217548064695636814453705858925401734700563805718362474924114943718197222061585518800926313543029976259063254033062412517821663476914326147820514552169510452170889929188584062783555687083042368270304086009113126947553362393833534697731295355832711239004225193788338827218068410043029892322910217539191871868611944126483136656014097978917519345875006819405622186603420643760664557838147845477350527665518974995295761787015557626179356798293637511874936582525130915863298825655474423847955541152013967981253762819626818793376995802628683220408094130996124877836743068008981878342722290760575623780307385378614921391170102134397902806984072535164104161235138406382946847075957948384488540096784772143376169962372499319759534344707776485679464691864206131413519765330665618857354249844701531318607373201106900942472123952121215548782761358986831315052637998763162460094973506803433024564321906225750709529210125747166418662854541857780147225274113645286161576687946771099224070903202630595475222935174527751467849927353979926286920589286917274159779524813282626875734779659517096727540823841961514047914828465508867681693615406454870206661589890874965992389892332274674603912797553050121378135614783451839230484833378306463769530061977254072190689413098526415683411866734061934152690408875201055239849369895691051879971395852663074034539292879627628009896379280907635987944570525117645260809019660400065119695398057707149457382118879550307756684648005234281439398213501720081938397607685890519038853107174927308981499448745419325974552029643615627067862161685522209966747152392581626548310637524906225268847171479132260546637919524243595739899225312722313494283641660330166357394195340826121394985208030189851811424067514369996434644116379336115432351437075218531559760912571672739854914287620154079343008332841528304507669208200382772373433393326426215482322556794409490509331875485996621277912655748152607476741075601410046279755273679899372142424608230529076069838624488593374215388041124647624750337376200522011086592035211980516155050089147721657715845068970517518289297713030598943085120809713064586138365608822387148251124075658289817009583103113122960386560346966581128728693379979106495981656165928191086062087898809266830754876707617820858916953231834964294061136203557970658103420273737495200720144188909177969024834403229161584584119597558918940758420671268464927151666323119734676900663892833429016291663616623043237126110271277300554045112320763101658019138617299428258946307038613648586320224495430329405314399594790770335734601116069867426881119771703803256572519179688062348553579616022617889283576716023386303127271189890170523744426629026333716820057828025490516792412306251174825335006828036559054142650238582057884565344449317488109341334870474074300481590815105193785136503745971704053167450925270820074294513504980058099075619392094966916245336565305631675324241761811822670371288918505282530304430621975921091219944338810392993445501291655650159441453712360931440752344584074727851516944406635876570688882559753818703619287952339984602689063867204351658533352252258310539175003204167243742971150203916388945786441163468780124827698782745751018612981110250375742615446752741426046762735314101689667050229573337608938111916608497341836143217723677714147418160901484468486781598039634650133067692402343494588165252010679797513281379202455542250680301111508073243471063812240975720374424103241462522479039476921648263834438930050963504664201878326143992659233436881038392754009870512937024863457734785490079235109460127424728670199540761091816386927232837940022232974973452325823288792488169745347938100844572335440562002687943400399559444955002038531060458674452602654866769575839905865624374339078805980205337667369196538660137242028662020313931143342506124760767801234659532012837226735375074885219246135261551303900167689932905359429189561340726651876645823060962341390092691455032967216169844150218686626546232729689634626830244956745333873579360870973115582723450593292361537113516431894129917576683742619227052633919703527948204795307959841130714863934896623042434386146515331827500978532558851465472625143798173582735828772905791827168192231111061722145514011478749124225633757488451316325779520965170422894164162091855569787936282306245671830860743279648962965795611537809950327330724605190962496556995125457740135538363442014544344486508493659393001518939334182369526565528340525494903925731721907076498285087513203621864179194243504076731820642309884091476243458256070865084860923285086244016419644580431892155751794121749949558392532094589936619162753527451838582189303488038905174176405781506247596159707494297769586181092806624841419989759575864450525097402842291697246052371627786078811867577814078285292776887662381926091498157670585998974610335563836756664452432533916156201324316058724290179667711390092049280711504504258708419215980541012093162677051939574329615292808680908483015862286430212829236611281434176099040355320730832690230198450731965098332961033329194730923121431921062120496469667720080450846534140907466020698884949148431496445698647243650443901230535502333028502686578608772062314807247801931062161185737158584867884841883657333379388536327256745046999786020818994446232490302202130725478494855359366814791133032479498603920114012014369861601055326241132563660965010154625127491931346388687687969292726814324799148555804555035946867453053525004939588687747290503582937505174395869238497483224579563879989493241226140776756827221173995104626035530755118368340553173446910898052296481410172067111833826130969941883198695186582574127745297368440408950570152208703036367657882312314436742267134558331664925755865635571204268975115382357463809598804296204117684851218449477316443862029401042573896029780542986539662537357313050957307610988989156773586926889678631271239933291642517495541834326391275828743467636566446611657718056426804347641023040945181351974527708343330545688074342533296165274897675485971746455787881131170655546389200492200806886030258837825468573632498558807811517237887254441806625615735920177617489335246608679499252736295062872394173426250954321115676423361075411338906296743516108231604874490528243599322098988392287067519130889371024828157494864431936398293959460992542726383803498433533446251523182040415084410991517097419679512724526486747117160064056536027248652241636804517359392705160082256390742382702281091683849712491640088460232590569256626283039559871006676498265738635839476566479497562426286775364397825768311499446401951486549081367688631932166351614099523475329746741129414802728085562971776655594664920421719459309972928412046093871517762722923743949092930631794498462589566911727336853683562964458128435198134817815078220845870720056163554014070211490001151600848528775357329318939464755694973675984020599605663232532962241456701398236657840487383461046234680428488415310563168023117250533927572452321979127351097692470707075469254933805641955768544138342426177084013491872344384030949887780490441042254164473010315448901162737158285753821435639109749580314705483135466712757182458903672846727150330660530119767486878374704108009293958900119828939992211569233109220300242555602994076210529340733030877974863480164649438428757601405149470607849974185762607046657950951643587540163111272715001134609911265077900630500127240079075105536670661068545045086045766632767712075029269265158316818676761150811701045236171982726630787396805451995313410160231359553880976996441693610965173242810496332314430594071875539440381550738023954927358577629807956206417798818561080850233353624927611398857705864333135453122769143349434250064184374776658039511887914175744785304976061081214252198446881441047222908734449816800425841711678184353140665136744245768911990403709831135780485152391200080191997785047996249628378071845194908679241546843617453115640035106158950384309266956610473402254386027047851191515323810474674499667049475230826853006391339085680277587927235718533567174704458386541394724924491001714179966631958966126915615512361074382939757243878042213296220697489945766146734586996467648442422859714554918672175966782700986641283377888385932243233807677902810586978304070945062741086867208452166686076065347911037303111164535973984993005282359078127683497643971687234109386112773379557571686528074563371500734985840609700280736340926285047655756710802427431559505968694375214508595128633428231577891406910481836238690564815872248432964150091287148871963223550884524579187973842857374941496827434966398842341808048487392009610780726347544446722467992675186989259573273124398129586078034637426299451714964807247431553621315901510330034435916511097184465348165832491348007590763143981728402865175793930182889455440885329134615109344637889782572360636820409475981249222430631067326165704539509075752495037459007049683873141901651990753437706189250173732596098542556385056422539037310511969666515648351354097692692018761854907811593253547684119974603405270956159282585257843157514878039445895750507188045168683557419999811682767542888775955316870284266589329284549598036175167731743843106965260879904982200830541947771446914373319852665191700140937450233744865667374139721732912625686296714376716337112187473197837533060499955717174821874238288859148588782025447742843621691732195643392252163750010030926040294751996276543613106363997992805554010417481761146604241501231552226989004484062589983223731375453962271154547385207672506220542910805391769068237646638719348688922861616642492502740798080539034460974818575939926941127588056965114436898081408038186301146917796810597606244788053250870402920355700183147530357167378249474856570336652896427684088352609615012526006390037161927277375832556504593780647149446323676420141380486612902344259090147881346303971414039018984074565271092534261931641193437131999948267353054843113635010127162661454072032237816153115808306763041678222206278753842410655401808481615258737173136236661154535874297153754349962882451401837738414634787343432776945099093576183918359643162914729261765271412952978231641587012844489889243425296031015384174647184308307891634704050642856625366429844084067235128681225714583736417362575462020546436803308727698147243681398113666534588772626775601178478844722130225278940787204435123499215155668531293116857574711960308668531185715569460085837821859570663843104111642919776607558935981351537363605714544192451025489657832284973605462677512186641853364301275922936772186344471625696716173250765907323409606111516493825580209606466268676776258632126801870014015656809681455114281849309370772438451004959805700208550406158469182915611223143775403716509799759977569852087334909454274516432278914742608782001707643976984167619662094249183860347315697370344272924172523625882071534551400799676259691898666470844030529635034656470082837375823777770442228305996651589583208147955666457609829452661916070124882722059161285680607263405899000377009823593530016381362892707145733468248428685993269740543496281398311385118960038956863507727734777432998000714168139981091836760177151917072819815219028199844524541337409062026348129291990775584566508051676775270582214452313646167205018867255941261163694787837972826554302131347510924470007847272235095172784042119399734654365527419260850959128375759930320017551211583040756209761404730715022354253286128149005369927709561901860656576790145281346849163185216043452157658694272753248489927558869410938252508834128595243102426835724864330490052384368102973830573200000058675153726560514641791881083290315109157441002951992231385505797335351354456544899149877224023362400089736216696836017888373962916183947577185813772793179636810627716084565773599522256301185260636429255947356767432332341633495913741892189409098134223251998620698459458318583884540778713653331002849257349807984635912277157283449505380941593740915637963237966276003172940244179039697887054939983725017430769111913903251514217836583249430398647557870551274135513725909418186699610857569196080495195029913526277500983667586054289232870149332978160027328296706163846573438642940087966160125432678205904927310356727459639188683086316323599562630391211399473962125437477926216823743466284561688284897969041841929630274985905905139840661457844644266485407479713452829655965766508987401307419615064062487562142093332533762547500094608679322425979321821951545080277194065320743105428778816165142226516434846654183684638286581287251158063295004261881769455461545309745008220867817479500219615969772452327316162036024259750196544468407612987908691362192909972835584357680332403987672087329211285480692145599154471354501593477295776549233178012876355882651577301992413243809685740202554391763505972313928913675004244309454553148594739380565645169688163806709471440431483120763135994116442112986235347986174907220365679767148628192226881898708850795099517981493986532879327945746907026920218042758418263176921186078389858978367350958516534470478438951605175689101185590487175547945893594461484949299906098240999679975158291187464689401623410057449560310675441843814283277660838605024833167287631855542219112912736171542536704833499033329755595788870697957469668964610621694562862748862883922585945829378618491999571607690197748334184592641374549689876186947504240069632914312112156426979440431711403568713399649246949135354719057462883488734783198955329917859922461806068353797016822610331550269882674592214170942149282650539627023101249008076082375359357618871145552705306960275577974022957946852776740378314097131731393765308049196982779283607979661580067362754170501994825395099755115467032099892396795468559569659286348387085098580944746977313456732245724838398623822616415645590695319927409521875872954359666767142423092347102860086024697801991667049348248918334708739219076958617926061618958384594619655872021127413782440990343233865260424913483860963400313906974423317703776527597346978908085536393706452593862702539348084393103083553280385637269721119532299692463861064591530699129138055907395226739999422767898078933339356338120434952969481020639425284575440688149264581852073864850064752728257423298513400703800339255267060703074879815519782924478646076030905653111459871841062668995661921904460342562867201589295951521954595621013052263047897693070026678704600220014517737140138796388711994811707814839806562668964999129721239147598734839669748850483160097009965538251204237198450257751431180226150520411001762415622814596346394203486956794430903995978058820381964946724988358581945177251764834163537489636382485390098490329149485677346671174986103220988269890666013105860189573813094353327189505141746561594682160726337530087214171813296983226273391480175833069854835866116227462425690338926830284444470756512714649530076998587678616693539712567797283427323122958883679525230943000504610531198801724894323773316770708267206822060381890278333624310484390881047034874167411054501282207149128555640220044345260006747265299688912475634232951565756100605813024147807196260357681335376743617703863257390121979287837829109240357111474717455495590143641387452981074027553336483953409918217784506539715609204751185892990775358315104558166908658445913581535443191846939353794802104638787330891790915509331151570405410734026757817596454263431128639154756270516668328645058260429043067847133121027559767006100215142944957747633996337761221494798065630348209797797185927400625154500441182544036239008748444040694797482574279170388917115155437210822952283342244264684341145515760578323472684722478843883194603822547616960621362676964712449751703907904005673570180791562458767979067777448530830145425277503104737229312980014153591703454430460496590660901102818149538744769043698011572950609883729094470206349422713731872955390704670205951130149976145375209766611276861796285209598194290285464716441991068020832572793709866230118573926010408269034859483213165819044794719744768441333432505526473165104581970678370754373371104970192895704642358532947620846659486652880725176417478132067813460028577814416521088078354995584812631925672913682166599357540938498444693653812716548023311471435145939906434361181744836086645243098862808467045416308677910227420875144473349422310157224883182380806829304984642061471088566489351370615827840466347598625453430843803302245621274430727981334526454402912174436778367696775485616107196538535001336165963058736357172285204047847000795061185461206842588701114011420711520617777472722236869824270198632852012486329950217673916820694691529636276708261443480640469316770274667537557821952770988290404222221216093263488780656715680322428594156885223301090187216110576506332359935926500454223757482575756264195021845969857900104032068983599310250397682105406916927492156024475290472305014040340170507512437582502702044267464841414711939669933126055021048442579701777215795430384240292416515813258576294811346568448313093257202591236269831368273373246008849062276694580200730863066427328872919801621724453788986187867160272760365053701862498918924593408612589478384702897640778555778761645889180142151451653772423335481796856204987522504313183849463637492418752900647912778626802634259779022930086107009434909415375838250021761334000766208094802519347692875797077154056995665343363755985717489489562576057740891881969298618115168254854210371489267003177976583080263480837037948137855338557860653164599042611467895215790439893131108976623395266134791815818280828812044494248554141503521328472667151651716591276517436154022200708227770262334760089255081721018623580359783729665597790420724728350043017616230202513316394616283721820090077517892081730385712504709408129970871961451880350665535770221910282379034903474123154911232335122934121313271712470466777733636202815555818939258567891772782185761882395099440862963050551117917216177486188329238619750618518750540234236688018040471532998458510535963953681616238640355404245820150092259016962704608170448493690118211873496067908485982950473287843887416300124183234151051104955273185239326248290639165924825779738624884020792643344521821764124486427373030890472543927881883615608629491157269457700398472711886672137930625957055252606143268908273710582697634912234692597995276489515532232315328383944878189657898380691699711893062082069303456621738219200162388473570426689626269849748744902602362654368200054088075392683533282173677131788099411187125046273028823110723490181875318855148276989790567142716655788228119629349091115326444737644699289697440941387241074269618535117195833426422926801436470991664751984917146537151956782007545046838085245645213681326886406373017710102683328935390439878749455257706554327477646176437066511698703494535777186462059145953099175771938888649758279258529930454241021939361157066038118817799577402854082198354703695299296417716151103643145706113226862873583319788351426015242407676172532733037259663572141617701284280592724133211357256070264469877371701699400845733376190350621782270930424684396569832851811262596806287360565265636452174849103072202354657578684620493283981604293485300050881294531817025547524932671210057832309889997477164457341855138354352812453618949266887100788142706335757293323947755498421016489796784834848093923555225920532331292665435747575203271896505673279575917791921473195396812554066753841765570896214264023774730049262363653755842206159017201541850386047340661359878364530091166896848852927024116548873594060974509259722379982536028746698112723067204643535701773773564413762987254596389479890841078495937483531930559255156895466335365908285656026128113122069534623502884113093961032047519708298021877314987143703933914798679283507579140491397377213322377986749720992534263939115204546302671430093341404694278923740587905958056739942066446038452185914384407344528848700986398686693382053449685385268148906728521260215491527613506913939758049627048783404750925377724403251847203622530544778928292933481224352143455270953916648675878292286945531231672002965467064833934290572629167932193173391571224204906948284121406035559444291365751321806192008860682836867987515608680352015794444175032972636250042495815138349145638252416982748546661867318768138683886671773393373915359150328698970426628868195716807494289226773272743598128599928527474654709939074714629873973581869169261983363657403594762382218878565712795839027331723980511084341033551801215538025727580869193801369755146067186810176100669091815301320368233314653784753987195045055788032979086718856796373279804836461961246093788914028582136729496962928407915623034439736581752676626476597737481639633691947423849822465964377124615120120850947551830285030655038996617673694121711466628216858586079793915422550513940722580260348814348558312655530122796364010200693595070186656889120969274637579192420289632099025016330263406812601521640270038443152006076486906452864175209155923882261326013537218122056213348537003429478420351959035215218791589978576947209892580231674458365741051495765061596131857576141477955828518288645741976229093779307000046642955081891600516426739234734284612768015816600109559297300362617546430357196335367978879750692544802657406107622794847552175344689440400712747012960089149295283439041423542649271645561712253671211898482114567109504515029844346477194554314775666557023784809797554573241577361658528486661496414239767930039240327340287888632667897616403774719284571264296624293524549549743928228351252273604323549153299132602432673015875511328373009728011654463769268804341354061222197902226479101312248189580867476093371488103868100719436773230096121347685145360982166354256073075211413275996172812654706921846728691382157575473795245237349365974473343965236320260920669737879328594569971161768958970498263643520874128324310211722250120738830540509463918756289600318219453272997600296981672223634976282124699773010732745362931217270461267841643140264215158744598134231172228928639006030464566202955353733126564443009667458410692200623442590262116866668818130267439880893695055395292749361065836276901888965509845501606775837727451250124592471539876917597144354878512134875796717572406748575542151119503654431329804932797348946901361868461720299537330330155922152793259877396021742045368014881012846305124090517883844305932134735280845924568081685186429826386116384156666196567438440814571757549244210608398974650878540640867954395548870653153715492126534359469137805124697902480355104852238502194596824268069121666522043793081359833858600442084009516466277537062854227352123596702217467908002430972208919871884776868206008107846224089442360480738961929083358911578412497564798791437244885939675346237608936343770465579983240105120388569963335062476140091606790290553883126100136821228788467113254208597850162083472893082414874925442363907870346924445644497315068907017336836206449962811242426533041872724406910964914490114201731483670046103023592887740960735345911758005369428463179259786798158008402246266906297053637254023479381597882973403042870673296461287845481743335433438509858193448227817511227113606584028810751596509453482735472170363648027590668831209976107727298476488915019406866317610929610372851190145564411138952731960695656310805958262487531529558222381692275553203917217315697509074245164081894138597242879193769403067525972005074455923533144395472660234956603248025709226806306414674861636827382129592880371438861730681597151742147667532683950596203854227415505012664173781785849039636784652615234568641336479947526131482649069433291928909813079917147979582185225643314618575296886821704119352524486780212856239447980590935533396451713372454263029493769754085199409750454553233212304478155483174005153650335179444815840411945269706503026137185534800360877704343731458132694093559703056675031737667421399340578432115529322185660093560253575253519977631790672432801576062624749308562970496700345663232936772525550554338316630380169276537339829918925841206251065455707750841524282576479834270529514655870139479650712181566380416786459998285647211336465367102102064823307856270857433407585867096653328569308262902580103430859683054366653851406543255119944438599959656758970199803486922624478610224333190332582722697166405403083258492030099003213552224991642007582813138355074616519894161986020041241332657378281919986202618443345391329172342770837351568931014099027284889626685525278677641270062379704620115355637527277936812357880073204841046026081810905280775850660499028503971201949157946615324604584934819632989272328316599293351348935273811259350855431774892080096240091948924765167079695605261567802726862588399351034439151187962623429438132160209006683181991075004927992382812751035857206198475631472461131715731464323327877234122860200694692240979126505828287452457690903263508768772069031156649227617166987163586510282028004347019840134932641589365124955922033036343432097380749482292310521055973725619069926485525655400382823457978252905168351049758691066944141404975757351388470263568499434236870730741050842978538922163615648479232122979935809497174732799653968797078278236519039263161559606518644342314699773305071101880437972084133354574056379412322442816957770950795896330661780076409899951802544296366908907066241224051774696993518788326221751185321892337764599987112537257569971682010729532875656182517936505681187802349787932227620477815035485422312160196199600483490835274298432549160565750539309265042938155221393379234828598132916984919107814644777788878068566165020969239374645526533124998223193630016956446041481613312681046524986745171356686249568517930028810529272022497157365025356721893948614114699373957082248629340731331497200381699120092898085290795305277137964258786921719208561715766502055181580721995290198034336190574048937924415609619046096156792732819336450494506904565512376476439841484654567696415254377086380029040554348968277797167927739813708485077580033008857752860387987007416464751211034786027327057482707194124869963368639041974784842872803204223385646886285855979793805740214375457885045847271273666336406640314643380353243784512249083392466534025831820766016170637425221217198518718982338160429619006294834381314116227851174376047530942815793391602074563579560684566009785439203119950544138334482942063230105061131997855077670073752877362225455827189303531607632346990022636413055193518095313520891000683249960795396865598746318107362949742035655996923094277421166996232110372243214789013796097364605017916922082306696519102445038865372403461420398348598583334066802719349484243945104511171091678592155559120345986987116164582717362158842942371258279323623530314273206510349380547121742907925531189853489118552850837730105838581498083504013852992127068981909674557216243408021063314816672766306919048867196663128569451728633221790549355586504608446220819460152103509335931873396805810234389717642492127334701589360055588658669768508636234598406546432415232794446122379550170247717014161712773499026240957310569942208482789874593969711230606974431995947380924902011282105740846635312391481008433653623390367138473034824209792047448938837565611049680980080552667231495456451013195812648651024327354573010774934586255603679094759965571497347363457343332992973960218447081642932454310323206295623915320357039897176179733204223960655023566337502310826073526003904973429227617597738099820505099434651734115003371275448804095537700899494114883412094664571822634997358915899367992013940135872955125141258022873065726248362521676502397918851593470168485446715711264913047357737161568747223091152535772154480491299828530626661601958247627258892883211161476930727900840421511209317463591888569840785404614692475543180296831836832929906219608790428329625121070480689783468800875233527795197089398013513367643007797772108132750735132217379503472464773208438961626017840036948181058274171041024464742372497236239857318128194852540847391118636747165771913207384191324678360102443731594741049428025600969706142338289999908711018352027032149522558675459363970006938976606653023034176816859970823433571384530265684061494913449688384742785081309154148934831767208553890393901084280312285760187011999010000856416778268750844169215663867222020394596825765280947339909428594476593199169403660901688406007006225316862745058661256789420686004369464122390163090461581417375298273661598348866881130466145940022532486902902588317810768781025309865170298025654203798040944489722183567983794505607973147967105375309209920499996303739695879302630019811282202250299547057295722611333301475016147153941975750786565468341804845465123774051596367998989039973208636209912824207409426776226987320486782874085342643436333618937194091891972178023747840788758439216108269681950480538019602021652847758681810986785454370549483677736768529475055429283747334402925244619474005011414076731981042672825755410770326015381265932077172021993838415772858337787832469877025243763862568278908546729806042878281409443865326583421181955923456248358069192862784921063344515776081657166020894767343933717952901643125147281085995322050426501323724775941104012735214864780897377198272685252769766141630357662537662870653940560077698085628443490089985191491267926466176137278039280130944952268454570301459733976033720796656264106874774303880316155375458773168019647021111501198156248764707987872512012245233457722153413914227646966920416253174802244677857226989121624389165856327152171618353837509079292883190597878130613505192589358090846776834587352306407731881266822741993222658108229489659248573280712804372265505285377986179515531821718791853019323747692852432596182103436413571739196791181346530875058440477194422106273534702562619373578947029434058804619034901983281519666177846217741203041656489479440504748820693905384552595106386866519359250381874219946189595066408155133507586735125570083327632853579088700783881063114173663777888577709277301282249912156772715892882732202253537294321752082134569887259565161584280158363837387966168708211188387136359771854095419384529554719924176538588547951529952316240339258042584677199085279417950227052977942630684771700304466368176966151724875926134994600518039198029133594424858133574203658342706972317776196188612675836952672032177991336570128065432877226984041553103285054947337612486783808926978475154089457013482811965816615525259027710695276289336398585673106270185587382194778452923195323314500319604925781799308136940539059281616931398691364175057507396437708041873717444287474809473188497827832479313710857312390461798965196089468921621117490615433058796276643798867954344887172310838835045090134446187689328871208759583638849229641938170085340551385300448980792188257954394758672401197308936844734645610831940534005085047832085833998916740438615372356268392809290548317135554776130454905359093601700782151434222928059828506812228968591183661221997931733722696141944679542300692782486527920040580587383399290395018982207734566139920815950354064514281992628986504987532918273089836451302606411645285075370871869158371449517291867697563178827570918449664342129907382208042818848576564616151569367791848871029435153528202687826419349068792468109949937995589198937879191118648020572089824499340170961151375041776695847086779857459033862012688022495590005074032128616437784863246978159469247041420594127908946766452593618872981440319913092279843561252117040902487659469848781767243619825692768819077875950027426301299906176132567335081805656123349923545795875045126240376805136611271886684491184948292379996021304677703405454356644224122515032875831474462351368583018495112390982319285742211127922979671795033801231740879324918753906622339074794415334553360227907153928601857899057679698087080313759963268730085478715597622474550570211839877215751997314950899318718799968914351608218401185413354333057813370891126678463203481902076397258878032140719276198965967506923913660423767318971063478544880735113156326582149079912923790277171745145080234250201892407468129541676158013492247906765192955031805288738684575366224738628288519481619189525096018321650165592409517388409508845037006151428550433114052772845196593023436007314924869078266169869227677123568004043064384367057834286134751939896596708154472516592292864875917395635723733353145865598591444668761835225527790147053390071306084007673408069384203304269119665516759392020064957954258182092886428789250877716235533783479821485575241323517645930127536715144842956560994623066822869535657498389690653808117446808416522858757449146573808372231236834604565220038643244401229865205517116936864620850599614511146983403633888092527816420838334532684690645546499066361441978481903616445739340781416117017183769478260050058629299252742606685897684503234056756275820386220504563352280270013924123579785192684061632298195544818473998241208601128855067290046258988746166726588720044372447913940639856159892862072951127470793595543054577792796444686556463810273510446653396869227439131417193250515287448777343982427693086887110729086590645054199886505662724592441077025464419505393147000410681407662811921841633672079688598866540960986402599131053335460585858489194717631042512796631275710412240636539780057389487079767673557288872904164769139585093199840118724353245168534179678739884952999004002939708781700286798578855269219501816285095883939624400066447773018326521353236570887949181968986913854132748282629978687061582049569993502652300744184543739542493224830808639962356268562358156656010226044648699689260320243279277314457327835223328873188697397160794446305942954510950198261696386749888139623624073342342295735640178170776007782133028115996187224274379215315780287416857329775039576325853859551329484377762111866894391936880263022711649752604938528902086406055879536650048309066054878392526529824790581387517179975853155651421077811052002650719466679515044164316160984828502410606654216606542251382717150491675614993875767371780431620344976867847311690623823570402014873814076853279852330034858733811816891663393962478977104014065449621121152886553636082099036863029790906976698223446832188900946656701387957437934052120417295443771670394208057653171343879261010722218898674250571635928846414508566437015636585960756071901755710250175191054186842744948711692549376301940521669278468839530030207106612261290141512511336416581810100728813366519096320606094067235094177875113121105790358135514219669408654035149860505836848659566423526504608418016024186552441749130567066333628557553900454665468327947887268069935180183116489797771247293437159381635220801791764305440906911228679363701449105706732921476349665753856954210201786445526278305789334809314881413809990537954533927808439073512074877210355397164699992890359743605746722802549048068931653416585499128388808862817325629085199930897621148616090974174035172981098515801048913589622887625698031269091573462727381981349990378898442706575505576814870838891007233551920056734617895547229663396407099344818333721373109239374727905933102462101682086346667262182511597665518126371563480667278370656438202244378618480701375165517499425126832772663814241548012988743061573505394835328411897485325848001428149941421606534597178015238651814045181995941688713179740067399279340153812014141820707254375069559844874094918269201290114791046194338828406347192411615576484389911003699742157133922902783607558384051952854185742960559031171853560388699476333649982411897811775461407088996814895360511793434313902341452029876527237305865101893509114320751277330031240801323795603714382836252804426486979281201934117265259367033289188361673200071900826566305344712807723284439518189084812744030844985613047521916568567239024211209764508998944505749912789424824541604222778683123516927488821552422872638325127041139886710644647922514656653005444188779556645302145112907042359335208332788114286861077271858545183004341968579186913673552184517387197461064887887045072179267750577801057334442926715390060222807629502113511435633509343809546866286340358624827893078365783571432078278212675002352058413575425884529340507270862272728086554895667369447523967236755532242631427969722918679698522926242415355122673682010231698439742935521904413192304941209357937730488396589323446496042274712026717588563462226501031280754431739850554047442921604611870884909247142345437392305999263141387909864611741199806307143976276149355307433885471203181895617610946815011853445667740931590763001701406524006190641112031561194877509288428108094378091047019871453437306699268956918940659674507289724251116187317757378858639385890742669277438058323441825659587310476428551616295332432258489759458697002300221785406892215778656284937953645869101382146548275396115483283603450199462179248257635281177430660370689237182635855914028424324833019946018125519311688262529844364425445398253029982751040739326835445097212686519730475567810363262260518674368985845896438875357742152360558061519792721995962705716974112957309993256460413283536475436257302048389885130599247561033750130577719479323989088076703750012957598064086155569929485009707427193087080212919795497196394967177922864943827073807718080766730486733109761984761182020991339702011351220901023383683198240862537668124684867677674028625456975716083882231055933633247936914297648247847732470717082889857278764421793948987102712311335695932009892317733838728713726238147142270614550085289095943037906730247533616161632919112425599358668390774966290365514034243792046763441452634579670265395185887071287330652328220751795641258386163635023055976049783336512729552769298012414903568525716875590860089634275349156162307018310595594289510147599000468799855150052065579232469329370401588170666614380176983345200921242769473146272899500798961123156064777813173651529042413851999212175513845366854265876308014039143439598405982155635454286161115715701806360705991090429073997065117862583494098516693031268987496178912022367096847444688094729266406200191855594731823955110466953898080443076319731648020814919026253402889603087630240843487085213358844426032458045786818622013139376655895998147575290406857758693859609309038100156236889181363610036864677859204700541979122202271120889998037769186023235864977913149010597323556990689015767291994803049719508035304761687680185329265604570205842653181238635383858110483316119125668706333569389230084876375995231278109275949312844592051196358072295743229116787242730436852407466265784402217015607472574082043467388762405597808308322428371779837912091299207941816510387256849210636796071184858824564513251212905307371136904282284199783579387592868591885071056704383160531307530013960144209961030325661516228490512607081789196495861877271614939732307447390770007034938545433920010142337728381447511535633357079601476831321086966094670488146006352133715191671080007926338457967904676218446882238675941669228012522539060518386073998934007057097926095502746462848922627498330990413735898180602358514283014585466594048234084459446538590179786530789501428630023567942279235172794904795627693713014537768196060258030979799524748075230442886340031009423192143586741798162930504723795339528307560513006927899166487223623922513897045485514332133766446208842840925413792927699740697099614371828464631841082652689229066077744746502724910291193545886735807026670671888507983237948977105682447372862619605583179970064887371760403404092246577668700449628821207427729889831200028715283182976622024506608694191368532783414642530325281704787001728144713828240815910498314290701723412691638944716671519929656379416505278906435394327015253348169750310706408937304459089985292813149585520557895660043659410775225310949008646909038937396626437234812085007084573797327268315882035198469939575955214210497261064986486076613203871086468009520218471732146991858496403112937894805440788199267912451902247825351587141806476412753344122261428382568125747015128489264909036768476288461280748497305896788994808826301508218058508302472856664383718008538410811152018274316849844304024766158308113301076509378528070223184756812581222629009446009997929054754770796628530365943361360568590407830768083405421167368649669075277298702167657251697345421887578422088360220036814792942987723652072342436177353901501737174391487170283709531227571782559531433605916341769575190272963188019450608112000638206425764482967228900629175867761335313596567011581630470634687840360728589981494104826091542697188386115097937868782789543249619480511676260182584277042472626873072232921475560724310332918108656763582081832844967122474410982148175603896785862255674714634754655071727403296444850011721289364521029872716547174660784944544466644836271719202653202108248183666646713092359622803049896954757565299910339216714090147027568928654632509858765264315383569374662509336607994559622593509328006510156460811821856089039280689177935872497952396242261175583465066446004449194309517703164910286632782257914269678163666314580179165206443401693574783720568538823087730471197004402575719631444460314938415231369347923443850140260830677030008658217642406047028602262445846552265068703260659960183732312888146248166228101309415127641506240148133145071553291881898637504845413963288910044655831565423603120410154012374112160398779144927327433607323452819228311927400560143906029577437570785521534731972284684975311116583126906530966948714895152886090669443319394941634202261322861689064869177802598414986204763089168903313218773039658766031259782292283090545356360162043189894328964358488545335396886157086976863995072936010755605437522188455151201244954518931568773249200436856931752029537214933002143595335191539886045383709543994775588383098334959769462444259404348859376131702058376605780136379058537590224105940483398824296362754041800994920524784640562731423243140429976732593736441255658128543543474292759788041348513897791195657078009335623343436077718186590582195855729569579132614210973830007907317258200143665946121167854244597378552010325599097608237463746560681694088484940462539514991384540627886386495054664896204817068877235971926343176494998806957011508092604360627836471376347258035742968435090889212171212185071522263672099030014146327277653898151115307478589618439602998794825830734583560208953136270783413771070581425475324645611845634333726421694531948633334720363683155971005847744017857593180725437798836224137041112540721777814816592231630723390933554574326129719941429018815969804939529866885936688126952729395773268001119646284620834472541196539268102203558206003270343967830040878692209717555250783050874544582830611239006368135787487453855783374919493207078840495679723635042097411355766718356914663595042846204331715752663176456352780036343153296012477588630690079771182469574455981524133878358390048760364063172554249974119299357909914857069131049714169093830872043938740541556759285127134955733411064593406948940498027018057390929542152034942556200510284548215866546097125215402722407432966368438832438619981808688325426661021208529528810708794562529094242252665468547015387434386770263418889086177583053530529597545755643447798989547617718775975573725691208400324401321666754071534076836929455006084031956389606016440461965119605711079669840944583349169922267370575834950781596858657760073521245068410436064564295565717137604842174606191036512699933696652395761673643228165907074595215427138858128559694227560858065407161868743759987034488207822487945026084065734820295434499956839461262295413157723768894706155121924353393760753309617448947780307838484278526720753385069488240888510926457150692988723862485026935905097126557642239827103809489855734499472927385556711974881201207728518345106239595516429317039347408522221356508858991465614318336430811458196949691537423188347584356504022904530713705017781795416663613885929360003144560663921069286698634011446852879416842290521828244651955701973957609424176924673305411218175352119365879643875480111661052709794613585038697580449349133775476868173698965626556835031029465033685793906532442875450371623347632702498887722459560579061119198414111574419414191874908744296674370587875911552161699198909623349914072337823167519776968506742132721568617745560208921208119652928812700630863788753818175334893542018441255770392380686439334711294134067276462733259726589185642609196465886243147947514567318871532456596159321173191560474818811381158418485336545836962081833580514928355479462782347183829697294305158522544679919443125539732243525931071057299482205127519426349635805681949235765475077826939296280129969025593333889247889491668157387099818034633794352997123440922508633331069248109348296652025517297369212133273422291074273041045271797410990419968529403722233571125599114660180077192749354543022873346257933780930323621304394003207449062241375615865125570748051068652048315177533395759154969702714379273170576062442584937929340354982307399783638461527115769547184575018300020244718245237634434373770421611577120258981708711039990587022327074713245086421934080829194101274321799978177333437957723775348495701279012512242095241490755186455794595308099930456877711120891448726906897395559446468509325693730502414905227629464350287863237003610084424757520040211993510310272284755566078330651399939209675626631752047535168347715398765229189181382956720032653472945244980880302738635700331438138716120340153243599213538436446351768025164460761764179106991208336209375354906342708957693186010945259179138167691349664277172936468686880921152399882738967463911923709915955771836529499991881468640280411266702277496318986375609453534818388204653559984096130750951502006013782698393779064767947486348868640977192877346547668077591499423632809304692834775023219844905879672316723392095555215753392807190081242714482702571008265224557764549749464743185718853513336654401377232952844937454591540573040999567833858977007688200393797989083331561847504738181658434827619774007322751707944270616720229320076528640885234722978993492967936616664004692239258210766723472471530395245863176682091463975021687512758231711789198348163530523255604649836290971618046612474003502514504937207888272356201833260417918998237436841898287990941251450569206857564276797351170972645203189501303966575412053789747263746739506324046694425043842155252258178138595045809739549774564817203639688645992146699255601765452939755531294067973261148230047251432269168198314589284532675581182137737352213102994388493174292092892209050786341598304873303702159671534465853999029072318713394702823966584713649441300127714115780210542002549046547187571138024264881975295716821565758567413759129282109370011443371462913900501026025726058990826660879497349836797609593052471953431069757369823109922546403491019939985603840716457657798237809845462634875164407330754649292001387980514972752341956118358527743261775342470404660780084914293731314735338848891376386336701131979253264963699755892580970483283085350969137015183515328155614745468267598224694776832821699085425395493974152357572661413384058874070789562185267486787123781080152727874634012504380096053485616033233845088202495873857607124603570087184311169907128083210557959432557399585211401064345863957862883671019164459696416543361668060656969470239098514844949814740515139397725327111571526841600383866603343248291551240166796667980493012176823113229550848377117240221681441907579854180096167351645378239605298818744800142792244913151923993300665929178958009707353970126992060858635622538074855045719748555738853928025079986813245005835697828582156214291002266699524923048441944428198528234307565829613798666241942964900015030007668046457453748229334369604531124352754640689552109853837972228486908185833089070118208676061777642938308947104722715119943434759378063286006350862181631604016436623415883235279532675004047261071338208722741119821777584312899602554825756931936027670443606299141976780697470553157406441075017727412131381774911109809462904706940158332008453350312217321526271563884334654238966249621310964232231078397777128474473297577536471823527963566274409981511781799391634130941822308150623149641522334961835557807729561921900149587764983321692036564345321606740536324548278553445376137774267048715173955168588107196385485283248650019671291296193904331660094368836016959094660915141184772684588731233088581852055936568746027035735095921135696576527570299201036150303467336398621965105698103538929293220504235203807699795635636547217553063795095957730601949502120834911462749849316794605116413530480891452266554700961406774625245110178875582906818592417865555758355308931025696040515217055598369827692776143006804889860456426949532637925420186478126831749118648005721792055672380526134938124743036474817379049895921792117963910883384894803242630089462745295295614145828313125451265862843498052910040476040565513845032606531995890468138515948626343823587288833900561149340792381083561051706996581450562049146042167399396383450791930542775837747931771686788458210874351118621048578964372577361993540341971915032441633456083094216912340557687001711312736712861521041275306201798749930551009391276317206249052498646506037885186329740478739754497918711895452116896260949311227434527640390834278365242585116665416413278785454162809661621071942605727257194990593415305464409345252024457441961492272034396393504469665871700693448081783880973545606829666624566399789486946660918084230933560140099643285895404926472581313067896670674621136047927049888434129549858668808933972562839171301931721327778716023210477893065222137049632191402454818019803111046324837478214105496727399878094363456994094097117044804766183628951283488095820992654792815488732560176935312925546964887813390077172902572740829024838497206200858953354850958014891700949605806124982292365471004237270956944734149738697644409676256591955077784102420723184853550908998386567030896525480257547865900654219279335195715147784915015235745454685466618989876379439503027729690880860829924197843724919751771562742304724012009996192102293874720805071776151634683503290867483097976743740146878933681753885203091020576883512826964328268725408130882027439767515721974971932278550379879375514316596069363149618815027070552704329969060355060105467193197407761643238229928115856550465554689879152373660758981215864624206757335767084274597382447623964834353638829056630448799428230355428059797503369814760371224444285305808959052159604629597652168256088149754840680461038154264507619991268399470815861244610008246911362550565397897983931436509751019901226822516689549364134045129697877919210677906501982088425883945381843482646858501894399216694807287271030689228799824285078949915556444031128815686794493867994738803073259496983382324808071367857984819462356792715856279061799863670269575994166970680709128528145037801117178412535497578777498261930166237481503582606657208252547056969192963452178878255819488834965359578843825739749445451450493980657397667993308970979089551870084751130196271053622316749979176591949203730355176636263731055193727244815487312374089668122533631673969210682299895199116731674296006670427630902572638234098002711375027433373728615396095610668806901492555034173802916650345075021505491940558781697271301630051772061554869736867322211384721049722595371144085126640055613769825669374714525682285560714036380395400629462263785593363299515117785413731125813093712426520740666862922552840997653524572362959454156034963716419682061491700523519541784901240045323253077415294812632057085813661122301293450625001691537355855622330908808210127230134026296133349825275444810711662293523261283970463891363735012480793054684289321493947349253771061271463927109556908038764815568803843679663691369858733849080512232660745185166241611328428962776509576902794953583227728980084842703664366821599518038101607413330890642809606822299182139691021831699018064731019069695904556661354560019212625195737699410762394327439844832957853587869181947028472197139653460441991820120545836699440608084443339678220319055814299635610446558214297477736947760085380194179084848383339039983907671827122029382099571119429025197198744845715078655113278458760731340460738663455318221591901378989133824349981520088688274361041283936726867146912097131979264736625151664570666063716752933948055586770324941725176299428536637905090722361742225835355798728147860711773916256539188774819473555680188408902278595836660982682716038752187432420737670920036746993496655366379598873486225653055764919012418120414176016812786459690903205089525473212346667273926581095328081318960044873206829796723273391274666998872082306891384687096926456801639732064532953790744279173519500965224267129286647141915174282629617072017135745778679416834330625929035928495149508169380569179353132411888407144787109923967674948274888921595466107069246739578714012022480842295326832066623149325888264853441568028688391181466632223889821139373298416371138546905876915439633806242457274713940955111362672443791927994380197533004900638065146646114063222820325885529854111294981094581866637162747408552182100435082480854374376101228391814061104943144665613055413823555663091906286522206656080081317529790491085530015651428507396762143192647036538358831771892190749992355510200196519338670548761621318109690391082068242587189074301590252488066465002002685781272546169730994601385016760174126821220965459104099010828395486990297548108421972697945008499276589469844367254068242473486976302523522591620979508783014576990242516630284889040218802367215512365095202863250583344011612206826603431141992087995547834408201835437778611263402533970610628385128682636539063802646591461114376592897823423329711773447291012928972648931788095148956068822709681007311390278674320314193775266955096742189688412887798953789448404958464692587255961115336776324397140205024621132240230758348764009620544960751592052556017482691759167247152921722516260506963774331552553342907541509506724581774174919864533215083073381440468618853808252509361186911354388282683360216613608851008541150267741261859648436957127357215451247097602687539242826122895964882984813462731633552847472731833438909888671747578391727340756605204028581016460768390532930632343549207870550203834183648637525306977133190755574641564459671030835798348799865876208590513653872413776330726474061028039993725974202185722648444178145045818159829865463357020376160745093985856643622591865833604909375633679752831712164295627398579074284966981895858874634248408970184621099509581706159693594399964355022547992748890745752542071773475009217316581070930231959648294058347268463384187804701764535955474513275741296102598178493606530740995386938276844390129005706462769904754126806956141982755413556111343422711307941548710733534255345735257749164415115449031113969381008145980616067681402387484192248761856474822423826269295123404276755459356525534042991902426963774279006041983753854852554972418341191165850044863543946296673639168243177431575438233791204301744805790106695916995632879408218523276590924824342279827842637798135599816462683466036079184160477298707447684138241835302955642727118257907726396411489293438428289756776873185000409356044534843627676352586538892906158060376457976140391153247718212296484395425344137436211438089003792324361412817207223828482241990657302217857842840063458399883362965772955388104521410338570091578948459090394404415306140675849698735856109172850518534645259057509730167237981690512085317047379405187574288705993702122887304303432134954522265686049886395420454883611710770002782621514946480256859053690081075892383000510420007040451536262187559273046327961799102192340255739353057950621099240917690911991372277359860030863250188192918156834059553432248741130736538002901956715235934740038236270009401757439856080096765158755171073561540777434099622343406293292846818601254356418055346547301232496001841122330927073752436813654503614281525244322777959405504563153966897456347188581146429200655900166228398591871077316251273124322676482374882642478815539838879403285351105773629345269614151846813792351387478287206592765337576584705434306409590109886884345049505253996869102032486535525870237669683646551731179534333604710017217808114526962527520930647266627575434849417277938554886999277647807845772979642011178610107834364205739709887947909849531004826175107566159743067874792263328114702936831748391784097262396841574583795808382588538089640842093958795128401009490521527363738867644758024637740939155734344660784523701573795334070557011575590101924159508473128557792875809371684134414087104932328722946772390718099942540089476869381351208690288948558821801065884699330457020136545337726539228058997721250624130904403845946820596009590021909310019006133725467960437692337652554214803308396595794810607868187123462805958383850327744225830178337593390899469702856725206858272951934220475449520828648697651009201241767249342371598166608428096449080459454024910069323814143472672313820818194953872733723919916504249085608845872150411868201153433608416520003540572988003352721502612827324468283261890687063515943477158200865293279093907961784012981476085299675597837496119858678527896567082187261974586024945276414709162027160835902837306611971419067078483892020385629483014255838734284035190178903806010855438041792205619669334830702497420078270221856160793669815728918061541454870498458707787171983050578034322886434369789087758266417613493643402284938748613983539504109970055756940417380038821090340393954049396566119267087552870139034804966272847443543434017575069848378512480477959741107827700993223273887004415068789177853617496901809436540584253983063865825382169312595768089481537168316725391129167032797798977334812012056999111200820572672057152252387577197966347037685248092076574033759792459084873961761346386884517322990501651055338171351980514213723411442081647382503660044412500467442011130293088508267837792689913768009415423102096248167060855881121254925473842597236488297434788603749224619172396762994452897667315703038809613967045051017469380326720544250106652083381068837048191949177170350325040212621083163356494432428077121822945101112659774478753360904356180048386017057675271138086655495893282744817232923995810839248807715859364867724498395558131874300782372114768020325188934036818796937726483960570929372726165017980281686519145145712491986993963273633995316130762370486646183964805930173361388338562621321693232327736073839678020358811919635123513541144700577752482114073317541842926253194420365867917368851342909597924739490630769580352818726523192169732991241949702191960879438892131520796046272568930780882952526344160290299835877319387654817986656768708913514480055366940059032025362687874618866525657169763924247551602818037915134143620489793875192563889170010752829954989259355465080731400049522307053587921131483627568618217880387247172812478750575676783259399168263876855703925059000506337289438689305449903272297547094032009406125075723254750592771478315858759434564170431876790774002856687275613939523824741598463211690059501602275485537534382245072504957914583222803170072112003620086302042297753843060295806345781091497630752696009456530210721198909305461430366322458162525987791714713092935009222666279742685621699671599125475137237463231199620058487686688911898682523514228042884126325802117676378639188046115249773999486132836514694267157031820816389019180796975777640886210369172243491892947419904270199817638502179906554960372817954604608538513054700960887897348526840767914346156950731530356414309194301965918124259567629381756594846849251428788773971289940241750333578736044153235890954789620139719283752113864727523122684980167440927869555861814084522478145890603956729563880068888985429807913634798369242927054395810055413693706727478442550662743103489180903928491652827378777666307636339693159183192648496830681319478714288884286229647880381800825150911882384521558006314204350168588387866875559396156850600103724079244642546647999187372193104583582887252018394871297397209242524291097340955217235818486035727992128658846281144551359585495337348404177680929984107593093238674716160806299112157031590825261330612104793421139513413746637041636543194023304475749760318764707871946419005072834280866093626242938028262228991602389087239768296176246795130983795889262664742308033734091833490115929622187214081501869180596988259263044241484485827361666744592025821838630561283582604025251456056559940695996506279900930304898313188293848780401584936930008366508294529962763999625788651009165475411001497303125118859466671037736161211629294654980679654142050666749979941432261154917375694029029840643794108492322771999285072065736257532942366216830505806927386074339556110581018878451182346842254965257933630906888532235456892032963895148945889680613605971513997857270878313380175386549053777280813554828001101825626204204532503321840300838883802061438347537961712356897214483790991574656115867152321054931223280787440326617248750769652723265698159798833435067603802127783582470711821648875479457465169540552594142531524406036191800653032350633595389540160268497674699219840803170748926870961517092508193494723931626268141726628799888685076784817701628526809445763828072931044388069329298050839904495142262843867321508737379710225984620644165365113557308394482731070787804273645946752821503983365086172780414334837667780579485314643203310870112889846201306023966074099293255846308976111275980573925736450454431878996023459099289207832928625738564322979228135065581117552898468350245669703670374832254617338456262063291449756200201766301376408525885398804978670051529146214109334632655941559871535402599235414481506008720734434191277359086997026904556060319029160874489917837216005452496562304453858990142331460394169079704175265616134981653779389614020509719981103219220164994717020279592566018599689277174763168971958846725474345925736839609123807696799950114935063743248474278377064315674974735373957296648297770102685029978559940577011616518700041424821431349334062739390152609617207985994399387398420039852830755985878004504086524157009195084375763607472472062494688764657633314796913147068761192136953701383826711531981034240116625278627803264390047062425222697020662689153933290136880302197241791635474441713645437822323374369405002613372547080157605632094949051906670065327847152751471864714747436821514643986994534048564076138630916463380454305594574580241667882382105316967542939012767070213434398000126404740147240402065408347256463626852034333060468624069634953203171771269961238108185759827785940818651433970745530726449470106273334365199076591866504998078013528885928658006232468445202827899607210958787200116004883122243853616517473103469625219046737914387459961026985853080860645003473319421340032989070531300081886194461219967911481739333848607628177577540614490672650185665316573545462383735894013983708047074497073914715904037044160747103713577516027276904969331909224516834732016833536263850206276240306611232732648443959039277410862620340549700005598046811948920414567534184652754754633374021839235440314088666273005095875004250366213049362362976442915715709467446244507619728116850682812368049217391425116986592899956471515374158638575260312501542943971323966655395776875176146156440442922951413676134022311709645249967111618583039382606418077084077670040209413393034038986142737244980844284962203812857100758024271553981964306840809161773437661640230879555842040578296548172882458181756703762201038227343324970576310542060742726795389724055393711789720412259089162800785312535733592004310672055463802454984041618000047643014298183949487872171725393441105287245941721141827930392835001510895791328018568464300223333290621641140930254940176341966304305607953953266067003984861104387436328081222125024306062017005622508449538179699379976510580524157712024177660292347752786515468834924386168365473392331444391307391632091917500938733888442599526849390060397342539154886224977426046108407102357906861979060379832578087729733520996176656024809442359477757408902791681267323243958470677109890537331725709414232730196607749692008716456199774666537778033593305867382055392074096436305568631078460520342745900927844977945079649235340292925977391058870654145304352354585993021505893106864607651557132902889080890553687699229212222874104665284614950426011492126553561462022980931445748059311922418838647520281927605712613324366458300238863917291862487916620737886530790511323333277540846825882830545692513910732620393246753329806622282404165139558047935934482282068790443680985370103947065561349481743399132502752468123483732369680190255637738219114457279280589313753184222937799706304714007949452802451470722487899273296217554452179364505242146968899986712487685711444417678749538518643178304352128460726115380428351096267155173076686642207715516574982348862783765688839904140102140379834220384968426317153962613099588505013485062666911301234653653546845290856634886401661068383369263758482324181316769084767680722212600314756040298832235253461572538915668969967111708645848579513242656406772538133942001649348420042712504892823302272178525930444637135232792257120916797955726667556833727296963156140208315495146081602811506602328544079671977239065054661053393563713666639978931761948970360695661392117656210067979442350821061829644275968931782651338553218644969621498651177494863080110849581465313269250774974635978785365852589103455592918619364609178289973101239350066619771965301541629795587110593904496577828831087752349342362847707740005786264164851091628386376142773061170239997004298095500093706073179827650319375756111943659105273393126081727392808881667808735799703878666449731930018842507544883453478474508851577126276254725574465445393771515247767501528133779310097626257701040799023133210201525002450549546488400843762291021555874672579719294221971614088599878300737390905518387951967208898619761958451015130942549076774482865816570693591048570849682891092886801033621007790559470760201061917542883688495515963012823250901318527252656161747537135965556485709841917847236938134202839547573292889230775939584290151091303238181232054059880775103004526055314093957705895485685133068764030804608367152407287886731411157039324163753046657308216024198316325631826106001293596096371493313456369977544770304840210864321257615318100075318804969621231674821115582932938375040591367906362090252803970253642204152503598152609326212783662042233293262000457971010991236670950633563981029941599898810369045278041489127387617163940811011722302554284591917003899418399979137743084293510639829724634615153075384027893958434844996908831265227252325376180198812052236148348117232277328861007615974763701639501985361755243427568749489179481593912399395772736288318291737254105920447497119302442286107482507415145036524416236827061657094249415305195021468906475731785358145534685478407068297769004104582150112069643283311545555413450612403210323968696797116454279903477608339243722439257113690611286707304638207535220188442939526295011498664055914547778791633346274320080982677531679251460960386790693742248498857873609874741046659066872438767434258343143477039966577441359163890612008194890596996883057368066652775824037799917666033527413524077105307625914238649978382867312329969807073490026702178374035600265460510943311169752249700674132338489395168706074848696938207158118653774851558872195690774595322173049524978723846280778004980114270678701200633218464934953903186140109517001283993382727554967030289164520333428919665317353998281113803559170459466032131830098602045132214748086550819221421432998986322116399167206882625443312791063035125577847188203419394148257576504843871060348440570795724122210531011341590177619028434137971193933564383120797479289896076079253156868880073409315094884190379121079326421465131115539850063190629674294128950312687084541482754696954454028924670153052970052306376933185902931026920056025117235603382068656390697200228748371823276995241599379903341392532059754022071049021060131102720645039573566454529901012773599011761878227133666513895727905049144364013625981640291715646086537693828677161585295672455440045166220802728940935600082042400106180730663984795240541150865494490263680617657700437607809086209181838241501058431122911655359140045163999413623482878379066662203209488579538479529281564103134449766087246437855399327466220208379507710664176784994445253724898496426545571223390380702957303620629771262813331112977079314722488121521617981557894349678450184602203939169012586570677897075427760794550472340592073925599596446406930924708063226075436671807225294166954324189606083801556722682712418327696449239292061694949684212132541194254596345492400365759048681320019026085387789042665508316687749201775007045138408998234277887500212984899969804755341965569560712991873713274208517908953323191406073975889232976042024800307299285491996861387561636361251276080600935908458472678040470330410719820133239786368982849370146522954592496834424987586091783083831204804220264744908429048968174053529994882384376259996647904479086739504468297564960705159329837927406853159823798350043155577085463772832989562841584437060486068636283634243462139872520183633957456305466938517140566224351988318506651772624849114196421915895741793484690006349238714886688972939390313815485060778407292534618147577367442103980486360961947230763662962982934930916259983614517661814969177933721401914800503602770290225424696475740787231480812312895791401520736331779081019375850580932622898930799548214922329785366278487486485256449381615141234836093095580852339048057997542895409402745802431480892421799489944316952491729281849600259277271686902945856184611246987488889624636941090544473778310135362075337540312365803359816353802281033566837201661594175153949807836401339409034854604445553979003174458268771341156506365299731943764063990167156285042644065443024897574115652437334508401245943976163632756428828031546671251106785298946560111226176885049188825440957159143003270897586976905131681572315432500386388384391148484009196600134631865434987536963593041942761106944857160873989999034900912705008004268838722702065523143022271721412698593250014677050374828770319010942211935683006224913544402779703340693188659670334124808030369573047692347070189024803994127395546918183582975151916874904145776159598776046045510949948836284422838121989322963855456047495794133168887163217925893169421247359599845642956113876953771048661811696370124364167173802671165391174878167821476572939088295777631296126517575763835966799358313109627196146250603726957246380674946724002428664148339366576667759034553140828445770923262371906181899834030891332304556467424918655662655323899454102961206484866519583127284833461998076029001189995264734098218275586055309577180603230793364778171076031808725929260424323061601888327245347338130021216187078916062519922986542700069826710538571132547734535493252622734461082971858060705898146278457814948487561009700118913075480333156743196620759707614805666833370456170975557886962680160377892982737814342093069908889985047865785212893322339928508612066506079647531848432194750280925371553463647557493851290470072555364276098359492997223602208525812715221069462586717519485606501403891281751927240445676263138865543018246177262140945125412423233977701550406665236942187476025805392585197471777685808542697507523896936158216247597973587175640108296947099878960730388083896517637009384097935688236913966401916275215866461559728773376301164896069779129965120656004590674095311579448491178798304463112826495211312173390756920264459039084058861728465857924298656162069270667747450468775227136640301552410789892995025833815398451947039933934715558813092322129245633849682750621919425567234322731610298770514843705438241434825577727615291017140880292320227673250263132059753016598388767215023448152424882187873155114771582567753043715902665082432363769684189663552120741514980610868395950320975534900015511951981260324479330501000683942370199986572956259400295414615357604884562292797469044801575063800638696961188930428465562617397554581406043563692206916504631644318009701087156377393894490809306359704468320837999902089173043198328809538110231237949884570923468722715055184861650472196725199579883730292489056113096560001360661480770205451032170555879369437508101317000840318554631446337311130827023481865990218948224352774505210043341164436245243289687688048623013083026950835997306478603816133206573872548443931003962828702741543187515797446231513494707365649109836564119172402717538837248604937893565213981368459276161017764706491575589710094746276853142847000881831761906130800480030451035097353242989811479273672486347201064477630856083783264815539819560430490742853651368350110196682993541972444653498516994400959945706398045956582966789588367915584518291666975447918857386691273786908828684730979161115935919091534879295398935684614201919832420199325213091501924240946145979606213069065874083706237196884430837902317172301509256952218309059908073974980571883052853872566658059719910785273783346592974629483044987880880183135688566684608787486552293641669029442111997216667490962068287271692397250516374873174847234255447415795820207006321866143048375187399371924957680035478157972870674681338038563881623262972588246012055670536952152427899194361511550833186114646860587697676082054544400145824580743294467616756907505265895191657692176172756297810065452001347645429188240856671700465081774090813485389959641726854660833836202250892717851429798176186925611329669835930945289533668470419241083276496480334670703565431409967977769825954204137631319525249552289732815511358832873037555730412331631142326095888326433106021051711154462932759670891568088325053648270724235145202115464335198913036249422298706545405844003119168871737482083553607319511312760192595730638742856454805936966464900650895492066381323699620133405445345891643403345484668531753388404180760649522007143283826922929016180937358624445147931160747897298513302802958769124378383512486272235800052743316181843802833272873064368019894224026383552858948768684017414817831881564542120931835597103389916065529784835188248361773342608991184307252085585740929433260968147768698030062043220660525020967736063635664607751545613289313715689711694735168463817688796102121886597888397658100975671340957526619628483349741177504249916969723301568939926606666115407939351659398695405067475427903540939605262618295702791262102910889853378912209413558066427417603710932269919942687054942069460975101016271662493303446831966580227711046399609408339687309510725878330525151846864837676930437913945882253681134872371489736886222367615672011546042107660340424702518475394216322447739462691782901804071085292187519033000887988156320610566985643603570049965881265307467478829393556779666685765114457532805544444221458349381577987368722657252520653215917479968525091462340003664912950640174651605158965165660840310641119798349156236684819525727715370042743971871566510275805436958064997833251629081589618729964650304783221671274147016562040423562178155645457326468497341792074707837142830554266810596782536906913988950768805090163998507914301406391786490763066570679771536984437558467886032519389047059737413690933357768055208190389540504244202159657937105805645394406043342979774723015699495257465229032455804366266959838956229438862340615820825009771207006580727603315633438280852189840416362815633233334279447873880743033094285919293537098468472773092633276081137602217498936171750925855440310863619866148870305526781000759938632705672115055796429725186098796411143521626073924755003132606374107007600581019262972675062438203262469760565583896514781385279533605950391278758400604302907022610396415604366587701764723381659352570120654257983622799637627227019597264107798915959296461200270420249533880774998257778753835513839203977680504626490413665050229140523565636573909803620291064758566202546900191352657815755941456623143099192118703059782718834127351223909262556477628445891149039792651965165087933521182634247459752688140898516811727790530318739886662696598771982497241474023145795335582340244782655846835571299262052670719881686323558473005070373352075871090819055301871174719311056356803683326173815925982904046960291344541171234868297969998439800223524033228095714815344914217274951049178792228821145273281878038907141743287427752170072753045343816829433201902921257898074892611521651989376083211388098118574120137621779697053524493028335820220066592481723289080843958025260236168467658755303883613419021849209197278565755871181289251104240011823502642969964317145314710648904159762041347023957550086388896470387333772433290296213992676482854207173802785069135944941631904635295254809512579519002295129157480772467573837527248619687172673477418257359583962574579330755525289366119410408519528917876167112363920632998375767870884169921136369712451175542318451286606833391414847269977760079239232235879687262455809781153884763834266873196980001014770557633135134337573745258165986872287829363009905802882759398692568422481725112898770182014152707590756508695604998411430605124626136306247464721945420803821047757258422033622930886781642666943545263745958710656690660405167401083193780756421465479237643136848863874203467741381446718224299579069345667255019758614347543066087851298800750580023526552121322375658895641329674432159318029014575940787873351212241420818569587384956531047338272832484018295772905290887908782728795000072585792486770692064635541504262324852870486044079356110414842223138070666579586437914770195054724550616795519879300034823293184485523699130074410517642762228350215778141328093306931080426312698417990704503769876837367134563817955738862411710944031489640227376152198170459882347237054794691394739076650575902337538684003482132540210278323144304326596859430478888722485700098638073109762054436998178296005179039195958269350340968220143430135762663096919812814032848076231036026954490325957316945426039083306202539532640172018607532287951871922314001416838464767903883333798288520611096408554518638000603982809442622897967817183896036159018511110983300375483785830033294827375345411686252742903236098174889794665717048569005125445745160979362001886168603238703746916363733387987329873532953722336080013246953328922608628786346550250561684066149918531853491130934002449727780257016489800549777860229607004234533882218399260574613612576027838702787738728877874574789620015770589554269415464459207092770808415220626784362139745168711608043191895854298669260673816038466613550205936748841937407109648303672412760221913485050341037913519963424809694443871050954778851208900173426265314255949293248979607373207058421031853226002083853250678522851405503635264401328630525367518736232049162232302402787315474978346252043527305329372392016751389665366962719844778243760739020738922285887148190730347253415956375450148851226774978919507468516245598657704659276413339227699643202544336558444756031043183119944258337907572819483151029805270706059072870507530070177078757707379103668343112203682938770364998755224159968441520456878252828428646283969203903736455482641974088531656611064215148818225016619341629911855782650002254733112143379930229704492004737100053208500780181231097494734715768562861837645253825297061897501407769792014467703538762699697676658833500629987488342933044883293541090179595647854062464046166316892986147332049207779952678783283447592212196595308496187856422051773957507737555362142490546583108787165401300506560994932586102907277589949942511902718813106283930895908209250079415705204933623585838658676071861007829158297133727194773196111602728118896668277947964909814199950932632379632141318024412671043327628518298664239999844442018699865379889675467146070045372251892850795025367721036639008678015853862310150299171277455506934050595024506901916175331181152703071824411050812504874739694464895855073787731957198797895428537230254688664122344384730836490047932928505534016120807519230957191798649005760323079455730878975429986272257583519009394986677587542774256087270581216465570062645794215308703004584246116818700318910003763672802951321571727244892734302446016058127353199483727291980218045800847017184498492993130404042585576743099360803747481406470148104080115980977455231356540047779473622433190112327849761191273623129802978536327042207890846443729406027567277503709835174103248387739349779646532970198342091003126707783714665384022320894999712986159644655970128223505074428794311439273172912969846092960777593852087450458898082421662427325348591415467604258007074539270714987010305789915762368316710239638167604841728182762056888207021720475312673656366734260941463391182964742401229984526927026658161625209958610082466404525075011785803246304372268496177484534163735134209482781101083097494532219748134592657631350707594351592078336175154166453033008632435898979171106863088602092802773850795339895521417455094730098725418295484224329419217292105683539290987708339574489171905128988783652662552533743550944677126982395561169243245668967573743310950735520670690923472854594799267302683595371230673631961379307443943814669329979205613026967652563481972223966694743342050644318864421746453037657952704554675702579719594043251549002386780618977355629217256236539820321105406580527895715290416391900373016468967055614985380069669338355184733224681797649954465938165094530324427931473977479016103622846978855372587634698101351509198821862755895175730673445152952931446740270848965384780820891125593546535827927271930628773585078926037811233754643132561726424559272223833007978180301350577934148400095086179638565601188254439997816767959599191174208454100587530901841086681001735135948752974598452041655736237608902401019836913514559648562428384366061934787485292638411646720807001127879668056864334000097982121573528931891638141708617642306122167001051440902899463645590956567028683167295041946529346038262331302894482203254078605636599440087761599719774383297196460302883648587892382122842935330637183865195796470167309246420997202020482804357878387992708605820818118473354400699396263619876171430317974046047227901329973093132062504209539326115842653350024013459295231015578554230040129418555187080610532292301549291216534413652654072738141818214302072284381545256304031998795485994969668251550762273307541389702210638111391072105791661265212312440719594250952118123525104198597929154138522014377640115478644048488463297892427931809578529925060068398581720004623248426332318189820207503113207549046554995081628702501122413747645838429851285790762190170384708080888099536890864246645111766259219627971658789639981277915666338002112757599434419108771071175160853329768091630367087979002536145623130960585099903241175380194277177272211349105144702620834795186213133040988233767964415362438536818492315204946016763035290586279198101648424469446285595847753919319126782860144627584886104548169978500778230339072551299749340852095412611205626823383652952587923521797147237520616783850057573513846411012988423995526515370617631139494659050579451700802612870964396720075862173620993263012225984537698117533300559505948969944800138282957084064493406229576681514024297478953669494969968070621800645590603492363410697693036313942016144836934778396956862176524372848055874437984635667513766453972853817069352647488846047101078106525833960887811931860652416400000897878758579452914052984889530410272169068791388128433869504460576890810147576440484648201448455521344719381706409452505286427131239197934285621435974863957699696697447069602592868877068583852380431418390666557632388359358800339382839371054808427373446150870794346884721932015024077159581978228749020059206573425785679160153188346523061190000600331966626868661291997657364647312823498964423958849337139638485303068174662396120943622912128900773742531618295361934994994761273113879263601841287657426816552052897842126128191932365771842937048389115850456849415737511925753768583746062711336294324450551226835295813502111878818456163024000906315778411405657940920191339584934500558190261337393326342579691417405983696346822669622305335741359639867109144489293385859488401684567342908479122315698655958146026366408728555368298205887788120135113049129263862135860837232766119391303044441479981084233034339036100508386252734334016292076921199932525034053415898766397453310304597143952765048442312692565559704614717204496810085001416353954481980664728682193233129781498125873949878488485234762100079038796137744833310788383127819188828255999622910095017012781239070970123048439916059823803397686019950869562942993896179959200955772020448476457736794314691626246768434762434273984645217447968619224086161116900698390147323046120142265163341712767728408768960391859379718572834397310255943590908741170501194894408438687160599546458696407184339298651942518139910402095814544933831977667881843168481032909586156639361697454306613696586616834384093693903951025569815677440714919385735176152417159914095609105889395048425632647778777262262460459604474365655128473312574724205610848129661093513426921387165809732643745002360767850292038089849475803142318712991969032168434738488906029630383061810474518023983171926773918197489276946428165575283290835749218856393570549575573964063550574729697747571018736903737704191828831588379270269086384190455565652717492818470718566978537902495529494380750393113097088867445224132774429236072660322639060805759384421577492954889746100461793207073072561739815107122816080659890833772424095170274184225433493425197072194235158403688721327429113840077193898144088700862763633309561748632133869063654376064327301574078946965163252306088009523592997750675808015395657646782743958921722336767288076801659023849717977446946612702841827052739390996410905764288029591840354627153370946286943282333920603672141431626268084443210378890453633451927431925498205924594185245673520730839384981206437483778821780467720845422420103920577035202691497529442092455793759988287721253476995138343272749132162076563675604552646111358293379120620284587545825866629778079554259499961152863350109849789090641509252142601058847647524355852027925558382734236655450952052285338248632473380960027489534129057975220612760718398429446538045872089584509004344101333044861415801609067699405409736539137255907953147647953665638751047611546122505137591555404963151552289804267981744129767600518369453612121485008378698090385780019839404648401357199270652110525595509912494214536208332483033350972668463986502018330147652918355911602632706161623888469749707470392230276952746939562665732611616983599247555554563542256653572161546931720304311518864786810036345731018755579442809816289392010950116872685072439899218169052182434085159923335067178230447048327316645977748100673375814429116124650067264114007058156638958075766542492996155817306787969703552742661675982157381421948271053529634191199482601148197736887703939510709362043858105806908078052396634513971763765721213259339690627816887756720569934939642434772600947382508694463552987212368335952596394648773058708267050218600419310493926557328685044177405527756868653508554567460886531094607261071134513827118580087281986928560384602749943284966830931806483482509813985963457398789659139026491818713379658230508238474744820850540188156791360459949106360241311405990126579919077091948828078686557045399186740048746195537095882732902847180518965851707838869340330492448175555659988184855480391039915422027748847034735658741140870314671570406463851062374617665668414475702887398968988271018861358741694652263666476739181006032039287139730255605342308368179461827548991154971060273207416148126264257111531286292119435165681352220297856695818529134901166718598238489680135153854383248632801176020958146905376693197777648845081309143695619939384394106539836202337075055031198468618938885919956185995659041480573589004517996072401725144468119105587685472906857613045484896666671605805712472119199223285838749631907136188783279146691956816555992893280663487720496000318908971548311902501365515820603174351184121306234373486405808505086887527019852760079720410643567012458666631275223572112801458064384307269836700168075076225255041054280223746768086972574320920945581299934004012426505345395245081924841020557146736715220215781800646601472932689946977173958627722899181789760694888058038859861434528067562163136090056584576738653192259035228340175702763028082071711656657411665983427665550601051190644826490886257415133051643655881654906750636705320912522411633200645327518804559414755793437496928380786678931019242103132731869073606887606420345410332129457275568646175938613501343430040486386541015913749192084315517180356068169112363345735833983117122549204011912152297607252193391249516786991280492977167786703764050041124211830583990907291756165279864731166334329616298937067016970001091271050263018927176838918611475426805439376536476796321437882262540253985158200581979307141030698768882282638031999035016777740027462436944536348112558777516818149201393167138779815878705295021323646246961547482539534903125346463726591868172876126620818350110239917943900652758328894513098519933035222341339270718348251053835509025104345870476442229865900177741162560160983096158350845352261178797362000896775493110400201415314834323808423619639111109272413728152614000568303955317401046553826385071517928581972018625143279477331083297456539205291146773014395406743048883749310573497037117119646793058242118558583426387623198263424203802877963909427797967609689395129988744616803649282280651257378798830478950976437923331357542531813195018848232830711945814695267827171773277966603672837775337223898934407243884115794126770019892323473984652262388838740517050381299266053146116554145644503065540360839773389782576422528331356084006814654792718423781880557328317463716407297572690643576650959269501051612351853362450473064560365920796502480425537010478432799601907113881220614050386462087979587466868402930224446114675252293882055469579646427467887674484413946454537205402902189794701232746853450823131665507417269878993075924381862972828811627671087468288378529656537221746232684402704651213329722398177353403643943003331940556879712578379746851327874072117421284394323420793215482505944516158319780996664243066646923382494255712548067136033402483040194128786799481681232577284753484756450809635020033267447298828034772402213507359351915325453251011413480932653927598235615777106898618889902109934774485030112395206339424315088204916683819643133395346106391828074487073411265123325815519290105033953919808686219929566623127185014269519235418969846065325132952731743329733905701952343730653555855778798050994734091126388384549587757561669375717484415968716952424744146319086966529949536966667215411583245349123254381150384778179178375965201378990471845019381806411889024220749217621866535597330075605370910017853864478181179624320128453587428262188674178187166826543831954494611760836002399576637517458722899050397452545159552554629855854326481774528833137165700751934574943203531245128323339119984365112694059743540981003094756010683556874054915945687242693954262369253180274894694547982658397554598733761812248538283361505236435982665089604730917674474941955794642519584038574273811219155880544999412225674202898727988118955047640720346492954932072999299628299605681882817660147844724465850560284074847352017028142923702031343646826590989610620668072368950529388208571797987710524475360500465015419240137973855142419524920070732140572254015965691314774937958114133989160400293434033380232606006131895037709255038405566372702454127908234464613733671461863769593062959437055873969655305789918872815570888108446323664134543089998219564658042271259148951035149205598782432502645503443678446841554815698241943903609459332196175365306842299662397080816573714863816128023909562639264671432737846832389640958971783121079308232814123165730243317259919957512458398024875015741158584550162043193447703898111462515797449342377581435432605302048137289946687530598163851843431716785762719276223469180336082747994590039350554140399746049515187613726186529352728503399694982843879818981083581639214444375909009756452842913739629238740726240720820652314951421518577200996789149932931921732646828655044885989640546650110280666368951230961446048184304655514822216055364091397745438213891941218027232103573657479543798484762546245661356673878615989627808251542015274084651702949856135094939165479891264963730440271331803101981950805770165329859444459852438244999902648853805314255122134239202582935264545562952867962645184564060629115314920991317364152524713449546043902617950395337413637829360109199995995323110797628906631936642366275205672087342088318705696105633113337907097624752718015196242486058279481021424964963828701803406725304186449800507507672540165165228872824511672121111543089642930841706528547137362093559316413291789114947077153929118757842833036795352924818093980095391314299466253366873771262687620460243910808219829194863712957447694474620870284475453395414423600603118909423388799277738062722211345101661398927233707653155790082659001764856232049944163762883953566449367979684290115301053353234802735786165327534760861949505145936776552143132678377767528836756552819505275639204061573578789351672822765490908863480346470030538906583028360025188228150548682725732302119273382777639198613026911715024809439731560418084429069470612758490184723859074568850860734114133301205324298819325542765138937075896991178605591850836805417792535328919973115488676600303074690271997275362310595414248469026501148765559822530361856253766406040483400251662768302893937645530815108051415632683842828351117031064206332891294022146870958336768333664532577613832195398964470178713286175180350225879383412225249153665092317259518825328541276470205830592458533478778652268292197504955828636809209256098495636553635042457384342545929429972742535246028890952015628802512288173953126539250344540376767820422363026207993089374328640822756475929352879322754163323534698361763356777075228019298449676526361311691268105185947886885753403806409679296728952683863965323567148772801477689422046119182463489540725009178563377398537171444616456978949456331746810109416623078876742632149039164824308507885808308632632549833207353617553111253872655655046121050680262043953330395426939073191096828967055139107394516418069827837563499917479198655027290421471881418977235598723726496768975072215493609998223837255688811816063829698892780405235271946247013998814896679211062337438630915757745051143906241698239234049236827682628718427965318198995108039837591299719786557436380709630506824743065456706118350110278931183492711994235857710761158766960809803897681715756233871013760818699034398748898197079882591279704718409618608521443144011245430470591318655925414259209983562122094761527755691189155377121315879502326106346706862184927051009108844778080435897056522393327328308140850739600691580781628869381423930014788929233601891792189260462222606840373925755163714565182764972363829827732803676696860059489827464806183271394024293761446205699688805938380659008151015749156462335019911246570970676345986016004898831397275529012033247520350126229506233973476203711773032493090934706213887433392336500987153329338717353045502490627923289168196556127769273805827247942676850050543597276020023048770851106287287867294571769921531168489940644101639247764173749897980801692497653530630662963458761315211881166841579118426142547113994199124405356222958358160490655439429822326158346623684996940832274528956990705627174780408540896794151152919166378637716326875349160008447585068957756952525777217294552170052251563163453360617194024220079580487665714932340366308266450589318351681030219685234131088684806441187510425703810148809750414826869388965762129794474170362628057122168791981115719865543194794825268656803994753748503309105721603182548650417324254738569351442098775044366947879884170255840469188684243101658780911650007977980918777881240734240755387676411092193861740209830855616470992429941474136539254833087951792631461401916033507688337582413060452721937510604583638693647036444422149635318629241671731860483381048507422895548897445044136246760969352646653937952550701143499993705198377052397577138796883683995858366553400326798661062679069861099083008700031352604634184012250794346002003400389313324914149240438110304411376920398852551702999858634161087564666869685772033473462914806089845887177899351175028160691632460401590017453527016145071290649861332138512894611194534075243905215853319019442105196325400059128218802717564451948549444954202177917291104001288699228705510802221619581808230261303805464981047827403178898751159956445812635363720648469769352438882691257840202728861181660755352813681652810581811195495229222886328099810164169051400519708023498256194883355874034317941833260382320076928176052143916451634596989127861236128429917918304116923746894205074795633748362168297267151681887842718640896572782151922125162088146709961593737753398714753605431496426417589467814714083820503786452072575556994917873366971602378458681831178368416029686828082781795046210439855052148629040248215660251710258349131036351236229609230575777856947626483326157609189602332900710953845021252178170683023734244979041098889424456703930636480074845134857195974420637437188781496005588060952609532591787303001560543580187970456848769303381412433137379921025315814690810976376479230804957915760489269743299260379750325712097424780950946368649933656506122177542700482461331586919675354266911499179429238194373247718239215089777674505987339382572723997276563564954163344443976235480359773699741897019410626482036606931927508119154720090349317874213179096411253658398848807645957007887280839717677271689731256135750051988152055025362757911173589029775219585661157106930068142877103322354149150574416208476727858736503002658972368501139449895584634340924752433740693700320046758610759136812266567536244061445590016422398626664009017673064358764571688413239579201878040257713369406756096542012354706664712859115827692210235715292074448846977576184048552936178315224724555140564292199815660884948904370372523942429379330482347808983827685461395925400505417982818416628498823106939822702632826853771599246450406233352063958396136150311372826840768022875737267000692203297660662590627857044202104253579264