PREME/G/MU337021

056489258987919330764311378020993422989331259243268101347791849870929557463887113147039590618944235672044749288507685208573097698832481622591719239227376994289739851934763780906054075746788595384967639536054161151514138959235240995527586857615680871445676345297959770869541487559975095721522839914770866718732031856813938694228946520027853932406994297648679035473774271262964755940588805707949617303796979194804601827379966126927456210477226461909211047363820479543548027862631188213880196322822406589692301719924019971677554363502925514025067809602073147303395575505352131948236929132696348454730169558204034341692950491454517567185605441972976818441274345405711455534046898747194353632465001716060006992311890419630362228989002263857326734517302390860360074896891281795967934131215233788674274349493043928390382116982207586014158261326208299234303049389456737352934034970696230304348501229587599943808268767733213285998524973331608685585948583691346435054320492065574281246756522200171875373727535426372410191575597263099362115644738528304302145266496384384532736407559114332128273552132159236571529105386107129956550573131290263232214455445882615028267555935621393831216487015277830656892966916578293143482629189682265228694664635569961740516027006618031464170811446996890325127284294020952039427687339885428270678539600764633748174365057342356273965990212905120451229400127974739781783983229445413563802459624925245174244065291581533688147314893027305360199688458395354251599076213405624657287212163413892901246626274345609017119748620538183859515112757031465720737989985932945655241942726156772811748576321108038593144098818623337874339808209747895899202254012771052033564384138786207241556211838760176274512178918640394751849364572129175539831106008234711138268116502882941293247910884836054154404672617642369915528328639952277172059993696710877207616529180561198097623865067572449851076330027967671718047364432871036517553083413084721034751446017261684326842289776718536973683702215325400013477996729698324712906511093048303739138253850068716911907323436061444428612978974118287879547600259283421521878271542395476838053416554552477040657905981954522597270399258442624755281761608102593958112100351043667402401846398501314262690638039651591934638238139900641169751016470957595715702227412757127365881462333768630102787482264102566549076288042227283084896449967056151801104785194041412790699565924319966765656893579707329052038982064782673105347095874833856674320660176242853553620083346022325881210330828397347074623260490503370412444887748189373343020138722379647443313996725953650202804546579902521081613813995155943707263054017579398507992434598873157265702899516899191403130238120226193161546051665111460071412543871582271337910482278988611782554086967880326024771563319225797330493900296860655536609256853624779551353420750560192018430391768801350623884946931368191653074502216705641977968053486213592045632269867513803435517382475496668313027535336745221443083565123254118809751537572650081747901259207706640320322730224572632814326169341337088656939480779766037683486441791267354062662009970810339701138469721509305934998628341232238036900707342750143461008854490530935525574588535708058387968151654644279534825366592983685764041471369212837446031600147714650365459895207767003337586533249861109797412445469290168455573734417596873715161149908993757633922419767803967412750359855685047231177278260583763664908515156928785629317364224461007267298978958058115766758314862339088192990721468596926519058358920931765312146463570407703058101627733082944540063370583220320392530525662396943286489946095465573377876606612912871735959363287521043667886027423181010057107669587528890452891409545246854226237965079014947003848128938930034910914456045923142719705029932806973362490238408184268231288484287126737480848510527247497466370337264757194563663450840886098649110414413170387513691678511769946435221995852846639780440451230164475420122765755448030992514359070772805055932334724166879030754049204642453050421995535368798739959579787870836289829092906674458236541280777147862186037785101193617538287441826212339107181948303949120240377487918866577337367820476018871295525698723993240372595684467737289237625529317458495639001230335439658575719321162622954441806521003085979967546577707275587791927618457327366411575150716303737585094954176575141759820019328487054253783688417478674284328139877031199547149536274112233677610734554778697134631194389909973599394196987285726448223661864772907321284700261523936798382855333825161352809884417018449624915463927885397809940164425896876943744216667577382568562677260591989205699074385783688094951756802351263089875235129019290220573395391218747338117458918258393221224238244949690456189140451399631442846836873391743692720146294638344600700152105998596943403192481995598949604964275833461404340153520868553662851152285420790088424240227269735208632779330369882375925909152397974366059705850926357728455250761880321724126422363446799953034518457228447171418005506512454730255097897553066117316442767371596058928152984587129710194694866638553804355015285134359906259577741748173252732509861537213437696495216858651632669019878289087563734063089314016669039528100805357456427441444632578037776393453397887592546403077742385110452205508704081990212324352087814593245359999028744844498624772640083587029385005611889270661014900082526186342574501526468239115376218673342676549611664554806662333531112227076719636922870363709604881949218705937059384991237997545791878043195226200295990362137196342891085678374458258457297595854007015924161795531453334873967759353688062780606396304316975301602657010726610741906057182435048334757223858025546340349761514241045192750640839344847665478691563140627652162692464167611075590872469095876505810910892145169166572929010110022286803862352657077174702615489102725999690880939613175413093574511327784450505957423939482059249679414815486654771398694250699623556636934017281132520052325879973863682471541728807551414876290816155470588331424227116236758565133192877151895964849105815770107907403325303787035367506711038482784682895817363768389321028477545544596892193823719866286577278877824247388538867832562861422646111549369856868065135226445963013052655544939175856040072691105699257997875665806253501741000643310496156479504010553717530432906296971127994345214460583033844923661043943452648432656800652280894071857938520542414705720517049162892820989328695358856086714505585072426570846395965470897679222136274087591045816352385890240846418388793321805598596012658143908693682406939112674220582710041968044699748352021683818056935610447225863530734875412626762164301359567496405595974830626020149244289510287253563006171440439188979170374996321103652442245698633419752282911403333989252860398736968994323782510179108031406421489316782711029375631462217721901367805235996021504961128525456018337677304832667723366598793236664484943762635095991670807684451240701827645578652791135570891087876441626346360006650750777437273400521337274875286711018376482872575520811114356666816092593620590377985678182786463302698880017796003076156665073968144958981980530199916443885585578667977462131480748918822768665256449519890035020693602389264381177886354780143045860231459964178940324844795534690408396113527436650755011211050841425089262548803152356336539871477160422726761268255033899333041246342348742821788450031317282182408516710211779325550377974077271078723202118433643191718406217371731459615039518086152943078035523080346331837048217295359447218182369741259956193336800342083040362696093167261789516045602223399125854063823963392877929986744694346484093398180410277329443087100991348582153412777977150090149583260040657351924982208096909130512390831518073861467208153209121663393760872922562033702920617814271466509889846796201405159776382506163328681661393465195085867856991687807594432816153889079127148605977721828449491818219712358701801075186034899826101576899977362237704395499184442979121748578106676796442520757973868918706948947960805937789483129850004244085511341429029047107459596087594715056808623110762165348933810644678291546342640324905210593661091833368899549078102057642876124631996890221924869254811735302713205488095965801273576429305528357752868777186521038269290638305004680808135519215949428409669866164188094296600087942484761472658010037180622403425542226164789096901225861064768562046647440258023737924584189105871563135184173033882635657164974439581587129561760289596007093227133425028726762857002735744471040015353786123985896995471139414224774080752070415042661546950634061895516143932130291789548975141822821533322521857404585157409089948478592393343002876148969967622647303639837043284159076399652458574038407312368645170689134328052560027365755891763237291319637511109428487224102824254713451425572327983947302923687772794963374563317268447134263683273458954367425993524595064166144168659356367095271419129362889999304822933056467240794100403446037919824445094443995872717108924154802974280407839001069104483184802724545063477960472750850702786631286813764040021646342608969270637617004053300610004154589404614747814521118951700464775857209459458812376668217259502667045799173858043845012424288757243355899449116456224520215570595206808472246752344053893721605835324508682561231613954098703385819119406416938776924576415243570089368189905727247899445064450775922559658543108838270966980830708892631834310906533580540022289938355800471766142118344362217897871731594366951327553962007412833681614382369527708485256907356587101017288744146695514975280520487545853594674868866014787116579476671898105139562348690441240057333323142681481308345919959506280429044183305068881001478126710429745911531200190351644421076464778303550471599754014290908211029669592911399581623649700966680060156080041296994652422754406142678818949407819121284652133392734541042040853301817403532449065697757331139114574450201288006607833131735070421695885350826801833476355706812992691824051662497435499707200511101573611730615043864739557411509331298294503675280828670224671912712317484459226938729981786343822864271606515304757887301379742079064629789100666625742928682277850271575878688309550189474913844320822227486943927260807116170070063388377089763049194074211745456096728851888981876360824807821645129777508890332628906469644084760398843909265114186893927639937663034564978736102315930224391881011064259356622664185765811597444637280936882619957464200359912336861403878118385553265041534312884639866623276223751470614947741402981424136782005919593758194298767863271270530722706837882859916679728423606998488578850077756863209830760755219385181513979229922996348350366509930903768123780913047792110690095088579832606748705743084680866861631875975318936849068365574720692047005278103941911233741754196973352239293449976938165039337637728992170920690785685026107697165248310319168842548773033692286155044281560113191951319447492440820491548268488319666093109265264731395817417274717231316779105079841827249651942735943241753597864406763823078152333546333953945900008530199705492481885436743224025826954887631794650206660919214593041210005829097687006897975890510153913381149080631043964569360465318917989581080965197836437282983211827790499513066900768205535154391779299777527024304770904736224095081065878591850793759683696740389149434403367773943882675792928840193980480974469891835028349022956927774531128751067752883749508991132331750741303858460439296343408564817683487244660610165898968293929198495067404681290605796349320947724743169308887918521517127999612231532674960442574672940210723679916678113333834946246598016596059111640544668352636114858946445491577849120877694322582978311058330310751010078903569746902839681525526702916046909420348940212203738219075655828639171452083575524242125460757001143083280165281094808741482874993956523822855463508564320370205965854951765326264393200184126255539791745879575376640560423364117508850305332128575941935621206288735603304214905116399357650209830096692945988697915913560775659408459878989806567995050658019707066211378260294825369220047931283553141160456058173081241116524565316684513489595889522778155320423985137128048547237461767447922672107040259260040969692068033147418356375423283788659430880997123054157773065890906555487489900147383330413165843291039698442263045126478174799161477401970349087369078179469172325942661598952745231640431680488937733098398003374081142981650539381595969414971352172653516981757104937863239971214498308425550987769563131158101954012319241032577062152944366267610324665676123726797472147186596847868188869157234789121105587960686890855768728215759206650532664100466382203168085078271103873414835850820608078581857406244849781955828960701397535197046666045279245341202679988337281044054218153474076461055593990487207718582779082950442482256667195947694330059526102587233130068270954965052433308664615920849943983571460639436630535399992463586252773259128268474289757689258439159304351209217476054045967608949554983536286323770589586899167794539142598716977812076236081929578111044831294714613092389711549328499314465193172122105437898766178094600940098036021694910619546026116864549908543948147385892334783585935062685472327983182379288322557502753846476784708923398281139563743943288194791460629701996165034502224191581822891505343232914041118394293085279248882037332298435751317835711829807464252925146066319383503702648433638449561889467111448416289612399838722090190984515182270748196668118443628179318653933014156662216918289826768963489027513700642749457190667330152005361126517140437588559638392936898201785827175363521119166715776724235317509366694002424978199090334030339794116363716467094289717878131595976672460153977365632377206393101261833553957579159282517551514109371124881790731440973375172750807454021749253629082508577234597813673983639569378636024040257782190990828187067893535444402568553456019303343165517869839267401010239974026849597322687636362704931038383416278912929056709941621801443028466584024334942435461325283070011510632690347484251690974355595438064412265131769214123378529180013682774267376247705326765479049980945932092826944383846398521609789751157376304164040676199776449303651192975886958214317694842733431293098501800665272801862448697600655466889875609265744811675299722302456110835037038384307696105517164547280013633243144619506589396696859402251463336237223858140008058311001583048390265703739636827657338904718736704412405442501524912088082056851396842886860537482046774259477587372288799692171046455688511358820456791059334885208984187987122951575575771192296786802844985985226537095623962938926758594023386172035314340433410287445164470775098323777797202358411708631298407855664159704353434034319349005624153514851695992868198953179570679509726540204610242719318995376873251164820514501994647760254276282350441112841596359835698331405573151539390362895348025888591948454002567785213978645898390903183282523805927980436011335054952187531251380866573801313364789650680893814533712823351604411470014377532838445145197344534745416836083050756846156709786274554794741520448191274174351732711129571724814631813651395219009729481418839450968063283259879465658462932793229500152113667903025167666694408373070595541831951008924307372311182147382967658479733646808910426073186488611619363707240537408324393839249545767473823044679836163648264615792351154612050590086899541832698919175991912915308899537723888748345160117554884429942802225796232333149769721884068641742586116747609325244305718763464054043958499684730904587263035270958507758736049459239019965446600690416188630589687464996700713454136126112284017078595811984302014966041322977972667168734388502556764234538514560622814179960860927543912350321104712606649630788826852449633958034550563444864221137115477610867323159645139047640383307848525864863672701857360751444870686734841794566165041800354003023756736494085617063259761309535709606550040130479685407729740932374114564377647392823700477317107132257174323295594169926183190557034575635535858546805329500960772375238085095455648958299526420293236663382059566129575343384879518142958475425150736791047695395718924207533855113411998735230159639603490143042541758518258248269087173126279200733364508237307859569833854396043504168657561351759362617131157987587242778119654941640435792011208696619410575962470986184090068249317183048232314232930592155917043863359843601768756687931517680066454956044704951280003369865597813388296918179501897259166619436679453024028523492998845683870753436694117246452980958114227092304002427610462326070117999902032957056802152047580909019910577869040866212909890093698821233640891266064399234207385028661469384567713614020300715234359024807928725808333168508760719097227636647214103567401596967305054966083860313681036147441177903011953676186956766455518995237574195649752522276437184410107720289222756609175362011936996016307782500753115306627777702980080845746531715172956560515975426434827645846565625659402170974759425964103932142962845723845754091605856652003182857054797927579692735418546509088748121415719020966479536496316563409565805707331136703248211814631493140085987547204522128700306309952846361770526340360003408575342836816630702942536664639854044079096791902721883582533535628251226960266976814844144687455582545682872356685759709755965164963315527204593552982138129613881015064341735274931843750014702393401147382395601350731093074263482399162318557408339653988390913240881930812178669176575588280143231223220568420453110635541932245558681819561986908738084498601676059684734461656265345446696059639103724451219165382700294527764745556152907151936312284429887635893762610849892214855894552663596041633988320552060469104668490115833931262347922020173271161172292793796903000710673982165302402341555547395703229423379889131658699113640199916361740604660615752143655240911831958138671622486497096893297201518838549282883062083939459406081001115510653476289947539288875289714044566400461078738187330788267264122540250127738635648554053688997616950744679559949626764031774730984837706779086060786468077022236347159117435412771056413242628078202135830928246044085983044383436228517634815061301134825914684032842378198592489005735844054149559619846640806798961692651180914969834039505542232601824531660619634348297773452736576850582377315237104180695939549815444952421644405230212588608098023968927402835597974370179755275106594167999011132172538117493564223529035749941848007786824306632353481841640370977194001323158669343086846666311053028522916915868570747521572849264877885827121389623226660369391730309755459468758639023809821228487877330984019732635583321058691741422166077854844184283018924564082264272571811167519311331068965348650051081499979487614706616980401149107335447900500478323872207656410002262313858520807159379898967464553594642063530253894593846449461663070512178559304454798290111255055278336140371814291817846422343334359081500736647375954708516533368746238731740328489256319624113482893908521609959031394244199535370011586822178500639729672068685494877035863422359580983560150604257567765317351781783671864386878872952807915241944190015627361478229400738241936563120543736280884656772257361527255344373150653749608808620667388022717351938986005936321335681579390150452807742624281649265708796767470365466255052339030274799529279427823151738327837114025000989135871735245364729404688068261138644719653738691111244058657452526092943945319229299316245412685891436437507118044738194667867853055791105548707633408613272288277002844665331913292323070583640645467288683708790781647837820076028394136467284719243309491267638726604066108593963775165958798306200193685364057439638381807349767102003974209671893814415402924205693783795516926345659578071425344390917687737448773279583261473033843632301716439083477017680745217419930156753928998107715385873928071409433032172168190594746753178972919937748620737482924905493391581689811267656241951313514216733727611756680256407860638393629034149681956265473434889192655106108674039349269715988926676314668718263998238650926169262034525572524266114236985000763906353067487799878712449860871041797542000402197837371238834733944598167633679195466961941262650789153112035383207059873487508083056058465434092713614827831395619628072930631695276847543828394459132545156798968269761733820405600690352365553799389277026303228058984521714377400230301178141896389217456245507936405705314176608434160635303133137205312067483230688195541396165574710420410828953080255971843677152177350935311628670511415585404174389740354266599991909802296050331313065363686593646146222124026608780594737492183302482809166989238336522806269954660108508484056061399706491514875531352844900294392918205220669087488474182954834720911748179922746567265210963806359708101616493553881909723836543037918419129345748870621723045268958517152769111045611616029580061600144204475944084944710860284572290217336472295154849880833896083887360942541355991808443403902358123805442204221943628369693666545047968130297698165634444074941998420896495018272043688422896100662310285144269971944027206372717806008800261820361871513130995154606392510960610588950095606096232150867153489139882538795242137434512630674191959526163463866222762775614013796599597054915548447901354476120770346827395576832739674120407852089277305775141137761566361337871155804123241906924883553908581066402291205315814102879130739555549245134734965787528254477876518063384081856506440259879447911606972451950518629070220517539593827696809809555924461119546001843966920654432420636941368986709753214389354829409236860898337116204568659653903017595417949746436041715167861512793188059049355618465629220109455109866700771153522648829236368879683274458900097286420549552380693252307252730183826660652944365949129416427443873153870094586239572744303550182745207111705168397396364032706707953524534194968624588955538980797943760967041239579436139928243714423274084796421383554137218614572377195619127619172568271673113418292115082464585192262079610979673523942559070635551093456746942949856522116952594336092488500877339799457888637064814774884014125719178674744464029370886589854595209033226867322763236739907708619244786156306378929409687660358503122700305392405249352685890182312172999191368332779967274157659703505946078589814399043416111699157608061372193418165167744952933281918597898613282408284454568568176789916212378966970533084705139788553482760923969219537607614847297195018945628716103179477010082139253666500279457856651181892722730876722204533877223685323716157279047830617604758390491874410511615731224992936223953589583222551285445759972011570712643596439303542619515067833493344104871466490376949814939932692789015270959608432323364645788161500263833745977896128873420439438948369757138460346082302774699502104278077665849550948037062007577347323329198291351780954521317836448057583523470420638551857872352775468867402374014733039138917663647497439962164846039514854982510718094634983568917883752023916633783414339593237905803712561432545616077569132203462584268738004371699286495988349012267639884947038267277455912561213251056827155615217741069519785499861791846200524412988004077511783558125112176754617510739689636042025612599247493911851902694423924626106166968375887041514406878813176635367418960880191303178826512858521615087258717080912306775596167492706813453977863685958043810629672528243691017598712625800026816188118077037489256545181325829534727322978124573015721315186943906301503490973781566659567761291286033573105857733138236629076805852097338167136090033464784389481003692410898598799046672430572405941767819867769044801625640156010640446183415720290828189131710438346436385719795832709411213968766437295602367642058139451081859630830489504801456774729468462902778579941553504019307984431796812624924440809640543098895002186506245085503990728929775302125189374429805979852131676851741807072553560230844241897651154953638361931225068384986479216251802299098043948676283851139353916457044106271373733220201940605042324417365764636527000868709730954733204059194334830222499051207869537616358846930324915116356932154235123560919600202819377961167315000887600180573228998919131169463750834181829084883350606236797712233667786654242397487595473153274252250478890538597735810113236543800740101514881889581599474924224712764404497772541093299274200076194509440687358167726331157488225179840279745062575476302715477109261641177971783556364299057151571822870844436734709228355946066434589878208682963246303506166577109698433346778298697755821535569867949373569970270217668482332474655528810298753774230393137359076430580179626413448810581825448292509522434376571301683878194935438675854300229071656649952053794851553047055850868624194462340311888445403342728909335043648979191181541178706988201425028613496669092517215563219210188611866578873550314730122703438299577852609645685727949573441020158237689403540895570758141058621172020166703759347467911815290561912768590879058600455593223433459806480413455212199804061456606023920558524769940545890338732039878495329855673012052027860645761545584585561861410652568394674868267609667791403995718165008004815200938737884359777367227750355090455030361121605868122214950175375488833733791870283334847359017567939401414105765602076597935837221979846384467102503125918981531139852372959680037409288181639182702302589458662464381970726816460780082377183362690119233661445002538364662130982568264843756526961558625373847286519266340185329858431200576969868907334913940948881529139031012553685349276545571726324056599297228613712676541930843786846855645346811598028697569230621760707076760915080316956554309316369892733675875162651728384671258313486453346889238132927777833453291739334129581525017746584007843115602802798434307196854768855853269643904324945717250766146700012937275144842455022034859300722149773582472732492577429771621592464008915761832025750764867919298168187229160151894810374781724472366752193845170558006489815410551320387285790902225779723258877829797577107717738646843917630704329268838717158917614593438742962301712274492980849763996080903366131723254018540526305288436576846980377002706712465655195566701186942386515115691267797774977935584456985715530433707590605427852921416465370196993137171865721224158567097326470002094211609448785528443755522930792069274288168438451081094877897239950046390278774296115259354277703892635046839468679120288640593152356073232400069151282108007884115902730005736443331754842578536956903140137743938532695861344834521549297745829077020788113036032506883610041980933494775714154636535672497477801306509770744116986808615815504106927585861756626853799376580894562012400648803848941591645307777368846792553103651678772477768598264191654381458889503817803678123670079795920538234025822540894407028807482713822566240174936395140398311880479270963892184572311117444485623750151268974722317628002165162838370961384295522609447021202905254704511945735511556452669443136416578625170351835673478099611568613580175886582985079185691476330836341356443129151102456348629243062167627672255881513826381777433172949484786697696737869510759602046565211615787601989439614275981364725413103249223916629281467130128683717597080568270623529915855055255075792092032419543822824493225574462972652607240236996637675408968513759222910882839365511335715967432442427488497114837615893093296772660503953391033666985191567714376753749402679715709756182394612435547106937825901964915582005278669836159450067672494014548844347723257017131162329895429277877457025163690204259305922032255015401504885658483939561853754826242369472113159637867170706887751171883902019373305708544102255573230252004946233361233851273934533849934391791654853629033916049338198499959955176385113787613724745196017950970724287201898909230572696710749447770996613571430287736208609091809118927767980435940983583978550766626782950988953177121994350682877608237212681889948321447937330648622019452547360240442862338174461050774689485729556355995165114727302645751954181138718158372077655692888643005703741615095207970862914698479520616744151005781729735933492393018859633559754623440463153761402520693494323706992847543009347878281754890931499557094241965686787994360671487687695957350137452422474283338690852985756635783664350332318919272160782456122082404401061624357947476107040610774893587798670296688337776263934013973207356437306927384790146753277210880871283848224526341006355318327925297518372503440246015450493541473448249741597365929674970208291145869249243833895976654503699796370622453977250557764315874633709170451460189184466289729934122828147945898365860715962966707705752772865502115883836984206566547216056232750651206599843488924823190014552670383100042801283682792816367010745858090783164010226757126211387524904390239997720470727769060585002463634050255254357720856271214445316588045978104871769947209826879506437685120472403747698355601655289578645234282427106819469719964835129739088939478733870762700130564699014913298607401864222997739771053193903746043379445275012929984938706465582111200922358311561338479787765512429475142508861086817159386519530905201826779808030445478808566467423997933552936220996808887341922753184795728732434031096207830615774522738000750855722265404447092013127188089193537987574605275016459988907494919923300886504651924418895341942378729776895500483424506979940088805421646633333160184394002083528499067869948748129785641273290252116611087212201361796610704442309932338514303658732551724405932699084635985643696257641587487730761810720372563477417976404446063809966180049242473644329659445509248251311779357708900299635491273821411732187920995651970884914623516176502914209838300101193418340181167566235187501760526334738180592884217669979891997008022360055356661632281654237287740134618198655012075159417255204401323725487172620793457345844619781454165810893593197700063768215821273326536493499057876958467388462805166892873205672598509333695876480324149279988716227247652035037984794521292518484622272404603664663557458778283868588667117973705817318804100462557869402499781642678673751151231721430471488859821966692289410356446391629710889591207075649861630696791581161072359172050449353324206536220806753844941915353248553127581188313613221164644650763064729840953657012086461684707215856337271277398347474652477350722712905653693227357499273912943264087740609440973627695434796363306017709552392146068884463772659090555873763427045945116223717860443389255528892702495245719933961746298315014186428604182708370116596751094581245215184448199294129246578957485114348537139398102364038217969432507407990451623689596525797580741125841758108215607657846012094122471974697455251595785063536469343702738184122895662249585532864475797916301618756564985656514925306584059144896637237124319005365024478457061971418545504315202680337662140460967256426094090716639923629524425588526834780914680213260375622174356601591376241283455281720362970317270251748925608694121449181430993877555630569827451363842591382021197931936300287924094401691902046139641396010245531667727135026316217382480165107564809580048831335781505909270101349252345856184354167699216914795754237431295326258723359943439223751532739206210298315205746890021764843396590376392638621718629058799713899460531822758095015327600694765030918375195086194034695587813388716669598557660084829767958312655891157583065859730629624567749369928966135242078232148603820439153799651538616410049130117251734639704129204495303417438979174217374294827924820147750895269043157088891775272964051091860154091194309930798293291276304416319678809827466523012578671635232553410352818743233690716716301503695064522456630902927606505691616281000296010573976617076141459952891058321159642797913544570956379478148573687179622881431428701003396935332535395117039909648510319634993470075443508183764143008020034458398484668453142044954839975067097012958925666286402507873475562367367543705111496525751279249827447655434453531272464901879994701742790093810956021234505083110785473952771984755287129307583086554958011068206136567936197691818338782541979423275705061013175441542982582553834221537585774626250010517261498592315595691083126966331905756617913088626425758961595468429624177416908023399690138057798557092150969533950433651289087535581315240385497079797441923756262965940470804206657524048395685938809306485209448484711723304967610042469475699838655972883282755022560043466807590285593343674150386611345608470745454406189020657825849667915963276743641273942426994448596405399784412708950017081187642024961153917270330927560704943493745988079135615378897983507395998131316516273244104725353559405469045848506819610441054735353232303972326698479116654941649318990878066169218174345316472539792520387488357687163791545405799450563795793778528169991761160157938482264516183691368711477449760570903286980878751364197850999967422035663494124004855453627852382421473594424924992455887280213029685343009218748530334312428193420890071755368759564595041396278913744034815139294887420008497464334572695989501866809260941792762469631646234569779014082082916628898630023489769654534403365603657207705291722297502742189941781705725280759158617795665083660019541362868859882141186464645606449792092157799135120672179054265868222706439475792779716498302915657188166945892079762941431548915558078139643509983489436007377750857907721104946720851239495283988108763621956825410661849446163507805295095206065767237656325903868138936665211888039574473683085881898799087478712191556353723220130998810894449001837309136492815639567257125103444702622703305893523729586276774421488775546290250484759950831433226181911948340922289716588017400168440230612572833953164289854912095921221534562551466688386851410698405105554254595733311192845853211832178053866881530997428939182446209803374482579614125033219732059793962655782393226911689963966329557475773994156750947655832323197141921937612777478667724013078634078446968408846385211950518671132219163431522229266742900514036762091651274936981018569185732344514466811437379597753222246371682572602110461796147949135582428289884904501107515377129199811458972044288037714781517802631032972052195365377584351699496957213121760740320781264555636697439699802410989354969789000056230692443582043925388247122421148123038989503186727978041237583022937264913076324719826462304049381088239085679916229670222364383720429196334421409366757768869945959168486019767895330218087371116134250716643282325964715712788892260691865408358562356089965333818050050914519317065937348154325887018205882279397751362271916983810739323317240772821057383769144513472154935374044934854712422087664459614734165738567697280139447538902910053741844988967508809382030650596893215469954155818060672343747530333294347225093707849077314378612723231643178958849601070365202998527059569055419780907369559351460038436684281912268731417121219241506822961516869103544641335402338184613923141807995960208747019463616554807291911942813636116420739456356704020774691012607988603800313775797486409446524350953915234334609273780144624409312433910988238450323149315180980695902850795386937174869097498104019727631391454136367159398556950886095257752721171825832073126965430750664149138509925581615073012731491822709139111421885582497002411222359894659801389178342410132153089629370191902276548602536671020787048681050070820998771210893020904326583252025893604740030509801195133360765547003854632291982389786103186094867192130921014765168178417094103648041070686936741439945348201007579598424611885277333064618795411473132735500535132416177589698454063820360892277708959781124719480164390207994882760462572663803598171061301376580960359808490073476838025368173555682390197748369289109310816402134479544972176280459229671121008140880209806140209161495706273075338931620529795094477694972748722010448609548478326524673292038123276235376171483824478510529332311086981921342156828998463763999701243127684598770725678820322731872734862231928666138426948278501560402304380695125109421344419322236718802498025775548171589155590081235125716101125925852854381623216280226256620520562933386021209265197859443810730975915998455666200211025139317093619152868571652740336560848031505225558565817570967376669812588112861299814831054141573677351735240051514419316490720724020519550765791360617086862925342637128014049114786116975869219405851749216682732359171878965474177016361765559863554812130520645750829351867462019235058521058015775171106981121134349689288184636003198970552507588904311671101005972353384266748879601091896650197571131389540558033976594790272826709930193976969313726785913661663173371547984120239613332998005611557919386617954201669133010581856911149876644133142174631831351069061843668343185250993672684278232371221024553027657424890540406621622642431562910551462185231683709296901632854227697556690003250066442826688633981171734175149391507813124747175461174829104858020766285918122351789760537792090941530032775041477905089713244646493122738525547280448209554984633570647243673807647887793419502557623167594484920931907885487964188943102102661059460133804843983351479732701532103834144955115917202871303973649902363036659925640433203606388816172090817421310227916586855686534530560062034543340382416800356374028254853777336697184838320304243683778844652703417600507775432930491296332815347741934875601219183220745170303556841640448591602526241437585453593277205365730750651888352473193628837363799178982940003975999917964253533945541454453749369789449882277101559701116683906916457301088573829994747061658917003727948249982417632402912759094104981335149237620580724498533462573523761841104032331785410916097396743293365672672669873867811370206799794611649681801929082770352595681359719402636861785984037106722573344387196363770459872025750612969968069374757150042049263988818909628217773669570375494430063805149785214193206334863703430304922442239017985471578008232905944695509000106525054785683375428379395352675602301034275943031988248436366082950257778699730708452995168857846617242148275080977297028364705821109843416719866377872270059944523109310464902779186426544927451374210154970457104097640385337957219095710131256106722733681970083033228851783732892206924708092423592053098625394035708908589448438319989141182239229972926146255374223555910165661918190261420707189164255095908570504033783994478945865900181481563109095074168757827038537147154052541183488142595874684061885877214559405223879571069008531989231467508460744570726577423828521602118774175964422734761660193257406005073592879285364433871703421276333638255815867626680258999237249377613593889714327447999600428215761973695564292828523015719857884163052377512181428871131035307623330870371371444614437684960967293803254236073500078113199632989348589091182280647333613748102105670650561096787781921788276555313553866978531325066568136155313650131459098812132851718100505215801510076392947406846080148299540147186124871670707614572088960884018479141821208720263597944559442729144789629813262587418234923350814571201016481113849660038707244305594277017801226423711414566057891482473679208105032552437917034216622819885576834181221511079653313340158690173463619262841427827303258410504650115646199555922805244740873959503760353138416769108902115864754333792210360542137611961475824441332788859406753926047902084686747385669733871232257159775952216759835863108467518796391956646665344912405160007645235685451519153441562845887096115761313289590962206364094094951139724761058918182786175799641732019959428810375683825915193208593562335419522472179655273896512228368313587087203452006090040768702410462596839171756265157049996179720034187787904126538562264807086248542959657757516065292468447886504715154833833612243665468466805091215379212856920935903802263540219836352717368867675004442202200018769050176937365499395483415546330377481830427489163103414521184104002466635131288036390663269358909738380955156915410780631473410025081793443645328533242314207474606774793396979591490645385914615825629099012756149093475977199145043164576173882319084042064849102854417532140843504109038537129033973671387962292609883090104599051919925696679311192659252637625689636280864202764228721947501752170819123165820391602762739096953341043261989317036585789196826847989235962103227960650288759659763232923807579674096763931323691867968232515365329931980353787133298974890856701850459782105679063896564896203803934644585292561445138670769669010188319669659794491037462220557772197204214753498748822000648743796649700703045034942798345309214733105273914928999298429558812555340251501515374674248651029722203131904031313888257117411232129342369644109400177343987646914802440709976967550290589362735904840990474069048408571512831392569069696969114603042554409979354864139209691929929240759936723279817703845403435915830233316126280208616749887766767937435987008130338079682560752602425211600115785996168331165213767756232420514307850444607932264165567513265025795445869466465640338167763344831261880836141185194318302075509918248080336475124043497712197283472639083442480825629237315042840784814891303718382884690316381026132416655596171207874677242123091586067546186230368618643497637610059860043155772419774977869804973085590807874836271330575836054608820455267771829681707663983179684006269952743280986886056324691019412060077599055814863721595640923054378956412009618022548865841842444845652432753610578489874200626991929937602871035468722591490171018990446684415319557399703476325394923032403049450695933784228749913619230462267945394554316162867580143847949485534806418123856002396525736661196860386640200055995621452244247777361855537188442636024979700152477919817867203168295687655578365178406595113193110978642154828769115302419325723218435357986647700732044894174253345185325063809066308870230316324602887865576183287410734278628692494588147978120217703842275598624107395706476442183271548161441146262879660759151974118870914340560311946935466686190332484878552468019165357532748039423184946617884757787457621535382849003420981479986721441697707547609261609017833033533563887984606463503473543981117519512731935275038255539086456737804202584493102416111053409794057428040804091486563830846044354436544201912949257170984739685980739777876065622102968357108101417903646298593135499842094982863350760638531978294214662821951128286357096043778320954575275435894201937893194705479560386934773041662955496263823815613443622161431149409708955824740031396973544729471219213474770972267880901894599138255905176354737809441218433978083398468042710099914949068168487363707451031079606194848001150576829626141940104828638751454380608040173510286093058349554099899088823566710342827705921908386029625960337333020170952615088289560706794393082004954109576922237771329475314037954059272263065827155666646167835838639814493914395221729936846099597289139308068151748619206507850695993058081325979225820085657213185947455380293801176705018396513755242484096003738064241765813744839453979263209382999454023165738085903105635122006532950937780358676893175064668194160561887541464237138931988766291928037141159007207973491209548615859082701062170001624276590984923357656813252298153614640258186040026049139875306318251861068298028491317221262075524597201520279304641100673238593565740871989213339692149907740094178406788631359332906079842111007149802277742366848899519634654882217782703198823303553446990592770960591651899932218833878675512766881900705597024992026872509607660753495179585088631376818484465073908468907187389665472887939167453563182006567536073824699296357525354050037296612058385028607526341364552513154650977530030735848891707638742626664310289874910751613382619371994160091915720916395727836315106623945934869664934403622387304910405861419142230350615285454838585053153031057066981660306158939806331769004584853594727858012263284464524738541775235641470566726761524367965696164193634754345846304762693117236258887840075795119632477239109761211409160993390251946268838706033385171287247573758315595669177245250587811627805518966607574680991862940103754851275964075648425547095816091909896229764790594719647897318459941536654057317695540763998869146311318403678702085490822007157790811641830368141729577893669125740074882951499348342290023586798819787467321026038620156173058095116571754508781503883125773105514717042250618129801898374827318770699370615888500714417181922191594337521116550468718398995020725438115485907356090414228588910552934651544882409755929429990181817773081432710570907846241507084198444786481396012563919498992503662653670309107398723952336939320263313314223749998994184706493916003154276876288155059939256342106351855990670308613478501711094875128796432107883359881836777757730197484488735748075003500115434166092676743064994753976112661756685509672427734944565623602719484086993357636904166373261795603578044349718841628664581611716537410630101100232834719208300504804779913914223246389275402575772549405783521298873029407537215592091693083054186893541411573633060042787877333392872577762423357292775154340281718677357466926927129893478573560566051196439969120685082041449185242989970175636778910292901392212627990733659323284848093629464429350947248109246018757551602504755445195749395096950546984151464875798391127403668045298914998341593862741513746521792001143474511235910139555682384469892376182408460122192335303017522426590178734521380031102332020216060793477732633328590460362113337589466897937616051829221989174790143447967320040204199006379246542908175362591257770913647534759241568127179743348060546921984427915385940613513403111689200208392130642173576275159555078771680556485603582691781375231802237331529821496747217108374414966047255691808348096993914743717444746792252043184841825450382208964727826535070889320172414250610249691955100459879806988207217013266699025740645988459724223329587622424872238194259508985396747016771761572665543462681810659715826682712553081882124167686478349359933741514774285719817371275913608546269616101699337894912433149295799180576851828155842850929990746439579441562394263794914614278790473598205561992296723877930350575427114294801246811160994399465277743248095871306041045958717636239082602055823585790821715191697717174345476390358287796028174557281652399499311972951815160824308565146731731620725786688118688527925596390644526106255529060651391159934521900480260158814893383316821775029409305314536426718271813811096912180499580732397297029937597244682259775404042604807169501140524107140353798233526288620460282016580465610085262008548289379724788894532075447252331314782135019245956432242319263249139744244670390323713647021315746295668550997360481513669323972131992787466024803087865460603550046426886856321772839017394474173434900141651841377329096648398371321551081451421772769628019930112853815399416026188384536503878018685486235537530384533991689852799620033608140355688129680756672967585810345463970328362022680487670025171307321000378214913524771254665658168025710266117384847856314992731382376217437041049582235672420633392050737247221855834129692714778600720217373195407667585349385155714538882468443946626123856196006502888454870975699470944481515765809173566472548887237528279375080075675882336927234659578217254955711711748468270963183476580087303501796332072535960207063782770660936331389533857308961508553827264237435942164852867041464745286316460488677346263655732228642699323537463711423559796957161670201159591401810311802880446343408611396548492926961615446367091171522699696342689674707332751775015847046761613579816834320810010471557769872198919289922367837143916096602551549160649863260791485951055451927839472162791027197589054387958551793423405904058766870765691964517548300622911688093538018642349616508210000877134062186097026465703360041435888805099735421652544476160839551883170159336558830205325215894992330699722604839200325248850789583226899485362332855135956535518681418342993956241617385002074702836201882714651028662807011181636918510151361027834031860939945338071087383082523548286503040176224901344704957027531458667179414297521550412404096429091796186877777217253296385108590999527448028158997547386102140741503512637186272904038523745831407896475059460357363421942755199951741232512215942533035618084337339385492426496592626803726868701291121246796538512624115273290946988632950981880375637843980445407103541285622163856038761002207104703391286786106430769203410753165243616131341470542635426856716872186644132286359894956961739045044000978398655253411207589811734396318213547150008452594832316045948714339141317643224501174950337052259335907362294749855583285767767259444415972269970305734284482468726259629681723816718076599887430476992883374655375653075471734993061128928315946998829704891607744296374156074299609454426617227162500141924590571925334967064191675854565716731184515855180870148832745850385820311434158030356938747086563044892487754226263939120873076500204184523455448911433582874181591964507204671446426854389189086099982837117712570201991445066511186507707342614526642540565669758505586357295084728367363131436721153064385165036841865875021096198592519359064636899014190390718466035074685183388676953751331474373987284259455719102027913723293824494905104839307442870340185090584797535161996646666796091923451367562438432637068638863981911310951608505728535342385087691621748738288345767966345111924549404075165201746232992563364950375280875293447045735091590802404643242486248938313286496486954585058011415511592211368529310447080546475843839445465936187649897635142129780996579569333166321480560008015792783775324184978699644442218437946834073183503219841330407614848657464041115267107003855914190271490364522986119080563186166415979986059581001069221942132054629990590117913887793686096873553847357889906139564892421231548883113762881753889449070374443983559149915972370388442207502143911668762874369233118887156169154601901149235142529269687769648398519104850753698884152142288577765107457384132872896312350741385090519285419895229302598288640663359695342846305930888394407124000579157092729572660387119887738333148303578277305018870875941187373292234750049027055611183245172722714300389847315985281070980574557690075991461465690889230537893967135059598136439791693340266134268187903739252835608239471293624472783856841386998950918338946179041840387449704077226387087304518441749112159950994640398955260294663586010135683031732100157615056299546375235603285532505533149119030907472496409842576702556852666194005137983350965230394826627754017730554301823699159909712025903683475548222674403260212325643603002859058714656537299006169349339003448439409207566154822300824175782347149289154705568465344123412429184732711467961143789473757321956633232669352138211702822178925376386683314797842924136189304543691181140388092265010582381408406867019938684093786957750255488655468901516584616061293500906326717073138221083342147552939436325487859061196439238871348707955282324920464936677691083153109077774256417841791732460705055710350801366182987279934168138885116857426879729868074792816873218951465988379693505112037032125776196317080956932355867134843698750666806586918991329329384207262327894282786806603334955477556541307939209509873826618949130902907112643573978573371166842993646300459999872019449641363739247037483059357507160477378772445487871584366412675615179502370659213743052223073598813797719955395011899015139134008028732014722260114209815850611005207707944681616135067922054090836635169436629706315700683355673204384108909687545779380613558470721270305961587142154847309271545802040395161989408972740267645859931235515739748489172995748116846658207271057429306583920325311630000879865733728024785118190302651015321463406422163435033334457117814913533364799206455714362677485366387676534617282762432990711716273468589550821199228894035423666105104293431747434209165327011554953708651340350457541947461618371820213400685788500311728657067750861592022544778734846641095954782152310149774842912795781965773135382282061585937512183287744954747860473818397868691244710762311330546828224581819301218560282533250735631469008790985640455429128000823470549771088815010080781204816380770847278215198973463687201447257756108718415785914382150716037136548603390610519927768016943991311952537527975946132860487064210411983834485846864347626468600005173425862032734906906890185902400777487819005981625154230161231059564318832738839271456579969515695913438162758287739395624091429946717553636873477780068476499099445779663944298587706244880721015928992687468090347115354829747923892079886350854789972423066173722132625781471495259192292540611204565028934297414112353491990771113516546629091380486159162027476266241497049433342861815519460500272145693254942390238165170676814639576702925130563367564610827770879604417102993277956483423503234057074574771207873107991478718017197602137092608301551915062640869673971757064979420000952087196271317567881446656033125487283853126188505372424675271175386935106143577288316885069789114838189968198872431418225675995494946236662649367735428341475593939351985692873101162943832306425727366256403658118550652965977664528522194230421161727152422090863647261945026699402429508222647619135468144789034044577522247373551713777037139908835681705581208669776698487978061435035873332832356601714888949784380879195070370695860814270463932129263555840947110459524962574031921981738341199580472300181217366413092250030318960090757393821758819746422652926295096524526275843085295376681757640978080953882791115503246695345065713199369948199984141683333347156214124556237181772823759440902780975194454980043147481438465528046725591255585860491100990954892900629036339596080756365985333265646525535140979341135724260324770939645022827907565669229948432575988972798808925067432534045034467701555420299430343745772809924100191130196408628650184806362795743975617465907934244891024218616050431043383549824619901631612130864118294794927842715582560328908511148208256329283122067684993701304985355203445499958692654186751009082113991518835090222056005272748322153696404174296163520418274620429881783788119110049656280109771223294170540072950418765190011564430167436320489731617854925188527722549228730731265202684411069737556736982282416894473378607149732376405032758144936834765899918318032720631771106662139213250623338492056701076740690155616073666331656495192202957020973535036700875220798526984038351673193490115130693351830584447298756980097839429458500413559729654808429595480416108734323491308850859097837609268117547399977899581442649882397840229867526777131541099288926378605455628504518696078572380814377228896644898509436900858522269485547075606735007757011682550347278339745639890261159596655063308948334482028809460215689517984921887081167711576401047862389405383923868196354895451054360908765059395635103130314459048275626639889155805326767105671056231630111663526189660242435562423678812008767530366609987755739603069163896387984849841724631056200563293282917361184431860519872619754154710399430250515499814743473157227426797608292880975563824564310322197849553967954831888045116098382704797394022706634946128087309591460223080783100330973276260466896100182002889847034518722309207119751267650917369792190470565956146116197308332332769692382899783796497233925406983580413684004830196513835597097795263839360999985128454211928525740771260858321019875861774924735030927351971059885437009808551004852667740199597462711042335076571873094569711557568222652124132979286776753368907886380377716936362011478184138701426381113047264695430278144173103949362016405474619175985130118619060401219707689155428359609917355815445821515193012506666575915670710343484807349639364415354211835897687044271841093147799533900434293604974497268724935378727122958240096898633779820910914739014092918233096973320195038427015114239299701905937105738783588306813395424524164630493020606343802417093524572669610639586809140057103033219490504409861185153249379293767288453927811872425213638826614012093093246506840884313157322100714647230333465431091456799016655184990612461580746520832870135689692052625244471684967504739233554359707837494261719237738368888207035001010033227831248830389352713136739746733730013274071808483853668467921818367115419042930820042920753519311155649357095145418318265292248359689476583830006479044568190353748128576757517433152523316350003665195228557230154128986831946191439797932503136661718621886898475037964173694576232626164253285931402285838099901135522794734411237085335575662600686568189599711530462064026429195712550523572735470137883824090143839922795941626538623941398067292605048566653293358020925797684133749412725973325809323254011930769375913464751985055367064339170165218171214915938424581365975772882738836549548993169886896603205725006653484486491703426924523769973862300338963246767821254954941720866258614009636543485052787503677863567118235825019644858802846642599256986112476410761856630180739185480773566117349274368288240989315594108083860193184737237956730692097479135240147767797317664686024741107964929000592468267780931820682152941735055400873046278102659687502340199684799918730282079054326580376963189399214203505178988421395226909913208897810495419836754970418274895845726052460353979195034623461384624053085378886016616222633374841461114522775614494697283392534839978853835323611561653006816248042015245408032735690208165907330895713162338120164543864217036157235060848323784716291934925411011825623760014046361054064974705297349078417241809970652056554393070260038828080456142065589589239228254036661591739238510782771440810251632876835074301464272613545348543852713474209300436913517561510541758340297252146278985343101843363838080187091855240390376679564822581377857660078555509396080977967726663948055213511694685812231713070184446351534373701258131670219294843012145685364492971829919086527929760785920685645293383203721709892002566173360301108034763302463429153998224919786697043689534181079097537999338213050282435395867735079721042713219282461525904740957588838082678865891624404788783091136317587510926685154641302341802454871598096569572568836075779697049800811511224278941262473858010994967321442511190340678063917484873197333493875912217980058515398530334334557188008987476635939908438103682750669428612780169275872417739523404663156977936031342470282234558737628896900495137077874575615153391805461706335054528840585406987928897298847581936639229868243858467305922873612764130343025630810142941445993947464013966567212464105367857671247685210860880974851645905720992069711297748401577834045890184476836484126377348752825443153266183035461745514809954789844067779932558258496602565202830982889582858173691221082967725124157574227012494231212535981973738892328837174518234863654752321624852732539255538780234777863537366746366811818790291365808550181730131980038811188159391682401508621264698006958613238392773837434489533249800734284585002125448952875206540916431204921527588327015754370747112591066911943419901484449934930944755140819223007580537268746107012674446992820387643714982513035112730955906179153504032162907865414243834913576778352413200997853312591732617614738116402264687439120725340424346182032938416481663965906818791446799414185684170856444813540445987887354839121052505205607882582400096999104769446022363757505929858801627730892811914157900214446035146977947672931952125123671321655365063857484056690693350144919895134711270490706512051519560146056525612702335024632091970555471177602028016027980355141676538334260376344335458884209047416264284996368778429571928361031504016177548171138326732092750949730997127462995155504145576628652130917516203179176944542145254803489009272923848105645118535632485329772408692590859131693453347456000714294466852293961990190226263434755852037586485928921921990533182753697364231338120166441479726449522574545619542344832241167700929165091556889918653731637420886449547262368127876068348174530115710641208578251653593984764034851639340414440557762488781955639532063281719027782529970285702572752977335274005876478690948911808773539133082657470079785615424510225221395365787342891809926796083276319443256776122844749209636790588036634016354127018234664610028058638833391948997295368510014397877327511600105959690443537953331822498562305598899337014891648259539143932418898950326861910687420691998170949476037605820439256036506834015921456381129760514212527570732058312685079234568177181879730588202716174409884476672002640002651727048327619010133761846360523017076106268203773551597268282269092639829616960536527583398160363678461772112089267099167444276706513049098457817104853468077421149462174054658657556691732076135671885063260844641221354827317621882044779047576962532088012860445646304132641738829093838380833816124176929384473576525054201140922727557664860390224030159724084781469327452631316167404163370520600724260904791817374640563124817511166940934346887735236263488990232637902839445633164936641613141727275296207389929084610751415995228729352189910622555047429509100344415212968518590758253325471548068507647427040507777759879445360379641629485474248595783294204104027962387622067996482391912013080397258641175636069403219481963433958242765034697509310996843642151787376455322668910562091839615666657455175709272244682114013324924116253778024202236527358100664360592003926964892002171594371800528634759629518465644737223206673949266736147869085354959262987424389317092589814238588584556382632313420510767022554547636331325184834706772396280574376013230134196644874131226353127861079694134077155969572825240279625018871378059221069552893572726851747880854685122607247107124829534354014713084631519037529043971841561910775135760425313330914438704169091196104680127771994461041719750166564548959867908407132647595376971481550738868353057746147361912039989931374853651522134823586554417020844451119722798155021081399611446501183762763626131846634551417913460242884482234415530021962698897533014887772884646703115512949376253961772692199386790787858189383069144013727719649317408903837169036885100567543348658029805909465643336358126128891129887586251204626562264687822725554339406585910387901338604641278141099668819056685097968819951258371998199983436238065928976164568403430442377868926050418403448207503447323595101766475084179088284596100555677617774774988382061264415417377751504119345015808596500037650250055909586429146275191503578500207153875882578896934706919146007819565717185635603789191477061441065683429216146963016560929280997542743594709007646446856663082295069351897438485730504293872724038700418685785595517396059895313142116544235267185319401504174650368590797387246250927669231709587044061813287020035961424108740266029272142207912855654163741356824270684713150581546463594628843712252146197491894243690476893795028499945085395704165977982601743251504876761728558732594954178562886802030834196683726526033058844528030459978452004182609067828257528266741473298619251526260708016841523695178986464037744788086453626008057716226891729075457931864316630357786691976167253444408070691731675906778433306115561187113205915194085803709591029856461614048601321913750221015175522134759328735895257805398551662580703079784257166291219160168068599652181149317164911932526324673871346329433355390761630564728027225383599682868379976815500649344087067907873965768177560658448261499733435522921253960479836683067057922483133314014081904653684118624483234975899108886194804335929682618489013884662376892790538874206097590062879342011619143770873640549504263714074051368040017601321982247943764381279498482550934645367433994903076372368263204670118400020548473008136608880910540892073777470483050776713066996670039755858900411996284381979793017147955405670761996105312018253866033114371066990567807294501069881006720258987959611171066478592862582723992435279154121198183505148775331736777033097893302443272587224129102520698065320677710420085468062559344896375688234072930976487007764189722740347244695294045050834886237847793249438812458886120781625039495541775351063946345735309916867751322391991735458012472964665710328627167619732732661886245859212581351267677239778634313419046800667371263804138989949056063108887880656105362990360935979984139051518570916202199055497254676521762112764458365620829890097917068552011165741582824151301429720245794893480741576272180321637575028989660606387788591208953571994098626919245108773572678174723930167058071230951007388171439719685149644156243588479301518262677034296250980551155760100061327502035043687529701420083759808984752172388698260704334115623048215776995618341746603116722921329676751081146270043858412005807324193475512847306670037209753282015197300542920754670579708330552688813525835465931572335659987019813393084631127298931620239501457980833136327621953656669947929859720823670809603623166266009126622795070194029157173390421851546152712139424911185799439406487221327358023826761537204631111768290207015926719999680753164332253578758602117167780461003107037465309680806807424036352104445204865096532146437335064566025708821988974159704400542919187967575042101305134874911967504039079676322501938908459942419378447463069888370952426399930682571829193023264583145131550628778514641103296463499264110349473109635982490649158010788426559249326555377487963923467927027954156682447050147826182107248929182730149735909329198549395972887432782605703993249487276818128457740723802676147089840811860893988149719420671082948081384997717432904793163529669497764311313285277542627939327547191424280148087448272693432586370160119056012126414637994134563922140224474055697135441720575208575748262116163454117345244412123676626375895503232818191201981757921580601199392745191874465601926914793890216491771495410525639511101027727171082420796722538044260042288552244385772196805653888908428549586255851856174999607505672264146021195949452577502477738637713840943757457191107712428879475035658146180295578985466110353850306470429384809997132598805605874879535382949033362893727204499866129624768977688866331074557451618867124403597593474625462742615172933223185736165315548560738711585567126042771983906306556441369367572781596606019884037928641279416605505292479233936142612028409050592344940430282181003813720996096547647047061814361175946854860822230286261386696983042685176842536846214268226713460370917915714497019965403625544116399451749842904482810768992286698928954106271849022680285726404479169702940573952632458798842192051094210615661038665544106323470429732047683249796427285696107306463595456103651480139046555203403584607016479611587411510748259912151547404630215332283518360729018862011416039312281016487699273011225862475171280767374614422897349544032226969931666365854179091883852940658290424062822661980214171606562009161151089078812424450332234284747695322505940819432529627435071046407327863988466054460943397443262874130658889427150255601687368707918419708697614298516940219329716504722725812113624237697087949674329763537458999675635843525235059978451801319892887316784199571144517532015763338284318243398141727087338354682404709005784095462503086526100636910911663118037237701862483572302908893398614500652881422848110515318358791207215035413024091601678889312198109219471805289383176985199971308613546731428346749334930770197013764640662319981870759371613976479811671195290837044241817258079270601352360864148852843787492644134964461857988701280815637850489616485655507561154821407194414461560493150572941149458348301022360602287316589377437708991889365786745931963163276496327398942523933966961861903454835125110889915587584982836016733520934384770567328085243857823467060416863230735392550968305829268159303646395311589503895140497951180517154561416338074770166287852325020371646856464371288127153044578314828179882359007867941320736401054248821781396124892633999830230439589383704968255246633764908445684930305844412038210456730374114366651151975211099108621661725003479186511533582621385392764958132606387296971378299202081013962003957322352326217446691949881418035425315780142087532916146445638873850477652850208280618889320793349497999188319532440437644691617605954209058023070737327574189449135919254869590380231216189476720785320021148234812828883179958618959787647006494472820936974946500419538305098724538889400908153594666450471477547937049313995057182072774584782062601787059524107913330233551339990856435257508482048127365558033144809930456060721645252020150814962964802353726174311643166201447660760568793552629414762220765976816310524890082402100450082707557506616522627042426033418274637111051418065251628429697514292268982723053235156243010585613973434560745444227833154453399842453725041381564576362201774584665951942361341547134608351976651748614653609081123876153746329175999141761422354424512221829063084925933942314039590343119443565547344255655203951733720855747301523784081377776413599407714883814775545028035821262112187475554878677945012845567783541579414566523183385666288387709400438193884652827377337028517850697914640125817100580594128474508122305433841883793591788298998878976969626489872348542145136168697370109985803219077701787020600502452304844194957973077677196013909193557252960033490845504899086243526937391693146847020205905345103451115271299143909554110778040707463140553382503962145917705192651486269197824795526065868433748878918130145346472306420132481960757761578282100581926408781269643884520843727639584464320215671467683094335181544495196451854462637659990220446042692028134377843168907614790334436164251957000002930009188773286102486656702902358215025697579896397332596147983931932285750294306517809537464818499115700583861169091938246412686546341969872573348491114161814292999439243473881805403786019681223204118868776962747058525388301251759817761497701134728862403958244410843029157600170582626556750229635387190322032018322352460006089270227026474222777430378539103363509358624488673742205040170994993337560038712095346337169315010805659084984986814888814330468349089420600898761432761424693643915196610394156081546313825775826470038463317247002677869148351789593370503188448910893917323639373885229060499558778862282990061258368519914766254496221855961285945703443256313216026890292966075819033205681401532284725659051948207997295841036301480819682653261300359188371732597739084930075427381464438259773140393318034563416862707352815132528648445555454418939052886455867864443471115051070026905438922538052711953723115750543999488013065287033980606446840517986979446033076255409645002321641034992158696118268761746555800418254814600912988549228876871876728228651207576488243477815711913760039600432458036771735228892094549184158626001723930297466748453758635433153247826084246230972477369601634880511148221835697658913971880989240003457503950439059895925326581814514000253406383914849369518336423992720796744068062399268997502802884894913580898138623193992243509465905497431379146156552643081243662045450174420662900903068563407388624727711803123443946214518404568714166245181819139991644599711208483264374018450022338318474479328847425006850759853622941382169976399861541299522399488969513905035918974493071627184002031521445018662074920002530387306615404805056240725133637049992484891318154530129979961665420407689059969669399950219333738185884627424373590512174697698416325118303614153815950380341915685226809815366511533623819872836922034360117744877196566492190604341074577578488341564483937043770708740929375752864129913715639383229573453113900394890745469955173865713169178574631268697682675808860866944165581233534453416766540866240510324454321607379899816659136754350066486516975947382338399506036513168970294359214841895591540777619709588587664644694785114644440130362493821325429169935463659118992058076243219495997337367177422157711699613946720960920831705128904495338638521602626073220662458860098891145147482529557259158783093771791437385123842413595867831951136856060639366258806394942631015487734847092612081123851594483664152390830644254083658536882787939184916630375979799605039973877592827303914392757181064110198815242173580689941916096187169453666221506464454010415388784321641914865444124234583393837425849545480546863007103516250579708812477846936918893637507089261669630679118020139150968401662457799080554312359809566985509759341522377927408856778125047469247433228002220913049545384155641840775132317964443922610863221847416085712122671222193878806410192447688419331344487888397725499441192736385625967906774104391381533982575094156670952495910939017157267871288632502141324962345590521517812255051942539406067724235279345531725750767031653882278984507573543943805369836888457799933647707789151964413973362189281198410071586620624873724485646208438320754264509618676658382097762502805697879256312167632000549522533628911235682506073217198228723320649270037647617295390329342401442749042779277337875208175791411442459391791575959975483608827050135926208978296534827900173425050856649050133501574644652598884287109220812256686436663229249503737924868859918428800227341340151361150629031204699790493390994994378793531472691435956620047718229202712138555362277486435465349096756582244288523365380914665547155355314421585342745402938650360792078808537774578202974427810897998739401777699240653272526298435661937899639747630159942121051159318830335107143958749024118448708605284307052468239024039970182117831552346538043052718238781831702032635838677949898910806184519454921742672000241915964693769948672947627006673768446537240431886004948583501830105046601545600101756946182502385725831143201762417011308090475770473324818004490065312570434950329038160148318560092871716342465462807496795346278704831174804030251516169965942309827155221418741387389409790215776020785419619385654797266910817899603783852752581609994023695257709892865779126821777208444803100112803756853892972185533833576592669900204232004532532393222729521373374724469630561972044248018284233805249862395491108510339321961016397323537981913512621725636826299749520143945409991280686631431685893977385545733720272461252652716702454976955576092304831869309897823750042495505433080401015048692797029597458874548070828137932130938461747936908448519792163608771375930511385056664662111104412018193043604982809545764653848035440158700854063644713559985032729836430322582688227889870852969392328724551457648508565451769949927413588327654413622884987245340572806807597298573247145291309757539059718565514105501201511015646475952237075717563235062337846538259002453547222794119844257916196544694555044059687114751828265904744917388632699632705163677787316273381312001732186346138038146813851484470048047517488522922950359029448466985020307929810687258413368941538405011972776436588242261739632257741288506094884170167287617197282170962299210874140402241034643664291366313020377640475897872172021995945638342260097157583247170578997202503454481818111781307925274440697301686747862270942010288316839763516435826671705161460038582180390892254690107763402189661336661913455754683054285130069954587443855405848319630062683995504922569622763847714388012490027591998607290059665607588157851359987257174387340942112132603066647772517582453951623586712517277421901718234656501463146704811595001627277134528437364248209567440871198125958502252715793034933879165290256013170734094201865084725628131182012030653383030794835573158277201942714634632393133667602292844341459896932510467764012913070769869499156829157931693801986569751973346652883303596898533117165861037609003527455762722725291107044337007472069471224488490989110000358287263206088460684738873298906504819850194234037922316497963538979374693325913219645745439546480336769428855503360319745209273398393770132402836550749461023083680398437872704873389807604460188781550484025944286920284448339415196754775577122849543791465621483503610175602478483550800397353455212086931209842952796475246850152598514597506476865759763961232210070683718843327028326433554110254936151212087096149987671022596914575298429784076555360710620523668688736801367783101444768860374099471471947693991387615675521568619730392293587929603682718916066131413387610475141348829468387050934291889860462428923142470071495645314733083506317739073344567903477032222774484674710658822121212484154510280484282087571741885036176666114187696107782051696702602606120367360374232335133786551320787591611907081916890342436886728235904108391883241023993125984239219212900757804038848989384969729513779687820795934993201528257740567183997686418087601316711096265795291665569767702069968835203058909941787096356851454900165290801877501341285451878409335481223197096479684025930179629088721052819141270669343919049172068196030761370642448089901053885740638272528027781633853975575990989574389362218296958646642135857428149006027602862429196579790157760452878406845269732775805689338646276675987659621362015057530474196150098559756442538441221767589434556394508426455490914053778102295858054110559993341082506856978294926957174829997358563796846551675796312849521809868428790305036285561020041532468392834769281486777797938728444495783079285819871663744281750914948683443556593936945976659660005990460252943844581210100472696740181675196587938958481596806100282568358550413718347521524529514726847512415428724761112842360996178453526422767074813207243361727608371360261412721245251448966809118324735633217480853672114658397119904731248940006872328923589638624534192158324703574701137715422691933447434257381919093283948185277303791221547219068408794419183340945039826356581225548689239467628267134488842637288403488284689526428072050940598998952143522735427057570469939719130198466241402137871268194823167188280561180921076606492602417711993832098263616150588158822926966752804533714449298297982874776467213001849621935381836772439373383899466372935888184492319885685276706527222041618543585764908054022511511924718409080964934194484327123802959914230851123499357045041608566141006651886944263841765534531602516748278992883769212359498512743657832507883877649119952356851985623351442583107251413325180410043397372338463623180121210855882575359799889065081811188081153475715462151180032705260271649443104089644034312438786971990465233352295548039122478092823796099377069423024344391303626724244140221934148864700943538426577308638084013560197056553075830170872326078734829231639966211136249614294080028627331240361543905046446079192251493130244245609998696737242481910336328638927186967700552220739896058951825891580980583784893222110726774983953707656917445101102453666920365114776957007085954365890979452582160030113045286707478909028188169328944768149202862640538833875818316332206746044910749221209514224475463910940758027199201980862225714152641113455803776608349374739003609276008800035318924696102208238965992527618269825057015396713193747711958613342416010909618943242183109995009719526377953386509968397020127430060791450175414048766195950541597246402531157099340453445657444748904074951899372460523868801106188691273622873102607776996017390384092878461141026554361614304744108350181761494937231859360464583600464939036534768166254251426443274781175914456556474501948211156502315049803856752567566870341001024885404277673593043806635814196217896109496531267210876750149049826889542332572742798508999188628759296648234624011751649474265765258131236104970395792824254915921705432828720364571222223450892145331747967182297113330515376629097770690333083311904873053023399380374634498014743540691855607130861867950982430570556237561327625535829641032600770897547200140623851217324794879704013056748971428125999102126646373817429288825445057563140502068152754153928197395238288739435407618067357448475050747230045656946856999010128775173649412085108924350768054891447708224956401674673887330872854395546721700491105554395406636560682792985095337318516372155214883462714631729558760815353508546769047782573394277528190101943981491088025535166194696852448232156498556222614319751653877673055768482898963698995144638889377211547336114983718609099683525588197883640005527814239476944835805001652872124826020935006922264177683845558195996515635810300007915685023426599807095056730443725678361946890264157023796770766551633545720130387646288720940266912967246456542402446436728886342862526228613686713013625723185808069866192899849892276482615109668383414543937954081411386004979008760457701266449986932215407883538665665700181256610298484265347535696674239247274332669390629549502867025331103767396089074767340129279963414677402947428214024630425222591994150376703235147756874210218626204503168945624442029266111984158969214407669864934648351378011698369130951157141376451217312557077691559660863343895917383921875211342967584971539639992788745071842321671472686972374043471024936423944612376776193966358679619752743931107945762374603307531640464920416945907024848879778239916433169575766365375347444942431189870890494336877273033735771434450242385016662583816840328978471931813248142427710695825216224481601221210173642685961435315696699489664703931770588432917524285986221960339725664580162804724486590402410518514824164053301232223168825604755453205325031839277864405737967751186120370301478670225823080317852013535756773014598782714038214855402516296895570276098044201148806560163155258370459615683815244880013913478576970148658965962958996234198178479380875259560450560257852121242019586339465137752006041017166293580302166089482458578560783784593946905329770616336016181876873965437300750422048515779783790184800250754892039771321384065487878020668284334239768994728475455402420086129651260179093948776239086717164113362519325128089323699138459324531169857196000511403361891178483370850364956417457031954418232423244497131021605784139838056781737083149385619378078680910551730229486884441959287416592336032782907937938242654091198311885223423096660476946496151177195259963404853296997314214172980459848538220361723014985116769577904470601096724249138286278881707238906847106932838358922989620934659213269975054065853610639626702485630325295361811156070367556391038118962044813654143505185487950343996552451360939775139756332230774407775607328646308655548380832330314408169661804393960305042840510730439404148778479588288040732612391336449221654628627590338445498287753472771526261252515014618124672448867688152938715454233637732666898345544771956755053191054888523955613176419642398657191616490353612074555180560235930528912232614397858277653367475546223310837179311656695543777247115378258280612423906302536741405811390463612744014500151477696449140380486068031211438413377448362492551500478455609504388185006493971062061501440725408562756908830544024199685456611940506091618264880505885450142463603309690327335348359842423816321443229207693965328207510597595308935500749979839216424989880854082417664128603328625510116436550689976164799709657934239328044426128572921487167150967205155781354438951740655100049370978744953923902637953394067167524695226386835205916490645861997486692807020758871299540649629210803535825560618341693878987807362829016368241249272024958852441909717659030370357651373134471446335007028310474792100366599408844129990661910440327314530726539920702878167621715045829838876281018919599359197008100110236299480744259133072479051124782812866784593377962784029240827956954854402799013757784960306613601092418226396389833968171152020435075226150091240494572781676408664990128315118520584449250699480849487317995183114800425920985380570071288602699900649336256498459598203211586353392005209431092323517708426132099549132523253660967217214422068320808227738123710402798423893791280975159843099695038579132264219188580410674219223301944364608235176246224495225819983460050356475131960808425985364643778201123285620517102267204541627507052023038267116549343247248171009409070504209123156760534686559020111506995339884346475535267977011572055536743386850073953886112611380831563622504867000647498902382391523857211621513308218084597179599867536556118954963485477819815243909972437756606048066217144205120704733057034923929215575400355533371231925710556998987795351831487412608406987396906097808261366962594599980019221711556341858305147017756976770891322210542908727547462330009353866016492529915415423550564984059157727705052935187951979038175674591690824433258100803444651217206089835922301822898909034980526753149419083426707104381356642790593789486185886425502668660175757329609620353194387329131788567548210257500209206563805500230578667220052507873098528442401079321769685024493855951650044522275829915008689270376512628872605864574287658120322316960641790172583116795432877832163193927121103598967915694841819263445969824965891884104823335418963963949841806973984164786642410310336448143525250900757562800532473498262928517352979395597199265199929140535812261658749794350552779005421378043142099374180161502397364689402947233873368492395509335980918192303973386052858948957542995150433405635449627843964905874506809839566997626250324490271849802807913051914353334309039991132649512904809293910029072480529058916256854972835997573567821318022655898006102831190950920704219141173854433913331900963539493020282108372157719601991327213298139303602245609654950859336714645474184917162633620312585963245707532558491909824717628146208018989892874132039802686355947901434875197986470623214371550180085763862609460821468299231525714166597784525610973363305326657018541461935348183088637962468115223752134723229172952321713157466838047080619833997383787394692438446492377465677859799634674155038850859726596306933834526849823996347881840268154111515410831947666921851605727932260617396096079467357738582709392295834795511980764309373572578294696080862631619722786104624735422947808736247846314529215360000524662825569793308103445821282093792879060527685313510962398567457095745690498528899130465009810965871976588979323258173751980174581246900491081218570451749851224248674224440994379030267097050498317909201146723119254251778141936644970961976719228968907969769467343885935496116923178066223176512007154458818759745739275855216545536197243879152944614214109715858988245518165920961105220770699796337404242108966401206210455876527507264006144638776258368998863454416512020321073241208001794634613266202417515242610665177221690566072346742848151941508290957433620662572213913514645110828962800314684171855415613664696957261918383596747764387750914341875215501495940358269192394508455665073459839298316131655598377901240916892822392789340425183254258394185779081876243703147721838765374779132742040578986845036685484677620061053438801451366290767832339005286678586218247745892421567724696173685238919668508030570682423021178556640943895957202133100980960751487834800468553171814388415145680175628954200651807172540896858493920395919707120746027877847653640403520533867496322914720388049149225516721600780948090522523538390798600711432705412930769872066494951304895290020702866998249056715771182746124955211084640945735056483275167342068141352612153030529795972642069044803704943392991093231136794973583694162614688706341986761032889482989914620190377787486815118488595979623687753870892908816934288134445504963893236240754863693990609183378435693164575537443996753194833220651577950598659612964549576872702993173959063791954084532316130976418765928365554823848410865009924405339618490518979005820417503417619735829428593145535259349008852309240743095223058961794481201830216517687021427162361306374743259499009236484853068651048375013880044722353954500497671266221642781197611093992978333927496521101569071124208092236407159259200566454840301287195617954731016759032410414664931555042946819595111223059606757987657624487326331001139158622306281324181340877030679481847362701652702267908798008259007739513703411769858974262543630059675261762401635967303511869161071419989814192910219766571317698503833314456711956985280931781482386816308599731786957739003992314318030234208568835481824691606980033532673668801161146957560029863135309750644400445983748718024534988147296187197268487629321338085268568971188889998430909915058521345069642890244094692521533370423489498582999867643832635887934264548272712059245353376031476976023108544977439327991568492887462919062059986609063652811654783113040645577598870240585023610463233056959568260514006846010531295570044973750000619184894247380163458068970593023163028964975780007730140441136191971768670564212756969326575622842683201376744103783862543076257646550584458884571124295521039592208024852534823710376979265866235443748280287267356210550398890237439576926210852302199869520063089671129798189994746819320633115343755082799784825455782829756613327459076683033113082032361355511957697108633086842166809586359401032423045239029173250619501788547344041161344324529657334731501113356081550106540914145437290607122188441628000523741191997466426229955505967749230832067635649173550048488203330749276348718929696111304270240218232300030648272334574315823631771682841493797608452638083590070452279677768641591818364866541180996074323343267986629357293849649789887798967101327495122401878400770392593425261365637414133602270583720150152075849394614487411906046545194393267240918105484163024489834221740820705636597487548762015262697006135706760784166996984492322321766290456907346139768544052170327800254915503504462810940044294482516386157451555502203124337184696582145591815832946420994050128856758445189890179634423449433974285398442808476041509656874001178389570762920028260840942801935375263210144029209971708932006054929517425870772124915782843792264786338215538283071731432303755289106112600263266055842580329514620518073324870905616166180769693744136355164324049548540032168983314935307152145335803548557315518298590220446739573337835559454587396447407352536001340742737382615370791100966073090823600627083757393717537821225821348097137371683273535637141625470421992589999369585714886150889359526622347362301066019595924840967803951558992406294762678992435626007987787116612793347244722160842832698000406625779478226240415226094817281433482554468776006727397657322786269968209998244722537332839873062916785915184043213881794783552962157811304171544798458278117086640431525038132094266653252296923382914297139389585769370153334458785922831903543867848440636486391647996603232372444743492139848218111464090668801342406532330417561372652695571622621066011332521850546604662925892468026985372763823290220351303720469916280447370300443642183460029697164350931571094043048032456240086644220827153048477010639485520638659486359209003585004814320822853272743826227782898645626517739600754701308070251063110265949538632987315715164572010140846986558592042308281736923658440844262720124413110328287758268622518594342942712220275966771798482508514112666401078347546021435803425614274990410572354132220149862637699179638427394476151443450831825786173029534739401115615264367108998709291069550710106081458135222235437428550463066632757921936891104303094758276589892726272642722982049328346939426670306550964774624606169983547192835624149821034548578277845863115817769986597929969971949260244853536776748274094982203574192757611435739484920679682253121993689401593255544450144581945044072665508474161480800733317650769770024606248195952969799516076966326907293850530284291027919146527998462368374927083089240382681224163859930228069297283852996152755153472392644602142138590471250073892736808190382935455557830905192482805440056704181982340117829730205774727131639199935046497387588070365187860262395069873426612809060220230652362588382865854542239472558090821523235306337667259486272091633476430663893771871361375998290902274893657009851662742891439045379326750341407104987035285818475129347934567131868116529761384770719478618975974184565144897968853370267115727763692223672700486362702009602070160260332292861027070179922995102094631478623745619574339130456421093744830836652547066274700082820967557416880265465358183199907222861208854403862005362484644473288518851917758432011724093092218563233197295373237551566775730231973436564531955790180492997388534230558344403509910645681985822782109228854102656832954456270777323353117697341962767323963358626745770273743966947477805388578688405860537324684858468979808025613330428766091978880386677347086227644747630182313840152430078596925470425011335076533385084223338482822636264625232090708761350851242371645726885073864963410165895697229558177193962072371536816615324600566173670657216696055342331132495100541355519394605885964891855820625101132359345817432105978046941267217035806328001149812745703895452657685017908617025170496215988006724261493367231584954976344078534378264007760070304536919364662055868297803202199299021809262034468704322451556907525922962002297264986687674364444796560071025091832764562968562094573717328809472511622339858810910492014218108350063712776634714517211108453126404278886791060150581200562238423043531323125776807837171985497491391925377801643051134536422080630736451924720070661149902459311668120566007489774550179154235087460620112244559147330711387948382403630178501446555699994375201430854628412872913415096826442019929426660869803353362017325423096480956318423985787285624918043090595082790907712492229107517721877643654623507834056833745968846995643972548263083151353040548597476035704508975110720772567579588314359826046177885635666963012676142888667441161972787936074458822703812929145158941851678387935857390161693656401545963066680925730027051876138716314365243985012701912065994652309129427480988964433122285694022997266943987905432139921256395493185323329190142478507022109861402063918035731116975150605387374799492331957200231990123729457522028656680568132548395996973597260339761219544187768762918465176306616534011498210194269947349612354732759043036808128644111903909393738884151333698666977482106967068742503829030515069913783222712768392234138322815824313205143635067234451910086806920707349309800987336383770726526721185566496813884040556437360202539674179095670652078613476003981880986694895643617422972955632597167512742481794728768205956764372811451457142975788159523085002771774943490292289167170631749175550740574917903272129781560811999929073583413220798876676324553582002223097610027010369199784618173013060069433005642938048073233427270839187744373344837676663925954694795902913677534415508187986753732942223228695258158355222899554893897614754082828645804069906556295736044770918154642189927089756071966669732396480613309438782911763307820829978158030477971544040569168188148235105603650095775833838017181133658674203022708037466946386496954919943582859194185825988082504022539797809793902856003322853777873975970802127015062383927189062152911557904927068513921516216332458602702782630757211784489482409796088640046272465334603811374897435956711381959528114535726802315838970685885931040477971333796896483882038454389812612765517980326274626229506521282781383977123325105618590998174269169976065984103909654662523820830017786906948810254155886085148541857009888251020775788267162144145650310603954830159156439049747638479921853216392208624433136224830687905953614374806588187809008943008486712425738841447252171412661030599584119756827598188060005106184759306335788295655871859597210650581328768323399681925185045741714621830595046336588847544978087236282180211454246347890633543576972988733799901711890098019745335644010426471367783103585719661484757344327709776612910317794834788104517165356098945036337181187291994722664196203414262754860572451109490016897107244703862696229711305738617669948498079967203971293745074118522982645606119000862919870127621577833922119620092423918276056816486286746922028877486863050379036426248796601125277131611314391444013299785772385396753593298145245606423986507249659977044930600036535295524241449130711691673020408407946118355576329646344057108289917689307025824758584857235345065142685635658774840882639847067841868638255882224008239554498003389560874168818448603659520530357949687697913890720377424733878591815998260105679200471129312682658820006636081099667112500576173476635337324762752686839269837982813961842896429963403669735794814374526299934857954434826315349459974460763807600912625191229700445178646372852270498176926990447791021485919846391742341603162692789119386983526972535988660107304650741326009511783370158958568294180997350622580976607143661276908702422362217330682915676954784173337935192324643360268282582817848489618111909565153033446606425569834150800063035433188187441816061086399706226771519522348112333563315129183125403065880929748190560522708891827124409522648818022286332557804497064523372997971264547547809707085959666231395512501003395564529984209908189886584827600984512609782438583802530351625584416904503025867155134376895420193701018311789603070413784894160910446753025937793057106960846475398306062536321265147609939160905364561005630908925402782453624956439747798223997645720297599176680195670060226991413824208556091207097150641042283534637405721358770353975808129361777182786249011748122671748764527823439328174603339265762726161613563796409883955420069759831190692878624761743252866550766639855529797393107864594495213058944551516474948231326953842641841659220157156204399806169248925181951249288460025226085076475339793719078976274195218604177912535588180021405277515111236046566908001266183283165867104632274394839969586222286003643070611945501635130025969937771314402970133624311643911280721081015862516127639169204900854895986060469696819302035030048192190277264856979529000072004521353773989023492485820176297486609989122534689140915165579651223327782638052448607266070844866659723341187190881410632939470345636919354636116766092154848104472436401513574911488396782575735858637249396384114471125571343493281851790680519114591845124284021862133551635262938591053521234151542876377009783210583472211653108048141352650854906248750714797862296148123689345656057219694648202515272958020916136267456851204595463961900730214147003128774704968953029058382829165110227115630289776860033058668222744446874700809053550445632285665847482519306388524891465304826554434147662852863308816460751880193695313243374057563294622601739512631335642616828811287827977813720434320729220575119731627113888771699797601124017536416059329874849362531242277005211653245157228020571788715898819180142228292214306865746978002909196758205256860508652568620393485604917562470699181103999792520732680813245437635435791699207681334622126672985445913801471414689860541899344254785231326850034414193794267292839882363777730174278556475281535858132984260087271382388442178929237682326078293219442400585639791794041847170881418056236511634087821916482567192696046457085579998594687936637317143362942346088529191287933834095236802277675575566140236875010355504151562584455846740539323390493841819615682162321714629408358551487310978312204840611319276755080590242799780008126076303547543294913324438920960469295666662164437001356778455227092056822574568503449053634487610389877421397667474412945597946957575295381368993457257174830332648061800925056872682605353233294923105762372218201466258603088567366907479257271158079092678218896213141844139159993018704223398841289648203454578634746980251007380362336593717826408679669477715785747071374174411539092575046748294566567847870337676447385592348636531677005666248677897944776552202053245584291830432171808663210949379097547081111016994452711963460574605393683997927595287010711159804191614780383471562194785063960616095807252956116903680695784008805781662776611784039578382460838078739615771003688467319512019763952002182867283125056671801839678238667365513100696593610335054839314647192568101929723139638300893648778769352316536328113650084771133920321147279652423936254232402347068098862900287458224858729392202787174603752128665829221934135608468095886715654592999101719157053527747018077265886883206217669303396767721083215019908684548047832767454676097009430445756799604505751508445965000150741979331199906266390278833740308135668365592480604125558215922680106386997633041762193291512012019134479700919288046991000859872972266428902866096717760231581692622133543138825066312271836579529176330387755963585961584889425297850673278508253120706281250731797187611720518455781866615465182123187578353603586902338971352573206179888618374409014298424537185526405737263190448177935025423569658158262164242422087988260436882817747322367305468022999341589368092908293025758369547188461315744957665658778666821520003299525201048211504717002900958993366539020794305997897187345122059003869094051781109407423439465505535233049101871889834338516057012598745584583569380341827671819971279065362579757728705766292520785517940005507099995093392077474412531309611476770658308355048258294542843392673350532609481140602993350962317061913758566861502579047048212233348601723945850511799158880209797311835480489347371237443424894940212161068529735227378648889797084948308721974335670296966416560446310301059359126323781187907462381280889543113024647633354052801338364653449961447414530600747746020545841041459262791621926935972442129593957010679037448986009688558532306021320549081963764980416445103936475816073223360480568625306617801658246329014036553551984939785789088643828416048462660286267396857810935776248594123549147048789784219657446960742710537482507976734077101295357453234342082480582640484347557241417825848738948334098529119215451421085199424047001323872725608803547440453448688950396918027404043875878371302288321485509109241964093869514048288573470306821155817552734678223916658629319169383137896132160313560337129915939110521972774398108464582528092675902457219361880796491895547623102495460973001368488012085601623196942561431252105177936393131794843408918573968962420462109181491293886232765172211716521056147519884661370996990985586397476339934966941028161806719820163664800934434042741151159691406466705601482385765242729792792334901688765615991022055217606751063861498647307023800816896280470971272587031723819053686093595628835941769125354022240833431638676623214143114600931581996861587613680330300721087141711484662327180094591875978066405278345067126226001899308857071912540810442915069489255367098865397349413956418997167571444606967739099342270617216089449167449230969643874538962166115515942633386186762121925793362639601496738917363746097391183023558032368506771830244470633926367428635336849280437306988361060543229495778467201741041359344378880352110176503611631190248778435269585701814945319358820770988807971152846351019773244885809534286508654648332629731341596059987328886444653703713739866380871324685847745140252941935960786253621541807106183966126937884188486371677970843356313305143350836036317288539557705055740199946652140477964403131224389038985209646615539829738562058965579788164372448502319504899766886146288256276697134192699929091061921044222405016748069651167934791431412205873900134550675687429881708033146269325587638142446419382256775004413633572977459465232379550433805336197215890330175827407864929345247353532596972661132993393440573610271396299657464300927113140601575457220698003928097860783498292331116669076086109420572380316566954326756009356573557092328359883237262219683881880453083755375946849561081928360852372527797060611743569021142147037310518874628014157820119961066087461802065338595630648742839972637535223677349025039131552795455775813735892266689932047583711586667417171730574919621234151061314671158133184240110472134811576772483658716179692294777909799159622305591110635207457283974622993014970282738860523706630155646165213724215972814701789729230397013150663002017985082239526391177474260455930281828232936873738580127298909178523718341610127692269447837976857574385645969261242042761325243458031291463695674393349925577554133573164157898543188159837183074682534837456699720327541197911057916132469775678084124442084717419533394666582643936267279189133062976544010089712654410188595118384758398815958063522534915555299963505360518250990917112874474977044462857987522542925792277170931951209937633113577610186239985792406854419459767630065433719385904074589449647913206569646068534627713491430154658263263204639802964676711563038559772165107905085592911431279581200832899437426189878670993905997036665062552642656051991646789134190143868474051617295379286639808079081298878732338652442381919103909038534961297632765624835766193346688844826369617189409618498965723154674791820290059729372947105483586096660032125299849519081526523634455069575908960943109421808317812936092247176520061388756535827579362544207367650499476605558768924623142383775102150262329780691788930758284414204105361639954776930094052424920308305566981923132709784752305271436612696428710518785574550357956288104583268900860984833989359177942616772896430342294160009813549683550414640213113157525464350817648046967141879740226366114174074053505354415149376038829441832163202632000765126047784722900535712437996037793253844523602980843836538906680221607809425068917298399027131628829409329112042831369723885274144338259125330661575636229618322465958772554710642801542440896597905225288349406716889257963783926889689273450381870994158024922072937694513595693621730696912928589537248665168664694498787601224004115975590999656738030212203711360679635862911791696143504104340334776130281621196273240476465907017697195413804314594066580859534934061481370726065648125290034045026849285281831094669156427191984628898326549182388778047996736925264478341710033616665027512462986722168447253853668084321297018367322809995815118297967636570555667128805809526578656381963343907614053746655396980433219198682662499115544023161478109562084973003812409473916899175134814278131375184733481724635473206382143334058849151103370168072512686662826619208041416735846128299504875828505037938370498149102493355986316675971350404211595012151349097776199615283223528686722608538103189181878444546916882721591065758164701796396059226249481672235777306152934027295741577754003451160503659282145604527173285997788319744836217581908918565299439203147731868149196334659614179440770142483477466575800564099129749441927534434618823851817576519604537612977663555279345185851672866649642444634036680474395881005752015252974135470863770002198982409200327316713516758232574249842051564325083321291383208250721960604217414362413786854985304698445345347728712041875187853304376188054445157173646507333301856598716687143922161449883353889130445832265343224883838997324856177213163719188280305696296199902708667795637233669388306322494344672482811743185837649578227888460823266153748922214198150586022097800978676714336579603271677659413721298766645612946766089654304242589567821270259225995571409750044404213807859441164013800141052695018983315822673237392566120235785171662612786085722813096903684693441144879169331087229032573623441964326057562530472809820063457378177452652079519215279739655603739346940965654997907788359844814853439725737552624304225600184262426329029531126302849483995588359020836176106347412776593067706493782858860839969208275260652651079934339522415475864237977485426027490345229913171595464385747725780771771837424234251629788149048698722322626894703436241526585806314324455137896266048641994043334706070387987909080348621622657409967278251825731902767575616726908342726386480591545559233262348300622282584310460565625150476188668145129975317889799917104605036285808557142564542540199359698741213898006804998052133005925475479618044912064754282854703828614295593571641682444849251351597770530270092528719132577244930265458421791326529884593817398068229043717688819433775583809817221325598647008639392854349197792647831863856447108208508027577983558317080093599670289048309310442515197698458460865789543092441005548630193041597226898185598317118856303638132313900067078278986419310484154361511749779598060849991188472335212371473677999680601561974260276397691000533404949458662204143355643027558309444458464897670345383544733688123993329183717829276118654227047789443198243694286389066961477629487801799024601670132349540920985356843419072264724355794536369826047088824008992439736045643437025597878384761344714147566086830914114695938128080167072158123029121302354343208065197003003787188134725161917258946270195440438515129627699398595636360790340060970472355165738301583203608693103146298087799693436512350653514425410208644858977899265549088220248294088500540047416797803159124906476389380273878261934566929521807243292053366022743862423019599391219458417145682888211398045669540800678626989712910415142603888021471653411580487843408357885809726443523510798676855843449239840018272349309614116010412728010990636736907793821631594551823142336176967203019130352301373636941419711867775702397261079645626086043825644449436174537226051088832869023576833671462457449430856555046007281016183737635056556809262759475174014937111024356153795607291960293383430541260752542497340370683681498263468190077038799058735810100874685766258907547959999242584902569757743253346965125372209385684977991201635917228395430368821193923605175382848744662431871187737148206254376010840493867233325087954588480778768740787037682851465295367867547741712038140098493888858747347697284652110546569240176090515223192751435452206121421184205339637238237445638427872314833733026531906836834324414971226909317473439663592703395183530169434735681217833851601611504501953949479126172834980056842992112571321708970884898300839987632145881002305651852052585512273160448303166641716692733299914552039568063589924533432546374657597533665682558975537036913825527208397625816831834735277819795092135813422745681687344844963902083117778049565660768647619438465544864537961050094013763109717173843242530453470288676789038645283252946838385705218932712004992566292480304055771623881478163743057467973205261871172970266838469411601793858079679380617543179134747812708186784422080713413402518119139843626509110310725054541470390432317771603344974398131185469429851978142144735420001721864071356617343288516123396721121689220599357581735173670842798045064422171601644375329491505405806404766774469293686742755064294820795639567161178043284666921582832492239857225011186434595224845410518305975378534227641617569104032659719653914759677128044310155745086153174126945870565386007345257604931236720414736066813462472280387122784316724606025060453099173990469226388191324397661917879404520267348843181077245276353566023550436503137209638156592459213502196548580633911794302028345884661253351320421836543739800638342915374088305682499914599302590811549164378951816977430997851436704576959546489300337048444293095084055912001153914380488205077178438681608991094521965637682422774133306059253656787616305025555949603530391609536749127602337412669905261707361180052241569978716564788751329582868192387936695772768743307716123915860608557568215139568777361522655869442680084059585962676500570924868079159089741588627282649366665842508517195517487765406828094683835606377295599237753330426870678316614953293734863830480589780309118922676379458325334493070897162002999253245386554915813334811491414464692402437667006824284882262267062312737695463456439968706788586239341192902940269907703427361073566840068965503388277663507723749959258468391266438242089461141089936674876337644904011634742412741184395491963516177880896608291528988531083228437688627710659857851512983666423022165731046388574973445348874093337260116076096532587242808937275293743186669473624148962783445781617060686307949543114224234158619621358675200481176004044172824473578028007507331014537907781974372226239296723399508764902108467277660341391961802321387700544841416963787641559756269008487891391337051808449375212740704217867303643622534091264394178262391686801915766652135772249512391487842532901990866350153735833966961717583355981406148718495542032940638137323073017138746096801398917371681943954973736938663892277640793366690886173601950587515331098078997428625046034436863328843233125422543900354590293393613334336667494719392689622627277177967332762421916634064041786547834289113928004115054968807079686030636948376525047667909121827291713230653709636657303615843566042714381162881050806556206536805377547942062792660412307394365063544087284073908297117877939086656115954925133559069392425643791754167331260995058256265314169368554973134932710411643980568238246791714504408105281518466115995969251131793299695158396638268332504465104792395814492683028882684050813429618205565731273738422476028308797914704592984822391414420822614902965254240587346302682718172234340867789234689162113846073717758926121941891158822828477727078366783748657189800684843868556054840948899117008070429993019205509048741668875844200879262909940408568530131531258979211561017391278359692481387550942417166145490492491870883480157492197752968435334539892731944052775719624879464328984237412878519934268659054831737975501422060045576216675922495603945965597092752004788711616892742316260032000502650326816832188802535764697595223093625952612021386411366151295698767041468547570625206139503759035230102598813911172056650742845224731069523202820974627030341137467570563681439021715263106934912414178611853012018001382147216588071031968483054968153995226160502640946532663199075675182025208773540360574076463217710132197482168384934679701025962754026111593345861084204901697417067852648344807792033973193677799409815584039994125780047396566214210728433800204142667633186062290605532272900926070186183123372079062710037986908902828896309539353798976628308463160915238024496829257173771880854330976000128320597208163400763641691955081874063800915333544881446842378479942401447470331421854914873071650690277294216411438752636307861430279514134086335526580115033725831900362578396979635534818198232569594302899144381688031244129877047499527607268810940088352734417919002631561977492358219619207293641736472455041079257886751028318635714533280150872825228982366193859404054094936004961269904589029925219611019424062317480344330790733281504142113345612321055619219832815104505563671183657810279236934268086879650929039395602002904096208004061596222723206823028412061045178980587925187887911332944730214230769383728721903720643101096499053613631659931450531689198041277887543047372202351058698818623160190199775273572838027324309985450098415370225219320504756664464664956134302507733350376335374792047938666848679941678105997859232191327543275524150776463886084270087773772652051145257727198612068818241845458311864556557043546747533426649794625115104059925195927518453518508585974175383320269015217538577595419091462931978279502992526350897358355868724428779000383135014859739463575400796692886536509391679980502273810090984561816319777523392801059742509316036085507191703919640987650537743760104127530336042821299889691001221451809246742913232898419581391050032192211186845071227524027147522684585938325037270892418224204213506573220158040122499190843987896702810719513558558513926647633650507844962685336327684480103431295188187551252153142029250437444913449771387833686015329674216914542032939879463934267772515464312860547126552953142233581934803751486100137535671169129110711191985730475482236127712923090672244936660617901207614103123956944307862828173048909004123526837090084975014071433024460024301396570953965735271733522625725256496481180672277276771780846556899183710215946268948505369928644658906233966720130575791997812690371108311378151342063056441688254219182184606491129816187880933169685038884282173175406758041193717449061950241046692572338893610751978507787075875979681791999028868519531752809514567408635813556665063662467255499643972417888710352703991855568741285230507946843984363462129593996242578838221988620257698109659482908998714353513315221298929475258965004957356953136504324672532043112074257851599359549813251983073321546230783291330317895683897409853253827300128256077441870492589662575408297563231856426310746824434763100068193290715157184131665348441252671723179353030700873357342642132529489775234644530303575291919448287537843981613676067609924751897238521647819541150229329509051669965120601421610177798403997258272630975208924300526968754397341508770837910651454924361127451864691090716755119129696379252588401238383998938462174732282605358012150801415781893206121347087683300641046450424168310373831891013252389607864349551061270358220382304638305115313229076800153967024740355624508843966479856974686560386521722650019579435407269134749538554662250580536076304381836556088724193966695263236907493455276159857932019423882065748007949499954827897632840357342947103984345947649336503847437063857553845478495637828192082062156401009102654652489484109550683330543531977729201591675278460912840911567014311342288877317305488334835938813735567066895736029134217314874255497571139321947427005861749550672788814470001270967142153070476706182467145195922159777721674791481875020685680304365601222965523630899142038527511206700489440978913759306696184011639928475727591885507897266029015398552984907031358710473287319935045518194681800833472980410894821231096629940697433602027401503972232028625619944626847109925269226469713732693342442760850642014538888752673983774255638260505497342751220309666739011818943394920388974111323797926142733404477888444267176614962330220214228441527341152330981189086292550400781165671743775149262245787490977234957870451937784307122322505911076915084303160570668000853818893973882030189263151961537303678040421485227228308509646794083559462811957880814632621720757301638848769906594999089569906011341581880093797959312976625427423491029784704375480571376489976579715257813266296187288379623951902725071685944264920657275824736151356379924571188085528620017014877270520509164683353062298715074324043906497888950759186270131579235188975642194364514712485212313669893929652848112575377266181444301681264737873967997160193597006246325801038665142214266240648350447725789297450826246644646954684169670650477552917659242310676692819924888501872270326378895967626914749710825953289354473487311272830362905777501632603010797412087133517598232267445423300494204814046692705322813104598793843810840322416805062294947767632936537439054943547822157670726539604880323651500196240412207900766937765935547554087366677604826513654504987472128698057543923365024410000957126488906639151572077828546281627039500616622509718003694200820256332804068540979057056158233595979441748965649250568672255369604681145244517232127427171437148450756784177596457471762648579799754415393605268249214082320818366821625602829398720490115979392098504533470808511945083910056048516077737067585588997427656728281913072849172464785984284287754523167428141932773106283178547016344845715410268064579368612257318800513280898381550845126348217451072672093667706729061355255600607163224926390299891778072551621178358229536454256820786956569978875111271948816772034731296415982135237560574385684338480832811356989674618878374608785612820827585934193430950578628543445490482566780937582215915001951618950515060691550264140548468828431039783242581344594956324215703230707809937700304713081438600200652800208869651112492429972466353384393592317034182226497935741532284229072196978805740431952334674472226851315552035745823768142863230864052069682111713947988377785684940542736126858003675887623310396187356703385155138372824529316435803151631777705587192299915802847851349929725823347304801590405698644546582650138583825345207252733146261848289174016939872040758072138763249988730400957904750864915149484919990946375224278471040878182025992216777134044613111233391246937199210580617177874638839888596969440805085849147250287120658866488992912886975296158778572928138387593961035940702912865550250286722672230274388021115594596574638989657114698059135811431975778109054299216917365026560176280824660020075937465686346106969525430994648436779461298927259702632135598452635138498925917035449049623475598698767503899073270408674090989522227658088231521089363196829086025063656526881417344078937758490062760987958098193935712718013110980467445704825795147821957284603759677772721948545059421415394432399756498126988926608965139634510322933107674934864528241793192644547747456876043038124340462919628430127785246343153666728670743128123688613295383705228034476642863993439269390492404646004788773177662849209795230598155440154060994407906268911120354690133259512173390436225878160038087652403084659428332638277450262557697965734843677800441071816760710540617390149561739829672762371338566807312522110085856988152859275850466602232016310700730400340265245875938012126268992482239148294049266399486533392097254295624868474080763754216170122850887574884113257801684566646590246440849576056056350907011668850601591445126271632069080655775463429617550161192153956970440353384528376138724512252780138969326211849355239834060498163216377397174646033823622737018178399584247489948693013595675278361217228509026109336369284871005664676584630584563396206414754858549527749964191359992798232432855169906475116671820779854062282087458314265223379621050271399549089450636451301693667710266472183007165819131209769099832258465862601600211442168767127289116823179931777270326847655340549794774722476940382388876843629395639234178859608299509992180361623972004335326277411869839552009340532445965607670124369860368907484116789332828450881423923199447867588211979664490066246454296142226530450099512818498877716385003050423261918073665239898651966850323184084730537418157975837873864270653420016330397025181209588839604396126051055550640400148681238376781093787093829483260877535707814263046446485100929706773700293863505967058168744681291628573232935303648858924423989232020519882454810345662147149796322295172857289590998246349624243612506527369268994608508297754512065380065551881237772612035698471527332478030438421420740370520162231417143293904012757275935856651591745710504297403335528290533923741631983361676797422863906217317350199721761798005048195126276504578204987114478679370283011732060163503295345411844878522031497589964857248366071792346513953147609509704818538918607662243936472078084630589399877878748284980946626492183369964721483730341243311203323583003762344291456941700309422862382987037200148736903460773360070044019800609184062486507750765753077828670726080062613299110461337600874958558530202689661744274129755826799455570023581337298929009740071893390466248272649714314668761766359352425512353884689846524173329242217983638976702825447674089912696238762607373414817175591221034303786779712499340532511540659093391517744791339101006614854611447950945178725050129213451230472360491834532625028793220883272556748106510172983374428808011086613310314622825859719376965107318569602025954808508995407745529549187568604137563963970618442876624723642730922445279501698273446190732451588519924714443179406232502772072289230958772732980574406085272206708338306535293472010971561815723173125232334329199735433669572653314024613053247200705220714382332854713382657941056406457097614950737408625675099076676171082054165716489570367647107548217458611955492465683297443849678130579137926388705188459427722522863839772545651570797525399184951920492991416218320328412971484323820720865357570967151331889431460194954742171692597831130374967569080847716076191750058333484337235321397969218528067744164633123572702004469731455013206178993501241048366441379720501345015938897260409768463841363304574253650038839823041753028144005631030555007372844603985162089167319006732151706694717978855756039686060842674739849306770265607579473614861588824492308466000953908990597778626687888116225280072776232727487569451915959827406561543150504958130710335090104721735147880215187616836843495960442165797129710657314982033154167051478932719870617684478249428738290701504188790324825876259568323655974263058459425292855485032365306897159577766856686702822593200769945443207542122896321032336842198023616743561975353724976566922588002940288095702200811078982262054416890029860511146390364176506610602564732200401075960356418196923689093998650297046621659933998703491832899197854415659932782708705682798846175144955585772192475637725251332663633166029861834924250313730607921232717453225163731055830868747035247908598367014271886370486879614755691242781932873282579398712954386360555184121982322985232641184428994880197406226309984116268064640813247725160588382208115247990623122396880561515078604338038768687544760849244054612129530664382131679964755654147704496147321172472963008551067552990829739244669382310684180667614099677564865385982411826632564555525198353979401029791686460207482334153125361989169821496863665457491419124382917595547618693448707250091454417175947718259476829018195762927709451141848169962672959286573118908657228579604039607443277395462428665152597928469927423089593096705053331297112402906409361186840389232709177947939066717661408938128826574474299011791695928882206686086288950732571552970040172696096595953664580236649263255155739035103256779139682724093135610641894087822488095646604866885469651612250546563391863887171608438207299751088384605821821323003636882767341291766281825608456319977569391848802947965659045297223045985888355407573434267136772509426521859530275040035809018875589214195871324864396169603586630328914204170511510632739043946593354666296072219393904255149654249926730246351118156968025855517666899531865038943748832925164109616130651046615242446570040881827670726299999830721680957733776540287098634629058141911665066199789933086365696782450041939442747418987089070658201997499181621954069484369463548724138325582405672723862807489981275167097456987462715879385975210476541542081344373058396132235536352252109970170065232096369724173207851843346889705652784418807665521837974057767411484235967211186250214047737566456640271767125286120422705317532883731139206110014143793062028528227372663053003448185141504018960891690361238373976158402850071682419286800582898218497494570787816958386913992328084894304780614510999371364432768266202109135259537857520301608539580919283350693307483287574589256381837419130032935837250483506667225513757182326134609434440102887587652248301691950112986405369572714276008864118517603637521178826495847688230986973469978464464538157502359053493869941963941945688258810081524270529856806943276006862937352672723007259232771808820386538098763712638698445392466447438960440227592960137838083940957759646047684579038283363847268022522929055984430175460242424770193373891603603538086741128055206076909184097799208223810507894134468067503098928691140864679152557210376490781705238169893199503644077703127539705477770638753282893446655733027235691598584535638521857690571175422498218487441311811097119622561765400074969752242904659626694812653234837743955861874633229961327132151721448335772178458991912809665120454618050715859358927657996278561760065048929489746354219481424425217523581320502986960863536412818009037137700074048071891420863563061635567692151716940792016169007444256139787459268500109225691999434464476640853304107243891115589987170919465348608927686705301486512855076331409146629729709288654359630993486312382887357943550030942179590354038179369413276895009330240411425388257345103893476036997022471883899664580194530349963594877062949649161753187392433846817912193735822689264201997650276540340171285521710821910948905789884371090232866294486822524628200499366922046009812147913056450524535889082883410904461514506301473957394828698794888567155832302967547748000592313109209917495332338986627905082716504482006788217727999034382993818769341797778061723188298792085097202209905519106308771923628884807033555779593466524968079068292570676561012136765208904608638056334527123541882248551338827618851200656423494851348110206143195829347096103686885673850397291330876468951318137662864767742077672355308812681193580320703224290317437776746179317720391885238252840227602785626642755975591962080359844989916534038479459403028971239382294778625507050836413601305684250697505825600228998661607362962223422332551727516541720752484738195351207249224852871815125643291563203674705585757866138695041174133802601000694002039078033969172926314228701383442245157459405420247094148279658261938415891497445163954203923088161679779019669602197375025538597961120846150084807209069090935668533983526663014261544113353882822137058830488571575186053046243475926843246759590536511540861814758250682094388058803880662902714610820370422424629992981018133150735549675006220774014599434795147179350885239508028397993456176467413636280726003780584363864814769494133861565443984836163258636560998778458393956713123217214699454040489628150726481600748723387499429487806185596257173177073174742301729800930520221335163614153223821898786173058898388681198182382493243949312148922636018310659039449059397391744745839038159251590324335021128170615293009639727570569416221493833065886338787057408089347760620162055197574233042536618601215635529878066782743882525682216674923395528259985012987242293639990367792060715523830991738316548292909523149831135449616296314064093521651647928351165936488367216143601864949638734374135312821569260529945508931667469729440801214404449115711743731383475007635455138348844413919663867974729534600034859770726320334420925765206841007824435422699256114818264366456373526134437527241685648024575305627253480748509422692569390411874633181995036256447578708666468475567191098984262415059951663729020201645317411596128010153031295267695450178775367267575330490266106078461881278477495847854656997318097906282144693602115638009389604980384490887687419202042499525979765936924115038843705179275180546631288980297486963432928712357499998909610739409113413374396207154398165512527860766416338116669969462729838403290145546942089529825768732271512816517964122008094717739934443256517817693444699560366179714127292239478725332549447715338457620988282550202341733828173993791181702997406223024441935192002217238139243874616126923956053795681560441090666172383106188378745232490709510240571426534078326096119514705370988717282076584902070093843777054889599530407318137923210026236536357909840681300662799488170133779702997687557292084268579606689533851894110381999689417423387894567045167233682649014052963251871494912219765135848931492020673021094582057173031692392703376002766346445333007801124044500475314781123060594951492335361029896893840129010647541815656306444747054149974142198893779314964093906654393242447237469189209370493357668907597273648236477133653749551349763999125076252569139905586071178663141437578092241598912490681041620780326231990904622219505443657456019150113477011229345502782585103008637509356562572753094537892504775462869926527534360494849492878002296360966511900091428420488707287599587465516233611469841825317865659592811697131859641764999525526565822252040806057854216952764859568161608139023990794147841600250461215458262222398505761631307827832219832192631385988504397109537567047832910395908828744555817171040967009063814039063375840917427312937674604300583788252743990741073240115701734908850218964232945712040884434865149278447515697612475638612383651224245707320772019237569972281845158851062869304252884699988809160641892221878502515809074606179704555911036806509725046051691613665193939410790234763566901417294594618595147829983716629416089152770182569704871163488266950257301354052621774500614226079271069609883167754538435831373185191995544335895321057183012293314871546310887912821369077585822080330730111040495760642335261664165424591633063970841257814435283291522903989938327396478522591066854518485310636715594367410965440202043058309380641687461334945505242896463426931360307403529158305650791284787043542696362612593415957920334493934580472085179225307562688788194804396677589660613404282714739234874688539410581323697184021203330099933457237831113804885038213171116423602581872072767515787146669200631408643246275745247493221235499635313461114826826028179695412694230871878143743762210471438126595128820102328615817953250639198018386487446339094518154221682722063615567142450230524267086647397676741133549400299658723045548037378505511762637036124399651994800040427859542799105151560378358920696260639799013843142077279028724284741793632265215229350823808766968169609427105528007199078561791107474096931992038543137284860492553059698560106015980632082660436179881588597708326897532434354658185379124417719316153748992864450718769686708774312922881904249507073191013966572174184820177922413574802589419201388432917701738380246258489689999941670038061906141585853291403453485419218414258133869080314100910144205066150539467215900278762906249711001541762706970684056189376867383476319177197934273231700981373463018463834264443881866247799315990045540890319534906027004632052687157193782784426327345064785497422494055565531335120012210117436519295017884279402711798403236386192329522491093508011729264246002010761112456488618567614652443948767116861630863495821779872339728020231876158872328742003829990059689423259405957655149707512110368153051178856050670274064575779719372921850718082857680188275766209740326493896253843656407010367249121597034611354794522931902566392035006451355375175429218062565887736473118825807053205299036439759438760314196993660267205643788136396054901576190188204019410140197810633698224960383167333007269178357534903119033732777827246331396500865100667979613845606422609223069735096930061238841695668513196659014698384492188900142578999000864929772324621134645341272450836084654552397240273760318212050796985334885252287101169472431259778612109615883475827979381724703105011173366310179014164169037953063919156099086553499864731647118859680835883683927274878308236208703193831573858931148316807440077947516568114944922424741745131453705750834920316087904641891294228618972463482866937838074925989024903802231808816609318703758132789913983091398859492599962043259779245283196941205656460347916095687329381216630493846994677318944732114294812990634812030957584709801939486093305535459837527159276694216427955514128521947911649012731228925777804960270848806419080802261913827635066949409540899240010235615524540349850435618468481059185832735434046816781858599757261410775920197919255089297245331752463394593534287281304893393214261098730432778930653723825463667243492485055541210338072395422987247077613115273024586764504298466318848639759862361808172933937244493668147040105341430069960501033161855727632431733969500234323380261582671845368234181527224581621614588826224421286449424359935560715978218946937979600469829503235319898604692173458061931300660499545324399661827230733334238609675542973085239829645785458368369335943500137453499674366756674692802030505131153664904400848535992108020531041849362822425497174247317610351924725040294020028776734853454298987563788977825389390091641108340954848823542709737848110851939773854754953444652779202575129803456986396080199566106193468013457805902436375447224001439445005190818025287596080789243155474490332035445336718607347435163087576483633632745067575508928911476801504669386098135021643078034807134704694805671124646723318601143912734666837215924626239469093261800062083529114624932209574857221912463272642059145328006558315233850838602058908350231232810953506209707920109812192817086694442389925147825845441912635125874218015440713268304142548972142562891439647764268396116088365884548865284592882196873615297521650662789736644290643121960939570266558489045581362044279448908817852045127053441202629849698117687152579631176987550591824114708961038831730830464184197686005352530797065466102646187969372022478173835221378716954464888483977787426376866186019278017086617301953046911402151962349072576633491484146947632235216019319192876359114873769548384397770544017800545436768254353206915722926493362323784419553050340728362760459241036636167905340975541275763461090709719157424600380414510550988250136664255926228428751391610191245383581294955599349129737564672039031433150371629241167656261663480233644524780744667159068821026111984960517650309862923040708046079406147817465119425368987612377925679883088431839702908391807463353388814070272857026713136011457565851127785959319331971253919613261416554245683899283085971969687574603506413370579391584215848219294368895304342012899424289095470596424894214910361189866256477465238881765786172658193818894239471854046127369383579033150441211074088706338918548986016352598802732044049147279180661866671374467792348052619768390928981350059534489396869077871232260959901898626617687584568237023670275446597848609291562954755362275989140784512143820431156758824024079775691240919163328020495791951982582336429983165016008946170938875794908452806072588354752851271809396694381211932092071927008120987010201050916384350315126453072139637005850971204553469123759059840226288847766268946155329139084499068260664088948872726286847193956007127189746923794256401912922086837714613761084942193985417201239057202544037105489014428159917726456416030681125776248781265423755393752274244590754312067573561319870434230223726510619208189846563065686137433888898672453511771765201584937728019740745458940800989034454577316103194153141009041409537660678503151007229160147438692325305792453976684672752039911414991822455786198856899948377100607933863534449517000029936752696930273442633868275659182967492046788157982889708810609115484112158424534467767310425490264600132061358278810124360825082778250618370388292829656033333643916336914850638547312235255130467187261355082092549659720709370687726086982543319484910246168467103782836743835765995195412437253237823159684038007041531347482242462536077224764314061518677466188881968598823869609734559403162719573115581369112601143154614081335935281765741268362594653959377769293040624451924162666524883945905082904497269435244175150283053000865435131443298372669639831667668280060349294843447348678999517842284356366795819473185837742197945219830368695851884385132739761137682243063719243421371697458875834205990866507753937857441363252161599279235270500339543363984422775690668388604914316197841336057056679925460990000617125081937641433913524893862903109078749911937650424250781229141585191011089580871760329673813549681561718652399539882373216577890451775456722735811741883804833340266726938501302134722930569203970589369723687706981606553218686821932344092815296329847767989115267351640926814525044538330492705939069780718381079406216042874736697864924431386979116090023876388429376220255330520803046668439730668982393662790890792050652262581641577989492827112760462769330817165143801393335310393426496250549037285321463718507204457283135609811246942470973840080458254253958795915745917114896913563449734941103901996068084192283635551338544949554240477022975949544280577662330852515786200520469671091104367613691264572621473511139484528222818452348707675372106994276969109983465085395717136830738292634417081141755700953085693908868946488093380417393238936146480787634363373382959139626444337423064131613744710002462085992647948448354257864466535068569858555967546589545806532740382314995653589328912429523664497569142010488081836223164517482848286361333739999402564243958083189714777299545753600600778420786175088815549373166266415600310655960715620179206517957023383817497663392815460172685071184799755573179129206126533528877426143013407460287078301729151305997327734020568683891910586443695819349926357266533596502991223320239656652503445304774256198772169886558788868198382979462042362975889270012805795237409323788023588006470806875704994354289651470811229190330605186449691273227498321240867547735801475895279355859371954760447352399524422001719637277419838350126441071646567079158204461977986829093506760104344776861650340132126251081702203022924650466304632828081636245944563178987680170444769617451763767968299899614091892435539221388076421025644675884034027924358233395436389164146004000096671373687000684810386856768793363399931345855469143853008344330908461022654424335498279761999356372588756534699380066824056902244481774904234738377609120745108425596444617693420423348723408286369620831987053174529454014655795823104712264233366971028780215846573945095135316855194961054553783882578445069298303109967224689150426332723386301423749614074960473225802940194305061589525808421827460978921742906730012398957919011916214926312688337608778336129429704041628726837999722104987706679683928506273468167131369336953584655646950159029774302253640694490130571002792555493796383705499432360727936554752653137383525676745583475416583878732698661760960974382416341769851018953224190063458632460297861197697354560156365416807734877195714246407545046165848489306215669779588423979481832755342345838618707637405070363161453914581023610639988370094825452500082195365461181763790553447828254519762625842545970489200571059536706150668113352318538945756695194942000177404128193517880171679048317051775352261033347081065646590741460783842391719985738504897643520902764585015310375854411432843463825665904887142692849392832100999771938445007082238052655841674328773552948088273661387560103734061107000352636585504571191230940983532908508523428711027436540180890241917225970443122810082664302772612065444730042105223138402172560963230497479547299263494349869847226612679048858643878540833005906456099820872738322829043791407884523575350617173290836706018762758237082536467847314410218977890954962815508867373199345376323689855948783287649651813492370189733547233915317508421759224680064760499451913728750872894667164814529142030460943328348298942921751612776555354396682958686229988477484578538286680985577326308116117699762789999236347081928165428098437132114557495276664563927465596722431536623731778172492222535762826680266136347681197617724512827655437474079816772230032535967674350237894809294853047913455047881626269847113465532912572044244310762395952948513220914907999997037454798441149709683095935488272576063404472101489787646196699698234482734701446706452098768192847359590266390551416775159038842364931981607010470937679533894190636550349934022706787411859402561643471092298446884512261691182438480428891725389333135373808871368468698866379192161552983953840750472404640170413950476807128084118825852016517589889062615283386383709168322807153842347472392811125732469543175721955821165098586000456081986331004305291837628078441001642283654806308579207283021302253766224575257403565051014334137181959863233348755508549604927960694107287579669049345038095494134357701470750775099497156428739895615505123821396613653976539471805897023172707462053321246671802051448804262870344518053775094701809964968062595317435911748715130353187086731631515961938378760682928233854035334848239190921383480243051348583926924707232874087149583885706717037192963026631112109084473867913464463692330797465095939426496731734092299999880935468295039515358121579863408641982639099544175486877728781565408334482787655468423472939017284235858106467562579208017393167080173433118201181619652794319225364994167214002882947018113348063569481444690689605222749462175771906741816719299363059166833779976531283726531871481166248670520275714101608347447026777525990718656983703899194467724963993587777115543368950277118343514224993396571187787406771953553175690110533092218600572240017671359686181874536233982197633205971711200029699530423067856904818671726109557932412594675633933433413091359682348295215060216908400540025067337199551876129234039617242609924562408929827886460481444639377126266884847785025864498711677436042668586176876498304148616991056827641735892767702383441484482274680317057223433389325610092687530541836329579211041187525682403131314754899422599711059637791639916149210755342575179848323114616875571604077027344724910705012886418536134556710388847579746050557834143229616333677579008288203831303928467268844243960042781008826225756652715530878702769976607045316293986459157862137363789641574161224055575901490368099967177409513726397728634927567546975251152136698690676383381637967328059774884042894191052166291051588630900007805099594513800499623041064185952683886124459963272612023956585517258502984770508289042301523751216019797093593117523174561542999316615772245769595984974845591067671391643827045754986277016817857533244685311582723061239719474203338255381551170914009881568353208010377506119150759262453345542095996903171119542049456571484942962105953412192059133877670311903079440129813569562282947578606229638212342708053519047487604490301282407845334900797795907299877406025504952838056333997960523594319729994443532746565408359268532753701087449635034257816032815409059879716829365907640806725725447334210062985009250954123004135397101638383552932647258341084670638138285683301851981966440443033376838905970507235813684099188949922670498712541195997723837265693703234669302967289415778843535075436666358662672223130434068321869108793178930071431807331428875195519164941342462654353822083716472122003245363781671331190726770426118591725613815390561018224587163128120154026200442783435875674425120263921133584432258112856978812032202002429859556960924168548659071135922607704886579745186977681998091681507504470285973808793954046599888074704503691044275740519423286555113553430258531202955618018595448358877574638479126537414493321772134729435582182537376656215151910355053303352425040560073553001540219235191651520166206561800653185885280165415466185472837993642940075663871587162848427766390605152283585832390703381482725624360714526108720049387819466863279691615596461469887253096003537964226194234258685761223269063832763373533152088073629291265429526799228474309588212730810384978784835010989160586160029683621857788615610824631535869157055280721291058275395157976527984205775487742200979296410596926997102097100404844464399201447238938816340257921190358598623563842330863827283086939533764361333946707768170823656894367523322599351951718739136822395300710889000849803119227447457097870830673179571463404858738372425768396095487444995865500213290487481836441694529049810841924673584036672018699444241721179050871167963236120079724080374713071489086064898952177346756648284836834728372758405577509971844240545090716377665397045395568587781887587595260967831159886805266265803323223547549550051687299541942955799969087927823443086631749936386066065910334749491151102152860125610468359097842674800690947436515673823579982195845546643865731522082989118850654769856944599198992618105856850889292721263883535365108148121216767788547657261585143412130092687923144283492773261156753042394709635509537957302089674904768015383030325426494467358914493414599100226140349658390181700278202837749504536042510360538700737776491207172876386244183891816433066617687087793233610017453261616284129199038574449109849642461178619730021502693208378559370979766529968006334266447123632835663154371003425917181592394590408805645250480152945013907090688070570931372603345651030279279699567463023163515162219137511152076588509696096916974139621116128320332571873836569596076285188735242314536389638803431681742971036687933242869481271375907458820312473963691525494648225458899136383164375351580243232910491263608410156843608026948365476442858792506315289603822290490344003988254284281532955666420589277637526392135048338540716165469614675667012612163869300167818735927326494498823666855025038302937834571185571802602842420720769516643434808309957447383792792006202383397104331728060989122992388640389922284926578253163681585858588149714752426327720521998325136794779573234950519708790701195078740422088388601232278507695119868513275409755505399235024968372625802222604787826599494915530059118232231145320149596079623119104745811634439732036065540672793696237855592076370318637620182200137809485949420617915008637806359402568096918611610436701545807115712711855813679602006085821570304321434404470215588755331038688723355276334735158271255774590341771153963600252237265704896215109892836704798150921676718448603824932468908876971295255661373993724848007838520798609100636380278487860949129548074843506266618056675228002526578300237116493465275859664023798442194738220554579391711757755426957108852661135219817254223063083959409362801221209887167781940171931422117708782226044835215665659031518344155787842935056804206657496873348889389891196158501155860840182559013815098333224274083039983432408569144809620102656458964330358584201683033300746383763697814753036536426159370726496951248041672204689498320237390845551704687737582616247192885226807500219807166940107036859194584066923352904234020655565592636884693209478390587296734598601441136234163722616060691972453186940612501669635437544402337269604191597652356547676256217990313327762558533740102503590144648095044553822333012518964556713216727863705786165314531458465427674343009033103894258864619098805974880399457795266227661935626215802381937211300526350373260752446393801014950999346229497246873175827345756961087114225190063808323402681918225248611509857095480035490848873846260057983437359356111939659680408325882212725824322265901769185979092075004820656000501370001696672532863208695094764291492303450480129977632577809661395650168289519754082931974831441647305950133749434187981428588004125366151443991518648773580380270456954280151032366923067748002010064896349389494983972939472687261570994023627364743055514221033885140401893143403317122744193958169009802406351223030477345495576433557483209631243118537911185918441274502782458240074579852218981522194547129176315197173107681008063476873761614096201722890553902860582713501850802149719008536753154588011400891021089147416836410778475138480892203350884652752823293506176648043017588474799166148815231839810087449618830880365780908481481647683083439635943082170406632876282417477859831298867278544333382352449777025240254692547047511014340894516768377593082329777864069918393748216375933170914867118569609413036987714622325914322365037642112252307675861757084100496653098964996063812384134183077760344160769860779244268794081326301308112962405069159436099217215269628423763866118446164706340421893912871100757672696206961871171560855282880641149884177402539783346228900536765700226525648920975362638936423775531152339301249624730507428994497188794731196567716532723111040547290347407190206042502019513645796086947066268287582184362072643032254593615388773380523790342251370365203635939460665215109309440508399429055509618798952332615250762450967142654298757593052562761483029778827778216095187704183363962085877456694352850468778548563098868979708230776086309969259605055455518349276426988305233173822117968449035851486571538808307874285376234367408315358275671820736873571834182428737927339410727837561915968944603436948415046384524938292036721468496221885216892895573784427054507421429698007137742376997075187627421200241919122387801931427964820728539644423925411856724539292338693075138121782109972750076297434809561739125080099861869908268341244971430430210314668314194428075505262701033563262070084488027241318816111178576169485693033275188866625942148732927800375075265797183283249009891426957947622574623932961161869205922883560809190898393293671827090995067001589399060054129484256350754767472286779380779448773465312343411937448588696791815688009896403207319106136443534972745021204175880565185910112991356839804451380290627428474174960170275594042354776360088134485431166274990027306768458250574170631968342644109943856056164566628536818631850980074333871152149129230122424370684529648865864233641706449490938968375737739669778474325162227221591102116656771572433971527613146594448058185244512446427487087050384931939442093724279426995587258931097255373187431898937442785624014545369092837291222397107551522910371114918599249951445487230338366937676414976608615553531641744629267365553690062351438206965112557071877440054529581663633635885577387206293185740658187919458293834538014194467746708028467209388523605798437433484657772495031891478978008339343132202029686840558267109849748903735543515066973794260031267764803722521055649169404110005511555444011951485377219353951243946129301190662218111819874818742745526917130268438968083530505261014223532347796704673884482178390083960740309322639407091794759898294295882122285713955904981407918638083662083673744638962697571040910474372487813704739830194417062463906809958246525697724615492776887424636923268419877641738124115671396410629420010835244096142760231961804083276655654866274328176232103102246971859828157083055057555367989667439987105343956122921835017457703510897157845152440264400422672613654052286034011219186250555783850820261163500378899146190862303345798513794736937073352051134690206510727514012635506263738219752909406177576164633396620021076999071371276329598746255274435135947183438862661814286800662905719450546461696042470736903991669713976736899511418263178491304178975232853822596379968127638060373432039028912153859064363020614731101130240279691484349897228741692792923716922529302214361878804911981699174798412036852223514963914884907021375207551445629227250792349341185697197531932215267222028602006196961772361873652434613060360879814941783223371694069034439485065657327030422025802434967865705580585993463786848408236560991267171374946970013701852308517747733367328120273361251935732324406474240380412390321222625562851862029272842964593579714459373260724067618168634420663222840542363734421457595668819965244610908693182903670042901495347636311516952143040721812838672871574024530217994797938241475236446493138874318622538988944388180935140675437269015385930152776689031924476867033072655949426630095210821946306327810711142498268825324291644924989401351544515811075094891289940562430496811493255690697937491698702391434370630446836406579236053079118411854459412263382560926132687169841796293268662175165027766451495512304712217683194212341538674245808878225871317426300056648380901902236747524266637883607538130020386632380831544946532033196069910023763758009338020068005817793730285395212887107836810122862221287333610479879590486939905079575176065834010864515400487888278462318763643718383858098644580996693499587050457451409982640191757087338266363325753954114254306522606373340311964938541278152757879293582713685487661269712623557091362654181813023862995078736568388776305926300602827144511104618307228982095086622027904466093288606828081961806320477595865385469609263840997437039502536225847227094829446608551663840513719705409576671262295120751097014351986241734455460574831874564139764192743978399900565905368541078670942243262601480064386130133657130543524176692071975251333874563621811884898617353792490892642448177421090855203237094405362028670652392500747304578493909813899791691619480369904186004382465694042052197628151534175043370317385326976690141764788892542143615986811114625107011025203181105497139335613103582279077716119494122468954650312163942317072646530572756861307242766934511769921292330835075221010106902129424529247315606487754634917046558310568974183523883315976521439337948644063384927994007526003270006062494044718660645485370386299113100403122433915092893520168695027303712899355638312787910668737518718001581797603488112345875761961734724981495645030522590539691450532566662973981944415441368775461948370370772430739357258502918054011704699718771644254390223837571879674722271303344054885984665597303250785464863895063628707775622557987796875584789558631017589264056689383091836461644579822863066234838628706615048725700695939874406575664082092475859787870259722336437241920634667804841810333294988722023559105772202716456801023285048947041433122584499085668140942549587712864488808150462305098693928403605782725397480758351321058474222910625003818525983797833936733383861104521068552791812124302882765659997872503451664098963535906670858283903091503215356944602293035737837562151745719359600376693236583608639584177285061795724178612490039322556939964445855252249490336191560526152643661619827250721268464476033185102457694888363832072171866117207501986357657969825030251963488030958180964549223864473996410273479191395100743444214555883796161651018319074052159951382545585006643128657545796054788335235315711559318377030907338274570616838819202681147505889480124359135214049094415151252431584331408210254703601668816667622290099629759722205229936190096515592175113646227409624311234249660621448427151716309960433788068824099893091890807638486614502415010178469841296297325526776411532075048144418238608893782667015000696912500665060728190091861850045766988260036478450744095064987800382057471854764338731086737616020906727274099228047489820605727310033390999917315714860859835837782563430921362126031505481119696571621145200261453349797716537807443985223307123976972756084774462602347333087354831562439070259009325659302307791937470239369934523867943719923880665438278240491003790113040672139700766040439277521008773144362260176628036024330690212000211654406555624585889859109528630222307253387644171440423671186342350000830658533433043649101917882691214201901860759410087870843531679874172922109347280298549327818912843146262629551973439297841375797731385227772943592160214939700225147634889387818707893044512693684957846985445865337109770373418350979387847561586082661653600855348360531243608525177316727434806188748569314153103069588041965309497937229018307075285296515304333678587888651326737211904082548275092558020418394782732519304094941259157261552433997678961827201374082247253196314767893720747258794735430162347384279849549196516023979922378914894253541269382799647485002975250419087131843293632279759460111825314249982032394854133800113590555158436188400201881685152362854461600829672224880856183919016380069129264545127863857419859426738412993567184071390823725839333648621350713359309020340855377773828862759117636793700363794847101134019696896343925830128839480183499917316543414620287287789786465572235261805920994114229299179968607333224378359156524040554601299443523745657188201516843254774245417778659003600752285415231877868874264241093134383766754001391704881113988762061243076456103164828260062724305929720600432996024042428239617620463928436851102877637171755101936367801557209071249591460674280237691722590687814352685732946058227408915568287023918279462827620905202048736007876794699881639967245720056697331625762694236346351129715741765294618816289102588267906466009267023692637182208399367018016299590623932029484363876579893930293639525011808746101882310388302815306425563222506788984964664981282212090547323542304956461888953859054138236540816856566964137692684894156703935470409232822259676906555420384523464653804517496393663529032581192830639802345191928658770562270056310487839457336783384192302973861031230449415160498757622582136699858474971314325570125442502768845857924103382737491857980313070465884775902299366877968669124756759160706572767634925513198859799706925957817530257856073414255482453499126647854777844966354085204232391566512673043481700045734427160010861540344536580109769333217568679538038736215853645086696632921005470548869726034209275876638357069995687149924386440780972950294289896999641850482057519722283801142186675937856910094958648041394836193125330960201928611887195111680837355366688914242936121896531371159225630852947569808803786539906151013700684991770837831853874390405342888675587078167696843149981359712564143111956527650852032719579972976044899746644394161102412391838990191569414852694066728056474827318978194448277867429249501624060291756557581168581875808888317296228986828534521874557649729305011265018518746617461419700496967048610968492975121380741703519466129559187247268337672978168064952586999513577643395058562990478226577373783928215746289088354016555050727504088077019238355736256987456496956575705846148998440301939191130274021362150736470035941464602698474424154650075699782043235085352868719646832650325646491671011124561469730365968558006551415789649610581488527262418921583454145195118357412742469990703690489909836909168305181947779588394597902158842640496949955622753814948132952410801328723854811127937511224700994029195279447319733166623720589560918790154932219821794933904360634938628953287944920048167425664245308109127148972794081682060521660728983427240357719202727102629542163168205159490491243448365260602757451013560670889407726712531982309362018967843898664549137215074350005769469590251626535606553486791603584738441423533121740021467500451137535010093330954604206222617490265478088176442533618130650673695275979501946358061477653949181948841085705865913454223981296044178810867570344607909567176769229997897674933267508787029218367952414768952281674248194936603239853907410324182259737819725592615628078771410096240681229975775257283419246570567557628392384010268360595327702561385692806011625221846747257711811106382086564407747397257559960460992309480896417658291494094072412632265021551521594116891065389476856455413125330366906082896484668412740410031900298357189983226422872082935846004870700175269986006679478834501139452839847001636873448079730778913152942483458608125300721373786887099583929692401560122789902567456255901334641754857674925797212058735396226282068181896948580822616574749319203042741738772206586384460397785074075526685145212563931051514753643218946273903334727765213612318193332609857026678785339814139349354810119197171111256021107348634168408816131020637632903544948381331644075645007096407514587178947086644829905732142875003220646934824979301544755576924539532720770004088228442778530253537460110119311451752349630394589779452891135119073658831450196485460870067436297652133155738773326546555048435442125722014102204587836772824700396923246791724321017975121545046509038062878827558865788743144661185682433503700719964334973867275019459630836136180994649438575590993512571041158956671562265869776213262510766233289018024323612583417376922009878464337742792256401055509003225386876844454077486968445600937127059495773518537884477077305952953586498264988880335531331878909324846673354800521017007584661169476557305490299959082970538123975114392816556252026597763739235471617227924992319607728475396279567049861055006054129850341973170300903106676183680873109780829068491257525838438910700927994284812143381576216235500045633313006339545795519747653920702167942679835148220156571919469009199725374203028872812081160057028021724464370088130705101942244139536536408729725233467609671309952256945173047427817745501251946979169562505483596321636590404939280998161298523071306720830714160681335266120891470813318076467459266353325658153427714754954554953434522526128749692642912739721935902101903574061678820392509619637531625963813200061340309618371524471451039294437534588320455461988381448624805166103690140216881895018160904638961391599035335334029410434132248412322034625017503441712298389343674264118835239233250351877134420796500078090348298782014783243004274367951060328423668546078156206508125247479673650334420490936945950345048756319336013288724694578770830284346645423797934537262983860163705484382345816624521178748006311982381117035817050556577211835337238720342340477033390102894639056989583140977350596946302522059842523810726774469923405595877569945224846109862740782840613696451377333768071391039705054625357325760044228495300112100168887719710905509285046554272225037288766205591764519154538307068669960286213811845223385413178954201171267295177316343671403517312487299232478259010117394688604921753660209153208692576925855842895702705884923598685911840854061592553765427444615429108158207593731064178994539937976814845805772871279764304129644761746053516132584597867168708067182450073918526776666534550771065407784791989461701215200611662098055993723746949058950174116360577619127559403308283955659063344338254844376585121855046923006360710609516265184638697982462300867055905858666498474707028884363675865779872122480514661060622796597875793900137628397477652781128047434400261923814538550566002455339808819151025397042001717473493842976866062771342402735011602496024817804218706339998344699045282636970709514178438267635506550192504255060533843824694821533595240961870104799135867811651308641252050382239497526919060729007485351410624906151387698430131897127087005158289922094771926395371449430672759557482005415024589507684884603539863941132384617424924008226560043226706717784268092319360472185288538728741828528179416086920004650563203186921752156031419816085916031101527632476754022214271669424161982889371572214594182930681989286425217037341368157918482781419695284574759264910205680320425364306895203453738910094562795992115798935231023077882308900317170249912570851150566861044090163284902353024177337628682825402623406933725438822385180412775788447223247520239703539259116715138379741539747082483716994648377278988147059519448556057340133053950296715991770042210039535959705986851593689853325057232190703615894190288986730879515429553430976379545097015238281391596310351891303403765858029566771721415160472534593216167221584459211167859710331367182263905246710481947321286959151953972428461742626535229800822419931424101135597506222872143520620495601185525174562710524225171725939733318362396710787810423712896165921923143576898256833785629865729687978529907506850509896153671967289082453891307653843504197284914116771163834866221440534447162481830518184378422762904134209757103220047621501128036231676065474440033493689076353352369223833873622020856928876297256705311625162262431081073099965146805095122590635385254276921063486165576154750583896018950318829020404915037462175880127909174334415882924830859213534869642425616777780625646098807159508387464092296024091499570875343470484017483749755149095869365499891642848110099729563920988644331544893526773112342864740836963885500594887581064902842997089423314419645695072726504025705243741579020200497516786292034039902513251621639140265397201620733402732398698468312905891709786795244976470690738246529682713287051246278367611853611202201804186217316125950191226743549395043264011797161035184224374650770969786637962021826180238944143454744865322770100983135944320899543946779045462456692325337657539097415560760188800193604606033581056378663642455040976605485085405115610083660325522942089106407349263412626311361118355227326195167981376646611878731775097425681016360066716220107361420624415470413993783372995908485103312985916071289087331663645958888093526271069210498461636793872156044403052683421805276150004008287343200374459750336711232802747182956650923347635153403667289965098676926065224083155233082920980552973849650529828222687935986514198467372578763420669109050569209911564533237122427424857460494073233674044576916894989511448033665223585816608357867413090846058313132154690336760971179881282547366875787092497305849871102696682808262512499394303648464910629530904856896182983199007907517587546891094481497320156172703934154809344752232195467461226957128226030141134257223794969366882823647162469533208626789534749983759124159275298284436922445795005994766995311388790158103714517611615470575777940951360956881667582623283148104841140320325450272014819027755703425214178677019241587006436082767544313604389066151551410751074321279186112375665711762234225897591243810671126629042912079414886139584761341335099718996224671465287906723558002912039439762185058090963510456045709984011772908669808899224398448163532974111228332170199598754638873791446507354782771006205809701115401332280941920280195918539327818728548580219489172530963662625093247240358448063679144031592384147942463469498205765887531743990460180561930749377829328702045490642460726594644220267405182120590407272830772524322719740769624062353050903526575595468399451744122873163137505569063910313022469954548606155433745537731244757126590062526765538457819852044373401455558905405450311641212390478546072949808112013839716511324710559758454003697587369618620018450269483551257537956576417254790214791105486962964784806634470304857455920283132834462893485894074449506028366051905499783404245215910582081402324547867558405735590208491980928958076601235757384617797610727127897359752144209382630957467944128443430474468284827152869352782279391489307163957507942855440719019661569909090828889534048129495636692619156117071735411447504655032176882295342024701602799514855498323438333049873133766962167340797651494412802035663588262833937517586923112629565957987793464058973239234426879191808771186296080579551624603261543930257696065457308659040723651685117212429873836110531301784732381803453847602797355904289814535172144541293682100842768570120349341776349254460001166345138384571366010041781994916788312723576044001169917597843681253782419728126986180938683664550965269130489769248727861464721774332444601212893704170517640360225812868806047252735678415576557698345197082378729607709463823032480882695972554871509865076514339412574826520546827958616264305318962011979688124004266708708472732706295106196670053806202531926319712750638805469574685669853541908844650460458913710772801456739306703202757975016028822863601197999369318400485167083550743497898853074155574751679625049494353833291506145608277201077977964564317478805212641373356189144842187052726203412355659337344600184921531162762406442976817570557714688825832992608112638051115986892944906222657345584585797798870582115069968201790261839731024972725960760669875057596166682443275842535852379756587220050846544821811377207106824301398345747932497289067344401818445014484546952822744553336331802941985911992990207726103387632596113592165395020201187028617539624854826868000065518725912058746968195903341930686803858596981139092370329214825232081375184248347434262991754416543934121243807907044839444181683086826933728598855302886661469354562451501372978943304253913581518921401630542047862714207588149258484822894055122219573527805889529355907858270649711628357687892206690283196548014632474014239398145928807712166671403950382880415076922831937305401002672159357633135994496993036720497859291859272741453935566689237171101899522426297776579502713653905456342440138180975936501578610996109167343191965258816329166140715231059828734501872791915651304069559889725291143089382116662062016925783049435952809838376010598694512934819613010511057346544640035809841187398927866879027807035834681784454660104331152861168270423091489270034839255516220833447024127050467458376596439566392880474337906904189806531877388239505968038511834207600504547379530073670783631795068145673120508210160927729378501612390776303852636101552288330232758292260863642901035728005784112475821473999343444983242244121806955105063278932111321786791034818604061434376581971893195357535276458192501748937056845922939330722684513684131854759577782020140834835068610212883455196785891700915808577397268651773939218542552126275883289856639709683534945284521552366110220780358293231160585573752710895404406979862402951882877707572539493363830893482956660875910557119963014887627407542813933563779067119984277091829573941017356193113661684412605468626489279490484246879610778346921722549478968812029694885984319288836683414926253989400885345710591841516122859057275088373040793025435577445877107821021371140565567942540290147668861763340012871775578739066608259387883800851774374311130996549529987865559027900188365024233822253089959709012883655609547694356684264300231273219789814107712136701567798697586306927887145685919336800224453009000374183829161137031920933745005850312573752030891131243188797849364428278898348715504050964214703292527344726145636333677964860255000879078952051962628601859732463593354426619456356742386276422222226297597232577598466036686957356777267611941718714804892673608485738391762296347443121677742005287500469057778646762666887266090081657935434382002369011081689509101340431043618541510621753540291675036014882824592967733931294246142962073459005774667692747048670943275752401662368072019230425653323562886735775597761703074968251584206227958601173847864609208931005218348736572531966474170535325862800918795903282160396324700343559875281615812571761421816172320100220372869974448851275324945045476608147830350520425905539183526956613886353722537219220120897915885489654483461938390188860299305727301693081141885662039901368917240763141561201793963567373913992517716590289919224302473522447214347554998268698642707101088489106328951197292596019503927117640830315292247466190885990879349475431505758533391749573148655970343509618284160156504059772222389937915081562281215866301619122391755313995569953420984800007472990569768225566814265901129503773103303274269796817657241404344143623394547056632409637411542159314521891365423305053182688505143622743842354163412088876502707930654984178189477011158078466980417923096303511881305687441328148781786150133684519514531446181746905767049494858827453149195855772228126562482049878061734294955120159235599754774558872158705326969764756269760319346058096436305549974537153385496886284780088356707704118713217190221927553184311137608149510832514474051451265456876666254899191287021147799402675733520404077617896335654343481499149909254166855280653665097460731446827715459939746260016424352712874578708344619168722035873215969937992299750590477446520518913437843024110493665257478518332731675564515693997024578767611550202248439311262644278689950579942095210155375341039280678567675491393583222729311028935937404018502927544934337769115440879032113914299351001018815100873736741788743373771127477840287917370789456946780366529474885010911635419477291483987202352364425841614660884770922954180557293148376916556849263778096390311800894949905641738907637192870405894032324701318742387343622424927589389881904799655705143573578015311129845148144677743919850657106723622403293469112017332603316443330818890771755071322327524488628160547635773318581987125602542348611588025146763362297494662684689963393786895923193997079036924712043427335841597704632651689825362510628815094808352033493541476275763088368468624571574834913356122667177291171718771778021674948454460758958471842858787272578658272763642426185410046220555235828289019784282952496938742092245343368053684267608028424513847753380592416968016771182933695087940072318484037933091125900230352332959940173887738885896132834656614909479763101476696895359937940837324472112499542783236255488292660530185521783375442720044536420912970572503878653467835536039852181753590949504312857037961811222866786038584276098434551684548336844973971582359294058252111222768697369454931374496184735287048614291013165904212643121025581692185793607558127446048093502015804663782972225925725867708163104642413445671465300347305297665593591899435706112624779555301178621246967011031864341883880132052531700105187413247533898386245733518153494723915086502717012054800703135851322069874123861427576024919276588282887649337070501358156611622721103835797368798741733376527354242833326148727837855938722414601783594565724580526665209360470574104503252571224872760030481774826861694079570203039211230253066393413753546521130232226581793535042237864670371039318487690426391206711723301280720014339162205641111528735511085083526095704375769177769670931092170763924393945950597636776896409996694953845390350145220089860976962514696314926935095238924978387822267920481228615676936689697117622534519666862807465607092172721617702651037825699555857463278344025081197170548758606273344449927125441298984848246865340328174256096246622917326593837505423684129344258349052036117238206230401609531148118107590050490135611661236295613833195412824966664028572658906900817263263463297056765639464398453205616106210037214225811004253739297038250618691328477941920197530437434475884291492087726586350180154978495468560354872590628285592191977810935538996213834591358166600275358454549565790317055749225533076924128964641425987792537456502477148157460033642071852170053101378631211793618412268523114845391296820010891685126917701678455562704539110321266996190121886569723814010535319271409717931086364129705604814038615250132942584795009293810930447225369778231085725884794756137478017115354219175276569724429147952816701946903707459521578539010840206206872611208135984054046637234113204062579480920434654867650029056521522452310513763867894256390109282985512667469135813237443183804667413243034743288443870346916284259119387227813529852679418955287122973492768975856300333302377438483216278787389611597958047073169204377010947899020448992380613233131101542814223719378885075050424189745565759643614653379101343255372112154398156438882704091715573934778880738730589070305608935066758809480814973089448890690692627815831590299104158626136534538459525077147596239529079645679031450223169239959194883934881335329729026728971985351478507968400958765611574541144928853213244733292676567401038531394713187355340396557150544215718402976324659618339869094299441995672496751236104431042083720276218802996822955907068616072082054966430158644661561251385208222333946561193358701040845624986504854968354365101376860510311306017941736266082226786208637859605613911682835747128939647801873352136878608883515775483959389087570257119499608383932560827094242869056308533099954111343973080892509968953097593354295856428847746920198618319721841653724608599469846967084273170910850442015050833647158288857895332797449183585268683504947747430860592273187869995077395335187037018662498202913929093442511130525296933834199914037700714093297610269656705073226278655206089907095106666235413369515793674781203983773795195838567727935407135466351093293452321374581382783504795301856846426746459351663715603129630954580825618766746326010887192272398433220514550146027449033470072597097269229925623544419029870181515282250488914296846203247877426513286944934740551785660772846136141559583071446623015455118565764167930321085989083039552280622761499140833163087710852993012244623278603433400064944394412291189868731260824906388354645271264027772128068702890091363659750780242730824277403066136111296380981295355765982904278771086196182291913991965111178030329418010152651918549418112603917224889469875887814827355606470055031246334869280464866972764117438389691594201005169130756759571828602008508761949419271817463415350125587307355021620029457919750303034250456141869470859365710937432603384719975818391338455963080326265961113900422864586042008179179170849990748862746300375588165782881423364936447672152878145531889097040829094112363213086154698397458829021326595557570733617118110428890970999035907265238977106786263941427515053733532363264979574074662341082122139140409510992000236558877446400414236016206426528229589974661378960642113471551801157456036167733871048803625291926276375681279707090644114911801348969878207031588915274385870486987028438513855926476798933564154404800878310901699276488272323719063319012021959347546001639799211277076436891705382729565204404533247984493131636197618985249044848721630203651011561811107459867163940681729480503342541608934028116483226965265162802349136537402598695059757334732076611413194184661279630372036287851653637103286171061499972208685654658415450018373757419919742994554982924144690945622877001968166025216457806824970648499545747288724738011016399100479636197188892882871039823474450662201249915598248693181335460297930580335141728211330547379434392432766334164652180922652146830616564353508755746236803390021188635500826580633276279070846937603892061781776227843252854104904277674594574086209921200995850208628494568689425425313379078537449756224573240901041687633441378793156398800673626063427506806119646585318328779265374158634203098264969813190017112232647931444963903878292606047396860831569377160071872987368452644249779238358109612533654234317623780728387380019093598937217027982667934669334447598734902646535583975379582919737331021047612141236663258133562054177255060206994779437356568918310043570068803795764757811247327511814322287354165819955753279693416418337487702716459415783991221917648360851845539709744467653205820907778224719218736861356396538584331197968570410629740957202062153046271594259749677823311200747074528918121944271735035093559970322628586243773831655463028981478288099970769349754868405157704592067173614163858633562844738678195274528615371146649009569351792436397678557701543848717897479002797772091935950377522732421023190900268295409227311838120305302485482621706499686909447623129965196435525605950861407053960842601271742369432620974180396448204887499328547226075382819229601327626760847921971611507704864624989650977468368624056199627216965730607366029035227133819859307810177170034275041781893661616184627105143797671463408997433097229585925304290703432478144836607215158432404164861887893130066962442374072196488167284906678805276037181536325083857553489382565067040616927129722850007168718623688541382667763553849544612163297858009456907009447852103572917719717488326202509677472036298919432264143903403897813438942711956888213037897408619623294188121581254796576255468532143391578517962016445218724624017359061964182587146286851684425383222289368865287906571646191842999105485476355393218254463661126013072113517931234839459112248825198951686924933663589172550513235838582115151703040309752154325124662503120592269812562322886336236036576568351969235220376973018278301374324803847476228482403462237682237604312618218926416686845133451768087280127051839344889593718166169951618215191785542796097693681786948999324205790401517803840521427824398527529046183254649236319872978544813897056101331296306610760518691749354183242547280190774441305115477355482901188825172358752168968889521148927082391198467546056065224636087098302739801454313508897114622900973049916385548605478783144352369151190024301126889748456874287329138686051020900333872620031768337129775875127826466159835072894106167122882692441448019751431492312941265316240179728630025640625731311381924737217536004375209558444210842443866207445660907261308238566279095632856321678623944150967780605492445635362068912337594425934499824553993118799433916269770154541011526030035226137738401566870366330182103557390270747273249215863862260365783447529110910324486651453537893773723343330633101253450302044520362095960306132444443204491469625988613635717570244408641053511277243361723462059115918327500543234167554005757236363455274773105154729308521514646713177913500150930925898340324550887556441230572034260080798713854837769282318502299168974341044317338618777781429643810433068687719123595859924500731673695683734829104514105412274439300535463940871318089072760296599881886540584109685375678408632425003115937237835587035040110643042591995565896580641091305793015998330224950261014222899279212510546872448170053536313419491019056112818742961950287138960911123994196797997964683730890387520601108475971595326509768465669733987873834168968570729500007213730355435564969570105853398110464030250078486231125907664176269281412949811999555678673390586910193156099056919690865108752780460764441638094948963272045513265960238578411884374387097270329249587078240311449019603149332926544477696495767708764123429491930219053133969329673691651570463347616792681286298629828317255758735789822299810577658815901342452298729118838492468754258934445552268520897942976373363526776196266817953041873145370296013860525650309565681402114914713589494846351339337717154396339995439389127320146572233922204035933240154885012483236282500386793694000005104947028634306759798188683536604881366194551697748409928034158776281230513708902844796364260568971118173743093778987194953890489166956882429846492461452108187949047028986736264321832412104484774998397788710441955882308963391151835650114523115884408783184180123526715989156370978942333184475507925314087071780997230000239945430844423945500472529175506318910996478827339432702873434937145564231255026555514987726275777873190408183670313649920470237161801492064005725587420727512820570395120217899377617976963298183721332893345958648297836250203352520026076821321639964542713504736850338214283100039098340486610460456661338246915668712165371588526739577315399002999660879011740533026937086644267281718946505312703712922494313365105032669246664479703944238093433692656461535368661038460803677626535330324221206350854698262749101136150254935037861837711807770291505069939294929679249418085315448073190065829576880737403843270389431625651346577670521039398739928670899122985311376823041234907686637276257844818040048467633828053739779490067455332621356035695037520310175774285265510567974093222073754273981083360875200518625017548096410004794621428123489970746241237758018938859080810875339207866938936819609464764788239452013263241011454375835723449690246494063518426618734030480234903475202199412446013453792797849805303789689711927466895946314229139827617958703119809114741310875569006591830556358993865909064500134477762692193235053308718239722157553462824276026025855397754688205760432187672548644025763959028767448232599132725254558447598237709233180608278879107867714927284194193576192467021253476638636218953405951228972391419382745326191488549994965030968608045873228123167965023701826904979787046545658810602860034250556523730762014561489428235984105607275951596128440846768270192049491373782521402988401603101514546258401481692272472863666634637264811583018066074857420489679108268657287916239588461392107074938562214427734091529969094150446610096782150569402661705435054943775535359933693437764276640020406640673465680378147361885881209800018480342117182127236987598705885764439717321759435210807869909622903758622212194684569660131096228644188211653301578925479232361331093297905887115432792136534834465326563332356381420288829361398584795957175128006099501942021881239248195654984912369819129941980356955282885582373313929579847314424949428633874343496977964160764875250680770446414409206815957931587250924304610997000443948112251843040475895059975816094008318719765404157579613221296455745612761146808403197012883791978750045009492693704869289480104663771166449164260677600583640413309962938459718746520364512646131891646063810837210587246714773010666215376073160127089750449954990655479069872863024098239632533724533971801222187585919324102746246192261919741568927289626606709034568278127366376052275764671672512440097112015389912883278076104806786592508211623386702651790537567331460797189937553829365953556099145533816857893400741181232642580414619146884140037816626499173360272372686483032733226462018230255605427812356138976709322380061163787575733709952232217766789223277028046406638580843023474785473365511795965007573680106205657361295643133032831749853685164258840986230670432133512114183878979254787844635902056790984403828072550320633126097957955733932052568220198709669596687916935712142487992287257106702040767468735072046095485767743250049963275438315435643239300984908949439379630785090812837339392787789390164760756147165636887538817598565493379263023860285731457491388620820048360429432325427128082509223666063926168528306176656968128662546339674939289557422190306745297711834524520942016108505961045189984645980375071361492528086544132640947448902949723963724609584833236075512596145839931737340568793663118257446892696225239003407921596191745275061133297532057453116035443281903205194985869275555846706466258912915626613446483653206317211352203558338124625723062727837702815147370151571898602431154204775483511894583154418220835257025185675786032390999064872440516653101534823721582716958294034063426663184376360546306505437883893649020428949389271659829825774769048185460796890799065478046594410799093575802237388495356820405403098127871008718201689606724436089929722212723785243240971903216321360572867575229589565375065833632250808142375769825699887987584807179110492435880718079727331339048267138350403943005304241052117359234012094280327405105478730402826357271877792842187648620206821665709446336288038130378179871786493670026382358312828461992519052227910167820869449846572820227839831436949584000902516276632178869670366512783430384839036665994289760572350444576983466082658464108282763653559794813232457482822936517039938050724706686709704296670914463282585042392844628918022865479249690254596828567321313354223640219587393055753276038055010629021652776974245263833288316168741599138734551277060560478483384618205601305446235474619147041956976691018587357179388520830772167878637469367989710746658197418988703124389007479503092603753211590850804507034340743247357678355130399641412749629001506329825013288618592162179581891677126580561769373205519845338853422618425367690963524593810807115221342199394483536892791178998630285768733339137286545802024278583331629687016487721513468537284551835707236220265528059650836107954211265333619180373837091673930404060702357424175466265947778786146678198272659636582577397866433874306099679591462587329671159459341495742426442112150800824862597673704378637809472244115012085541598273316534957098717345516292465921897104494148793961638432638337673886016484220534929322449174077042047647169955742319805007245484139031773226313710864634978921567093151664277157470875817222561408148279557690659381337685806183446269416614024484271159672043013497769311251939183098986611671482278530165770978581298798202624525042164686328454671955630351009363161320672875850502487235064688886197504110014167462619234262048580899741337657299035054166883487573841930125088659271369060666854442461869709504092064091275693585931375322297472684104572192340535580806506709768825532335490311645575145697660197015945860419407522270352934103817450964954093086095393937147995729906305280527975811165873866521995164045902174599363936078954560982074077272361425213264118046024202342702386613025242431248660009655712840176301717500642915025940160392015008415656231445016962162889576054236570461555224408487007733610244914795932056735238911791812123382110661706202516158341238256308260323482819522734991577134266558628861332777272046775614842051318807408726271413218697700100832768893919154674354993884756850091691999568250244989769586031330015490092039886915819115737621523500118498789907031791246613827875624757648366383726269113953296785750580059783986812108918574017240550565012439829876584383219893300063637603728911875703611020194509944304359656015446348560330700953154473223845488203018781099576549887967882107550751231607860962377587265330723609083167257013783523773764602031647915996040123032715862663284441433635819583846679420606090875539792778178263281101738539628423560035878899155201142159788539715657689924140578624754756446180125813000308941100347929401035569683116738843208764416735028474630922840300504106295491087332273780688411417597131063303208914797004488376013474109746763298590519025899622387786062833462087749605540525311304554771004208153139370756500615494447291896017569049399269513438420920258466995378221063438786700936428833748683985008809406392098976710434338952398568377673912288718503925371314689139825096068718109280672378118263517601487461540887371531706809571741396284704790273544390718851946765615082095430799421698692258227812505627366905539926001181608294964167656236949542862945933778272477975823235149517496200451046362554768074956846565921595142614330115743084000462368377719247449922126736160547233507657361689916031809189989687322657861933588716069251856189002164029694224682832299730965279328082654174104967209717420107497583208251619640579488226021784294517202086430259828532175045064727418175518745804862443240380717334459151114579623889486831682048931111697199581362134678954686242428424224919807031806370335004247136733652534470012913754886865630225928249562959672350649386023285510984841340394737034166091145921872335519414999343887947790103613043225140393167113472309765556043440185379689883261868115545441347329124249221692722912223872256245003695504376272073237102088080606841856843495423918894970845855261184167996569305998133299236844285744686891465548363341300950393048590005633691895926252215654801813336409075291744111195635176277497314121900457514540489794876122937681680358234896610646308567702734835859586529036597361759348924189016896277533694048302419377996465071495439094094517894905516418362123949377114127537479194602956833812740877101922913430947186367846922790970403278742529119060571809371687331915593727280825681141874443792426063510622212381444268356151739285171503051742580995030852831770154151203466711456549019595245621936637604703743464879327025921725190835983713898854771910163305033599299073499697165656337642437085085423951905308897815874525727740420868854494401703693939379025204334642799333090128484695206838120873122707239552167495870494082139432533462534457478456268080658296465795445474214213171978240696633226953389326725134104748338489884871096794782668360534447371999937558068157837047421888279586129250750437358999449014893752018419995630079417246009606221888945947362859058503753946546807213708372651574216635985453274975870793565728560631511601437560051976983042968408340203590731842722748345475828133886606253725724677862568743948387281549115662635105946764831130318952529707517800272848440967088973904422907772450106955387864273179155532520511081452451453618956384757526039676584070485265838019091101196410252389447270416251078848542080573377184811399755767643090575264493607389546688283316707675743653633029486356398351305597571732544587867696032379378179450074735067705908520104242301999970619882434869062464475965122645239869103010169055239844732334694736521969093965900545070188178006494973621385640300277960506195893879049052321341556339747162470465759241037006491862163615520022429928041992466183541995700948236398518673059275011840544891348556278772560142428832650967853890902639105755045792494944283662105671782449630347766873924985379044832401293735784210856707924404502849116425420831594811773301233131918600374152079697363005006100453181691498386091580970322893985393559362979424662065658546564895197419145968141725696083909434692962383102980019282067514953879642144411441990942380938354809202673580912693572161038974800323983160086673650024228607618730027202036399543245415147539798583448781937650965343016324860649357872300112016723453500363000361287159814169193406497390345801894379405159473470931749548981383043254690728555182914560979024045255721004237573619918710569543961440706309107867928553754553169437635661764997946774919337819719444274540608807863302036210383877379312785750809045776463016389425137201908934891208857124465463102856744213461143590232030420062956340210236830595080839723699160220801187685293389452803182006864180980938215050739327634534903299994449472958989727013820875649366769459677287883883767923905785356163870940960475869694565756155948346137838193604686947391226442331826603695510025458535809555137479966238931482168822226087515012291387215348454470622570264608756267843049769241177740904355347187768927165545372229099460176845935412849040432818291828788952192640229522418470649995427943017188117806862896527710253956027371811591479820030999189776675116058266324307102249002062461880219258941975957811796113449222174998150493652396315168334033060312514784954246662236256898171132772535983654644864153351914920839037285320391753215103510414266942140267369919172675173172124426867959394469720883606760402185918119146949925895750939410038644578839987824596554728311952085945181663090329080731387515065179642981023604130713534059323896177888960179702574077166780288336445442856683510167698075899017040793707376316871168219274206226649569880829575460620812712024295855331073499999843250365224291142884251317020959616497776533191147421830194640163197775086148648592771231911772326495081946954143157052497372914406818406788039085455906951830228227674875181715199604156895855003480728402307412411771900386314597811008308546319502532929932067583816829088449907349948605188752546406297611343333153156660174221424195793505294918011859290949758632795513544703673645675168472306869977047276001609315529903923485628359251148040793227475985847360233169964207468527380152183992827202531426272013348330235629305860569338752730444870704770754661296787441862396139131301840774102088950280258806219643619917713512491394738629579762690486202524716197348943493397856367775965413788245776509375593008695433607507505021835944358641467339374487747072002871618864573560324661066687461969826336310247265366594670470707867592939291682114445384513238191589642999011366621628890475409537538842999929804544108339240101783249395853930570113224624532794396878333593943371679390050743063359916606155536821832543403062907506155125844212850145891563305862264755676862164928334402169789453052489442153892785012425637866332963157340556844501773652078792057629716159920800136248065963245093781548186390558064518425612405415493178326717952406986704106318762518825901062631036204638953510248036342883139076890632759457579522415126738635590661105080654508199136683873260582547877042811450109920829443688936862796164942937325042177028264481266227229074413019001317919111247056583929194343707694232472962292912670298535462104708186870235270443991429848669417219856563531393932310276615139318810576625819523927997970434484113432192014022957050210346189594601250889943468754580004946068773225370099980256022309140578513815421985364875097228157075458545653793021263629306273570343355016267721336788545059633110230872542273844103008219278985077135182071427200832437246337001589528908609660416210076874880185843097279810970816842199628558270786598635788038157600496083197285523061463006457710636766746002762253404055976855488894818869654383487410480404984060702064099622413913665458235976558319306033084802957181895314431270806904618463793148485156658484106061666628488691893633179664396588220194484320614237456939990490554308646203645405748981709365065003135017561182562467305449032599895472945977249942345888788394230394175817969090513893485685794073140421885461349775572263570648170260113308173007807575381723775790337057929747828150555861127701536206556541104236489158629336295244101719625073488202118276547107856678317108152388851453909268810054821544837216738190637519010126370779645354640575485411498809201690812025325068190223030462546040777046275702063539653138679235978537767967725042749622657810454686076228561743399436041278481756796933116971764974753347577948055275570897985906931577097170776217374306562630683530136597397199609278059330836356599530154189052771076469631229608056781012656252182260531159538158266645159540896717749004297807913205349248489829022495508916283495342390079914973534500424344942993703315177570535123933397331574124653893246597495340023286275402459813977941224728349652739427778752423486215816045639164020142958540377848927860182765330660688646744326878781452518128519734782944045378297178383983725147957026766410015789211566919707928530132846901645946131818343853887709848084695290870059839741949353125545354123531354996002853141020943746672255599981341799217916469792740142403148380184382197519923270824847145776715211750443541989805167429439990979116616340819406863858343861830128600591066827832886592535292466176099834394887074854710308968800110526572194109694467410819949995360090889637117716543559832304802614589581118312604276457809909831004940226098928247582858164225840489893976905639547554147332191873824405267899514285952901537324139512672632422726340865208944942508227396505062495183379547575902984151000572143030130137689765735307585311358847377094100043558571391381816337004495019569567837985617981293040119627526053868450571049480672411754698254286410612343890548290270295734009751215649211172720527174760253512780009669636918833060673105939633168126819031021324243051775096906171656030302504155605696525784415496802365483851206154698576627456572999973434757466162037210256008753581697885918484966834945156043890275313493076274631239494048537371396335242159186843549403339243498724226251498683931226953336726142099409301845309305194540651838470137291858077141490676490222462668199707818119479419245579245780996355904214557942725327697799074585070733184482993866497834962100716076024603772821976885512318468994906456849448056565029104841039004284891146248128718979975887921475259023823390208081524090082903669084744335435334501004026610002917640918338995017588689986950721321233451718324605917720880683126585575262802468740818072389017057735132585746737840391383435660430665916223140678051506395990542333683816775354219238130379632694021709772484721544892829546495724357977525941735111779948914641836889212830065038106491104367416107272709108664759504007841612678784405194198584060548107598106633957908969731811183366428598480780455336795882638758086362500686860674906177288182290524933707653860601197997038326077824496988252662345568634981873942291133530541624849517763445756154842176615310139659752988516724296893308595310112285848116766905969790992843378250883399569914675725567849855900885624921423917812018521299923882946088467966705679071647345234743391452008996053455481107678306544650647409297186238628095217921005662523875252129368263122651798231171313807195823114150171263022635119151659623624575928881317051616365424071298681537843919331554926366163668186160466578585767405077629630522124375713157003531030560088508947434058390663162074846131041697997138116905197589772890759494257412742227084667828888909959149922303144012141076421009269502563106570255294142242639986637228217612630598952792408999361285320517981573849413928301606161835160400587530620004583174342792801594346454311216793029236649796379333886231720849932718892313504949322552994066031384953197395125188290708577829255781620225715560310812810427609205251768887511111038351320777807548706781442360687079953080668096331021509720092386834838120506934976064806383142813836755149053724950077558871892229513195140618830604810264838478559417978602736190833048120982743075884332494206717245074795259333461879415711134570453046379638511072246743132914927659996723656073644705932835706598908181842645979698527272963788640329116540240652588767450673680570816849137389538204005135354072481984453077822117386827737563619412875694294669493883978412828621683150072997061373788404609684060546745127591082453895435439199587065719086633979596071114566240244008745299508013259884215698345699986810312006674196432576806096439689287908902990772575704764347040545381417219749980186959073863835548099844604564475893211018879543621211367042328556829008001401120691954088826453801344128225342346123788084015568808254516530696683896656384223049423188306952598279469675347462642995383320877081416184302454399216909316722709710216365134738235749774541785587043226330950962395829426318882241577352124057453378255649837243780315353521647563096668949067378349431148254748595184234608797260327439417120510802041883211054529256926461408270399301624986591559802139632692471790915695572495652942180684822688457171538182274676460598224596357378500520567907087600424390181329041045990144516720285859910942950412760070729264654914752293397795679989784063097396411355627162394254858335143484875055832430831467859062871592235063764243363520263860214343472665094228550707928927031312426646725428859054682859267107264285648431226363552013052527167552144622757380965730480092754022545265707458965800248687790871682466399720922361094527340240758662960017026304482566997202036648453017168733922506633361206863238208965766321316261875893630899623656429785961037006430165245489907041696323881948164081314287347361053991500844003347076714165211427504995390701442297282414672803639993187271565083213313423069795540672043233408320548497867380984480600664333766456133237294403981604517539090074021140825739390482764547807925930157621878936826389171724512281936712966316065678253973225354892437158919503162109906780659044956553138065069622931238176003400725194342452216929057639693611458508813211570813513196116159871940383616011427466941851192112965639324952756469776318100776901698162788854630810136216370837730382816821667866171034845526585129939216662226969133019061243151897231893139463286269942173676261816185575328411460271847847313683543701032531531771950783346968923208676628037749927856301858036896146936078229548179800771538532588100350157145069402954179430602321428819268590727981842217928769346154901805662717954750993432818181233021206336447700672825437846951736353377839287935343986827906052784774988447171392096132084784093022379275150113099464222562129277009029258769447934786168957503082304720219281254899041519156725730848593590613405269143131914574738158976839012799948351739271682876767470003903811334970215911886483394310588733527523079238163471203863408530933360702106898900332653095489010186208323864594636938377132473899455451807796109537235939237442912872937058116290554155626668713800347480430562520207047966397850758873770728381215638376011048464920291406126461268921599033030233773813683907515179124132923750418652127958191201116726515751107618449371971711393256323239476050527981250939879809690899896387587673498389971728973332593001264405164359572486200674250613920814793654021865445252316155318237813504220431238836130615748693275647465364891102573302540343189159293142129147031775353395888695716630105629475643939295605738832097665759259827775675819995581338252564236084134753679497876286531808661607588398642990198025955078021584426226367575845060085531657034394536995629892923559770386002867965875873165595721782200313274024134756985101516987646020323973648871580922322468024051173216061017966965339634508808866946706483779897151077887197040973670197815970337683958752849875793802683081751800383367047543085335055901336184692549138747346939198972099092636318174689638553582737294492046069306673851652437930373008672252804111344840407674080262304060876178021603351132385482604785910018191471224056283492978815715875106781473395579359597310393748791562377878585829775706904848276810803534999338679198494860467276747416801554207558385999849332052268300277807337010829801582263369718935595157077464833879534468521039192668932734219072880355200084542889150513974867569642279284702733052139694588842034960906018361886193694955208887010032925911495538255627836944603682820810910463579119596106475648146597771777478363229912341982962395880642056763256100279359959007260902304310142118710387125682550667910888301306540626522058397967939682988521063021546185812352929011636407015271390356666760529767161674787485206806992496151450030883897562162843495189619679250215203285172058758577834527549815667398791362777965261982617557007877166236341171451824317893987756988971510947184544384830142396483808484302544713125557542483012263474724311482748013379056049074946773845312788176965512113565775157015214049931051634797922089479065001538788933963411794322552415064581357285375536318882936539767858848174504617473429478318004325340527397984498013975395410026137944297143917640034274484266033360581454730274678704194016172636072214245218366449018531276976174631775775721993823591314058116219744119994580249741616663153169707134707155461306257597139194781815632474307338607981492187411822261743669713386096092643604496563211377528939215188702687971659433749162227337787392821307261814163934315205336459992541640589764702290955669010767418017868684887371583417069194512152642517374027727995355761014126490269429769899657389090826942412669967398281355571651110193012939398933342275768475891412947662925054799189621326332843044586661207826484393650739908220558317957131529480688538596415377876526591134696514063799167488006638343131967845271609019446930098922267331970611640921608288097685149882721841799250326668530757316159311788950968554705213465772487741198261671569934427702104401846419840368512730185126721109104995471761327881777552785849265892000994725729027673104461087421434300065813270855535143131768306391953943500044901587988343526430649003613210533285094772124527506146327296479517657479993661581339310109123167764602621521726763437838156519354100339408468585329266334688073190114242138341208297672526887988563232010535029843499885509660202792361358236461328288443735418660576004901927214590452315959091331385830946308473821241977652055041881255385987004196228196497165383093755541673650461081192944532729406025022902702147706836319492419267082458501068120375751318466000964687829581834523962803729554236755427605640446429614623112952764113365933847036308183086046313604726127333729378473085064548222622694296838803021521433078619268617331330688464637448503175788152111701456704352842672669358182879223583238730699801304194363260049070795586240263710170680879568643951748060386446536767859324777371138740816820317318533557900779927027739565790120227350156626381010028586540344177866971320120799995658283561148104446399915181001956600636483625977346641422608580638892579531923806689985378868665562951596707437546824990016825829488008089372920950328578312915160561182785616637599398544584770796440594842780739111899850914544723231046169580038745669380054325527077805585957702460443387311216784003484626675809100917462502930115138909003756006801525728881705483982866734112080057007886783503269680312817880963344153536308650609663111732042136917779945401618933693234167792846145790150630819637718715186246074962348534330002229150300190598228769241463865450966701070543689675353704937076213095550636092402870884716013251560067187192255537588520951085695304514224318160183287261979480628443421314272936767033925543374168360610133837041864068952843868603955888998766471549763615051806936581222912145412087053482225321572880517112831019910174682202668409530595724385523100445953209012464447614916804281592944594248197301914254370365516080104392470326598810323662713751440138561672151847773454158113178059445979080581913698517316135293132522118476318250493648586496964770811221085413034476625149139755358805565713385943763508557745997770806611259936862637472829086636898604890662766853106844691540651396303310639268176985779458387081818909640170981739881380810890527254769753420350293176242663699867858551567574034525382675113088072276986834518567378369910758579537324056314844007327079237038584194640919727086493394383678468448634300751575263874331884528235268331722386801688442850877477686305894933515631171434308179271769515393096011411928634576044178720248566739311698454356749485833819880517995484775987286163292563930567463807690712823494072206188551664804778839687415189771618084012608938424827233725852771164553041754875584532906504980932020664950825416827150730863337646572942380647715897604436380785102666401595559845977121944384973571115018175598259462409094204344431895158064165323083545296420907203752013549404335316318103338283924987143097229467046443701628795244817110449730238097534781002481465592090513661209504360103944912166070880531877025918559062256175982989700645982844748759584395293620328152811210413585513168739398421930702807812583777551945361992018304094919635290224467949562071323962592386888422710940903001849380640433773402370294602378551172036397777792050164032625153973893023653728025394365289241582354487642180630701833187481261771845704081079760469541945170786850699449699511979185788288033755048415597101808516002186613796508503399157002401253079101160171366507145058152834144449757070114907396503174471078766340791762230674297563652362137932098106498225703113906742190006236988653563950062163184665475462840289465215463101052936999261080450424036390324328938856732599523440272610562393030016390241900750282801546613067907146672463838696473491479116930183109001743947282738907593652165661927584551627278059572724748075096372731756590450305091895846864918757699396068196069781602914127025113999940945531249099844444724354056578786848845884812427371901175234677575401565672522519959851419857963075138611209185629400985524933695025050328855411583830902151931933751359305408438001002962710485523176669743048914483343982552485358524019346602439190910300922279394473482451917559018152461903733627021306590991062371960664165493442135116381315147333759643943864176008257430374804328512047691986589014594178559480720030406481619890050355518285716019881556273044911532742608350259094773434262846018224312163424981906264723036192143698697094368609430352758291073316065479239656746211140599990939121966787640856121388778124721123569709269712384187762593782452612336038057413341012217883708244468121121462372990288092958969584962324938102117561450677140573720013882565609503404207283199384236768125368717062912148107608151744419198178255044025641374876617963260112508193100074124166833686865245162141922623625634543334766102997302738775779059270315536422816707988170023240401069592916889386055326324130978620708073316765369141331414383029314879516746662373217144785668872090262546068175280408168816217395507415331148243921065568665074446598320857373821352839875236662409168060866113272157793180375932205260238460345740726616001091121384333791044882827207167878643171243223341312355829674356952742813719482969714070214571413799878225957512111671355068774298718302572193837201826056258895895871476628774196624648796934639577054037632070151023442058867640467566643849803662989281154293466494615590005676824260989354488613296707346014312932191301726866066081334042744857110028693996655281580726316675000929408903103954297396783219764106346765679109695908242442326881602005151575848437169435981815492611109507512224699383723878706053004958284317933829942192740457001966238297011926947634882251672633306404278292885893291026471143473625049991301884540139528348916181406695379712989135017738128816969529296608307592420725967290946204524886171244914235117411245006534164404092084123638632640760776915611982987262585032149304634604455979181655495240556656372626415409809404364810526336723766178475593746003417557001363723616726599043491870499690256070169836119047597018760393862442161941543048030264361547239880960101586326001259695269390988282894888688505948782135974012234926087552406140686340359111596866762332254364883008495905668982120794793185064557341387128250216236222509840734515884046525834248802635218869962048290909473584934576888976779224027936244940327776259802888377867838235002014397759316575424423338013396967907132015969791179496750948763929507548078945563490913775609295908033717249178078264019528507728367466909347562919830050462318537106789155305264045921705015094853959699218948095418905598453050291890457481086588621103862032588347473580874919634914130216802805532161366044903059475086973819142904275807883850447087947319129015604342749763429028410913228548111463520216497114894985727862701254961580732828832122738114826514555810926641131297479418169386969732793167036952841051409740682828121752069366522351791541999102201357749139828572951615587146959023982773514557297101757706374213550310122896462889430189467173318384666829009629754497498703863354730509223961178407744294318682514420752663695793582536142679132375873564533861206221011293003617244704591932182330020071620728339557438666205742213538206136200378435689969399181190665744137696057846250520754972730700340555789166508803150174398742020842012018821491692039629744733368559935469548529125968535827223347936329627210892169634450898146572033014215527008301148057291258426219510939595834303034656436463116006464318943850338433521038057397799893168446377503092556320448285970074626310884138180719652856629056442742173226353847758007197042774824251340754617495209295081171308795545736882482445111418730200889449244591344326139128699530785829159305157846052853182977381519902713888412166490629791750130306216994020953813763869953556355040869729974848218833861834460894628826748813951385938592751637805397597004819025135469987274046601781921929487088143898066440254808513370370083912500317216870123362587867694099764569959823221046738121268545725493873060629121358391760435476384151247043651209702661833266049979994633668902940132202790886596779325024429182897027372936749453532579698531898785221333784214737908846817190186258655975728024301809446330241204218656356661697257325312349125148182876016214340107878659387349036041770099913627563481031384962523038237936164638343478161942573847733713362130434355274752137167122988354708156626090447716649426479449382270055331227490403240011956809882128905733841717699915647660770971514436569301246281974492166951207477991057888561311306226447280341806882283136493767918798078745820199646234204962716701117749615893718240244963544947567059086167861247246101734351562150936102683733009928834853684167358566968064885472328545359536307536117054823442923327096445949593972220503620774496668975006061815445703337911526301380230279368949485955552134477282318174804116418301992260365330192143504185527922576999651027368601291133744340914252732777159917278573752241279119932086107842152334285510313705473341494770911054524801060089375261844328068186388619830674438543447371937587136846199505823083910362281418831369768504119982180586369860412608748454561929463981083728994765418238643439276312734621216889496567275122428596781471017075271222772068608196988685649664626220731117975813781147453795537053099258171959824220889376453490590304630523810504651900789720214330929344696517962156396831370276912816677926376410561661537772605004331226477964744136423437385003890054012522877344043814619628853585447090882450409860868950489530826012436533619799005991764953422094318335624010534610296282130705778528361018196646086578679750875569421633851180736679794915278733850231869354981603639020656398042555068472885272614532950528348300348487271304692568378088955230122599843195810874277404932684293531926755970261099538558736437350871301947626013656304243330362556650599640277916848161633637578943998436390317350428570057469464435324736655602531062176486518222914098604863045894060357266903686717440322340627165144876068686281366722376848536125461488449488772182470606082770805661614147857304484560814921907999517024952403747241939121727494843302060052803100638280008102572109652936009560463673828352537468698812801581929246010761697144799980227604783155447946752496381047702817649627520694696438790598607105383042502078484399121151723060250053747321810267969416006939220113855329568730544630090959985140104767018654082238121433458356249706460531780517285967197311511250553568349635471978737804921422007362182585055277545912957792342422756254609910079010575524270558867979796215066616598132577167013649337168672757178778718399377902619270754082370664286328660243253430565858424005078511482400813003896420816934826106881126656260527096453571548136223154451847998994601142933878680001791629218164825160789847129811159658980360070568235779879655459480482184174400532870556448072174800191573167601572160861476363878185153242430849134995474050046640525870801520623321501938083485077351111576188560880223484952921579980142896800601426509795280315888624401536477122199608145950332182629947685363451745962075594495300983461553308657016617487893222242133833694186118445286587274110980508232887878353281188794336665062254332792964966201428221132860707329446442471539655211377826768642291225238515740953473781533173841702970719434084631041137466017399419518430668589809301996193213379418174977022929162995066376158255980350158663061811836301252338104385802861883123633982566881317962600476691533566755240821532279317778626037284810472145541692760626122030446497486792709017554913367527025378846412090155398555853585063406631201272729620907991164994842250809644080103992944434287232427689257901747578291861637842622333030181714762188392764685534608011253766311220467211130608000191008631157965918134546085969686525314571245624907869507152424086233559270394821694161890433349421039364372207370282244183136413736874636347754903838024210347028320649062457920113005116102300399930776337083759355293193133745391051470247633625108095047715652480479522261933813187974262958990473757632827372878444833874895347633854411200233360207647881326287677571733273808076581147952623092999362189193255342243687618380145651547665264853041691672177054209679968504148573891064421730065215970540266322241903855444876587152065655779085046050365345213986651846151917508921135528400894032300191855976791561893086830002438791858632839922085304869453877347868148221934229183954769796274576233133219528365116823018389179662189712654708968386721981592611047377451975958688671434336599356370678675734261836790141291811798085437977616334099968851269488967364529329062982577983498287579154009196434397914022951092437256439370780790061849393826534134183144144734943778378970140827122386951245888201118801343271427537136444163841286975219657981907344198524930829651744383472047956540162725220331693514990331949997811451731728189935597651663696548756068060378606589968970854281568991912479026252697687252477201092588687390578954859143265014677418680110018391179597731472721848034754559290181588110559630372258036593559490513043140762290830229147781696762034039435777852234468027791693737058899234685443806323641891041570948736366557383297070588080547974235440750384323939223088071165480166518960572133516767939329523490776890629964076529221473919843911294271189743424158418128119894141107335151515266764817709114430929798621240126839057582359170309354429925677196286732364812393289299125481337002600657128241338747257221577294387373880912080451601018323136394093515637609525459374325622707850698956439878437063699875726009478032349035221559674394433224657739302682282818505437491037472087413453893516309794465986078007140446045650188738712535139693526225324952358611033869817605689613996943365145680936730670524563567107450281351674340271474972043171984112599316683693763463153247873173467618378469300434225087672086038016916967294015575980277415108721784041643020700593929853994472374995361775424656898975787815781710570005875926929441401906770493978945041951716859775804510254162952207853194251673331446494169967395189088328721182750140948918662343913561990900159813200267444871579594853491900004009432889452212837859410895892854804368917932401412426451114716663636946235763226433410288091167254776906468645608198877175554361104582231642386215310159563816863440974613250171692545892087042154952807054043334162858887003238979868530022296344464281840637606222281174983377664233830699201978377115403174395362300123570115892684883454903005346897453666196371344518206931581051453869263061400727314633416309911134376207018337087886125794511377244928426015616568298504489686208171790122337771819373888283159899834833874187087076421520895024563511463814707748978103421534824550041302537883575631208904740152099080760585762074044606051246654848879204438329960786386028313620928749100245225795391507589670105819931271109079713597738811315981681198455600044068221905955907564308374218084683181578863496367663223817997473743184501691183740538781951844499062754893192006785258765689361105053156491962612114057038512156735059342891250629866590057312138831621340873107900140220638073104826129115829241791146185529689849953762956942023848961931872017331662243199488212765147605245418484323900188858573106067968645261231255309416590553635711585373437254252820232753932940297008635510100941845619525589049348856278944995544326133177648384444814183307113657021605410516693066993809582522170835735224598299082013293936147126655022349971533589394769025490568823767828995356940760296564833901556553792195490241590915475795970743338063014044194417983194982415425597598277527042329679239212072572652843046846611120500284968008864997511813960729556251264288032115542660787355207103883732762625184484007212880801724980621986516575796787574122788283710641302945263420922259113692952360593631818369900999248724679022538382334035079403688391724491646641897692361619647821722706523913950119460077894760052714962026514648586546756959118383599118376222296985086493350648207887166797198576304225533938822812321681270525969875126678899160578279850550683776438702803378752187843200280328027552917101806987215129818858424090884389635429438806641832125459868629149112002721780673891414633227305061281229822637733201283381329229287826088886407696077467648110581898923845710295835863254958589690757496474021228371677657824345291756066848354406175130479344732837390868465255129258748395080637317233607861281825830155408383382156907697892293076462841892550928584319187033523909429490749080131735477258189285540695818494861256986801473609519462697521527475893406385255368291614746590385823966177921140219990552761125637631314934977428052870954849577526687244957680478928856435989758221444706651908210406636440992125959194211381617646497722820488153303923303965554832989450905871862421223934478537846543176584934107643087760761244628026991674782070013985372743559247323851949760763529961000808642112271695238802262551283908139668999395227478884100177968063360878950643240659811557233240486317016923356933550601010262634586728632744802241066963350356343958780437509138032221514315875731486877366111323482501407404386414426122927283950025236721515871571602502251705898511073369776079486940402053395789717400583487863208765425732688711352004809470239727191467980980152605599193524376198995059275998002140314202381775546006838437755846296910230002791725004134884781309660904429902124480364328747982407204953890883663285435646990687254626243250181626938363458866517277114811152097225713018111140932180110217240281817382734725405906601491355782064540262721619715952068271117997120260291233496888062806843537617867764002084779378256089134962303545827794153409957770459177888183365337179006528732923835259001767288595526216398609079793156540079379763784932649038318170508332778063882761783835169526731675805771470801316625391199043747346167639651303550979534472141515076578366860673748646363817277696958524862640803005210359006175419048206276694488327167883732764814644235327292784927839565679374864128818407314264697105547897308718049500624285624974900453316950522816262388587999438483908409149437462130820151127848889186053950268463951049274728931737641222997941777812550353866173333038610128406902737262552385409997046444138287099650841812547387620806055161887024449391114761939604532678519215806587001820893183077890357929057141014604259175067361412027539553324936076421039414736560027943409464571891595828889207288390792921324390342990677843558348213478622784211360712285464405681849334525635260898255488993344793629858504269676074477540685332491674517266589587823632864401517908803947359237794231082915465782457579000189691991071728973346556669368031745083331915939082543108322606674165016243108125126640953060626847913929939843002336912323623686506002047526461883956307567614672075561322414318752117143446248946460116542155631509345324796014106574450394704771319058878525382489560996965232296327576667903529337281249736656600310892310057892626706636667952952213312558038124467427212412538118693608848829018518336796142310516013547876910818031186020403839791457838691017150470569568520052215835210966934212783828928874602621386838024497458996984508626449680345509544452938607422199914591174576179060117829724299511513360281732519466080575899218001845494009648570879433611307698747848866176142213788239812604545470383095057753831804416953247599371201565893277091929487461699862361935881247598497201623940464088626895073984202624229952644027997571407625783854030924024950610116712592574834405625658465260642033286150595366930278337583992122681833398920657506532091993346521430520505750585022684057344660265394556476785421425894977987694444325700833699755942894385226784174051972042990292607055382250673818114480619972240845654069686780257962413675562122468057142578578150295880052223781663597310413145094395633661720688123988660009949110389664154200724740702994091941412856768365823785756485199486828563289936209785574655961815139980732943814618237345435270792118542416255394861644080504182274035561345120845559137228017998776201094870470432288461162753927522062960796153995663065276339690374181549430942645523923049980927574810939907753618471075413721653565319977560974762026343259800495605796784341130615258354944581508090036805792484717388639233964038310017692130634534391681212472884584355019017253774153928658544593267349874254044223623754438279660883485997185233148664094644895795134569928117247964424973329338409410644441159625435196311117185801296555209930220605810284224972284660734494266652530369913231431104912614940632055326492029519314778127073800030615970881864680273600378174024661867294728796244691606028058820011624775574072579076260364728700151010518673403250545366729303778044037225729046345170255571939178158882703644054432898510748654486401203056758136539711161657659007881905862170139906102419666474443357463790581969645582736345541107778991544670290100715737517220861286665970255157930806298645321618518853485535552224085545836059438611319062180885520134295262731207043292008266378979320735943048363497460683922097309424010965917597781639591565291261661405770557320614099988482508971390928875947323962733716147912654049350075064169604175036923756825499230862911510655524055033524007706305880936086831062461595788318972767118006872175330590411249488798613159023769478146145289080132193671452257180021752185078994907639245030796630321602709476763111728329855822720716925016402626844712978161114585583987743353226006847888946258963939752511415501263939886151161673214170092223636835304911385982166604454160400989694260842714046041958098112434675576462284139459763386035065352577033812811769561743425982226728791688917757205908708812736500798082970266657784566429051854652047037963331901710969043192892436602600342755656888033989422210814029668850700282028667665428929976602427287553188091355386275981963967353001341720082295607175162983607986088522309640197561041081903792828715097833769370668974305268485997185922268682376432842084778083502482345726296944020768033358480583120851050521642012324148679771238381321826276508727856185623258900695729190324074741881569615682025089407481117883186192017244610048186628568054400773408807874419890916899775353676961588154036954139581432024533542058918036788333108568366028022600265137402538673465104237752630505986284203839108396240872481878822190290456754621952594218393574107657824137388238527478959177413284912834742143929516559754771052319398022773055355288118926890649557086647151005376893994845071105808198111116590486696184102092812781057714145656817845099758017802469618942900403172538056477421946367523282528045309128536203738025632158224011046016841039230749430405725282344835097815753581105426747884853764818777910279956920799425185761216852527035119055122417525164575038365903127770490714338606156172511802815252706874070493712400987838347451056254783271308466820214685389370063065128578378396501180364868763452308553015326712663059181037785344701763194329635536531242343771753389278580375004409761323216491801268644785111396350996986789357444663754414456366853422613641786171754835526771891058853693726728086705610796358698987616287787999166385736114383630222021756760784747437466185841318694000477957943316964756164127649461551801136148952767046876302086273278339767628084563445827237795841082606236590814494847057936690265655149914495029906198640469523837265426183360796935964996502285733431835683480255445074154379348769226715877061818946242044855250493568684975345902391879616220300461584329674143004414182363593373980427802025234860539837612325692146370906352122265382685917202182382395842871592337214287622807675217497344556037184337646196709479324636780220829094025663414218871494217538611149098391326310278516375153501879693519851697728546088190592779410054581296417408299500346587966048405670648129499898376941211755055444959918742456503819435161900242271865489605486694428141660047797292770095553932397317733771857825961609454364483675800088000314916215116118108450489858918524869783367662409731640041854176991748181973947901360177597130955950014694685862784007559729332392257307065759112057837771241316842726657683720090465831947498654217736781272157924032963649928006582209420155747001502781894861946574159970445143594099662173103675877484563047263008198138193639485225081918665171130477133799934237106330929477514613384324554183574395568386753670183199694423857136167214534445082868156914676307934909952510678140190882476950457159842956639105955761711744084844144232115896174406047439779262730886185243169863187441192692374853045668568059080384863504884643540068333996938261871737929104657624452553733278325528141421630591164002201710151420317454061600500240031978457999228827699155293574424822254388402547368494341925196718347925037687239115059131632581358867547336670003001914682195072347511824387285219026361911713118824744000953251572993747970632504617725987326070218341994380329761530648139369190725723911709684762645466013174898836403641074005172557704350156936409888906463327846061191201849619655682954964720798687632700198862916040808962190150901435745584760317103664912663670732006048196217880459575858793410889691422033012674836323482598701347554175935779569978305397403030467047275036105768857743557813240520717423642752903106289375273258140019948119858406129228649818693620156455446599734695943436058690696202352453866067986389911762434832557237000114150907083373798082618213011092273513644681880587128068101029950064804646188223067508945426011666409152019538434047944222561062338029856769538493660174864468690555255849929399644127898943853413757963883890499314990559615765961308725123710881027678000938074937584854029112407740007303790199044984622524796344317363799884614378674112595002503596891812917241720677242243487919679292326953762169849631246093604553607626055439571835332613036927425404443471466516173068507145958483658347543248836232556453883351721699765258806336662269811362496743249705269178649083911544446493900068032899285617031624920078476834973120153806771285129910593409456167698590103932824617641257281231045008798262915947018867693898998114604442860272928750251729644076225346662467278325760033971530985710347528922995186561563077499552368462291431968934299236914534903253377130296628662267121021555446005513209440013263904539239123073674990933522451643180503554437584541123618012626447865541132300827861682663248627520410214524370778198510769355238211659527601275106653245940768085122972920833824852251248274199246040736449948506833016391809502380179482079772208313851268707801939949042184839947768054223804558920911153166903667266853708803299334210815268008986443063904637423901072058737347792613936826359186305770964978541715017109429094211088763618588158481786977921187558309197404590243607380947291974190675244428738433696554772357444003160510596075328532436139182717494461209823824308120165239994924269947007517929472334515851645094362164445928827172443474973155711649274086569141130298223722863826532346515860559586937537812828024882228802791919824667753806021889101249768867333100614479761910669678406127432650473444378110160531331255983767951784972621058794239994825827399760379240801767349973185086088468166879027917050294705545232157378473558239851421423270556483340479663283080771666799296219917618597766373250110100890239003069187218281198392903550164575770731340450708395683071363112921039286220792766126015125938958565564315030866152865011449629971248290942138891321977653859970371828564732705610199029998869850645237086000951577718745076713927622235757938616938585755920821100988024173288400941343659903496786409363496661310250506517659103092468586215619172324233262228759753829343792364832523266358311997642374385375322195692360972500501592098143642353748828127142219128749227203078826927186899760816353672125286006617913524885592923820770007329849288808652325706572832033722005373127036127299692819582534607618141593447508507456433745282388014845785287599966857139647510742091672005114789061955720546027367951988345953607814002924351672158773428456894624759887211667308932068385491098073438116004085208247401151087225135987377309735346254033120545587013706952123518851991468764215538385507035127472820579229679623249270086394898749337942168432010765325528169401118402413946688890050737736224954505526792247278041590108375969650146592913015919926561282141166410647444916449493081721296330980654961834938293545056643144632056752322245834150055831564334217859359225888429281411115403426522709292215238500919820393778259305285944139947264223229760278486119417393067366506317075756646944789878458174906003720264591875129577244967672103566650983700901971026776771451764253300215200936413916686238603661686087795762481059205474812145490225725187881097825040469196403291242330016090154893643619705927524575288270503106435728003803596155637283163307777436864755591248594302246630819710779259360196804648707360169542937169780346420606908439738023076620201112124801664345297601969358019247408538868271292620734130601640304053294423772562136281405647917158890606388259001350808132311578535661807778148636498960893349222322446641513961280104031504187133830773471961497901484818179768771899928416736662239332829340151975502256998059800317394402979867778587958911962138599693118310566339882051021776623517512184124221027259041864013634919850715775065646017780322818815836052663842130666773035310515048799084266522482303543998403037460672460840236902096686242658682669520029685365811862259967374271521383686291660001227117163699543853112010602438275939270702254915897327288680482327171133216090412644357364056982333591948401898513203898227823221959139585037101753117305361412336225560304845087208326112125537949708415821703635618541922698072718119676619809648961962735889332383786516435869360064884992684561084832226065832294444062565746688998555920274695964782065534709775131112867768745857109869626383136016493738441324727171764670749385965537790537226823584034332070304835378988768042506199394285067272870376758333861508968051052574858769071393988986726528069018958019088214267640105843532228499427570389750937342519580881433429809096646738404244155377417180095300942774108323025278096484441835271401394019672099698044542328481618879183180664738608594924618064709850206818918015324413047434403029193582313392585908952987246628049931925853603501856284562027134972198837621882909883581821218129028470285842694907979708328339332020130509505825416795873900479808401373119646015687111718781030067495852519042415002174899404737568852823107194054925780699610517470551032386999457803066410727032537373717261793044990777670009032052926780443356309697004831630852733638189459731000407967623258070066976010966149059144366813371125703395852455673280310787824680075955883385958885456352790437436318601552116425235971645998114157554072859563413988708546829853865794382263404020247818254883650161037996657891150927352843456889764830812062619187378081360144533960588820368599941259620123898622150933243690479081657394486215228496778104397041231700342108405693392136541556557285439153168601383701064157663669249503940735478922140172079091438676574594080385266152661289789742537596798112861273437623494338283098177214451383793002428763234609921172193172798651272239228809297938628207520687267931971238480278780623192951437432571271145059132812089298070640324639494076689577867816546832618421888984804253609479509629611125168243411144133557602419501509347401940827088622139784361649834806551886669590226573364841509903083345825125581319595040740853843186914564994778049396476493914862526838717268869064338290595383203430739222153267224820238474127441911609689133072795162482709129172708613252504191233843398077436091630356296742089987876262825155210663900738778592382475827112938970136477874995904944961432818748167660206232997797150859729421049071880028602546685203701267592928443657520315060888996916607095850643253232335252243439009815311699118369896038600143592337646837933869553296790999497617953645477217795175172774366593400138384729679163768855154579483056815954410080427767090952693356756156490367613647562783717844056077705376425495157093273402097428402350250964338933651636137824275064185465528955817830022907952743708985381069301965587114149068191345007046258050995826962700085923423518996959428842738245885718505436274268148435516391272106865524582906305006500954356476802267939731855130044746785466972940564500011000141586897665592507590607052310045082301705195019737704089295043351731296030920377907430898776225089545811050172241860977777711349225138242946202145157903661495412698408790997658003985489464556746067040811560912339741531751450583337837675814820427023916697960800745266012716551571965394097554959430144210019175352815253278999688849739890506653976063327030471490500092004517092332776502954970618904219148203370219230951706001198603971090965630469971214682380932415216534602816366258968181477819018644605655726948523102245715602449292610351105537247541000110304870732782216456048644489593610477064291760727234032069319812303922389195494569109892876262083477025897207680245581705769984118570952741540795696780211456046905072037248868827914084381852020117122380538926766263049567455456583574692233363845412659271778228043490598011705383986089018772479683165702984801122163729408962288208994345241840593305624495729197983779858526825828660100086595879049029102214084643913289704478680781168492675307724853928594776968180728599934891618095307824974846578685658967202682114731171638938913860694450294414144702641988865587735825495576445682085605824573079693491840879344120666628476138092214677728211254171955243123464249051746339632538246166465330122992874177397957223642080385147645420973201153316279883012330054958359863834971639007384565109800415865152744450254629406828866635292612977355308370579602264171239051034020006798659230537097557302320270608516145509007196205192918588737323739471088456062766661655624711777068929791407631813559006104627447266315453862032896595370334403210214746074911901671407574453012888567982981049717813926964591582279985396761619927984015468242053597682773665631192812464723858588409404366964846609050286743590606493836483529011912876890671382788062899785652091687474024149065037699569270693082208886164768986274666325069656773622709424298840096278571411531303716063426047475516724538098149896388588295216201036945352850263500228055362899982026558997814317549235361397695621057012727186356710856943499361271702116240895669060657596527318194183499851547072153199196391718113625029203363483263304294685386117618734575602346687423677637874256757907343575645908222585644969042495065632724862592938830382075602894404926191999619400653794525159959285274774902057683762423571175265521901422907681156188311784303484878461709433624981700012444900135381202824116315021050095204644474776061843345932486386324225186921723320689275385406858283233986117356877429878142366760411122599146119188248018098396766694019034042404255659614180278038433164932632430842840209032866225639491351905235522552755862105865938949299126370736944862594429323313864180486711801814573469577489619392084342571440933614092848645175541951769234723175352397864195056485864575378150182273320860884909979143788979388255000263600746729546706940817714873132620056793571465972759427878538849616694922676505895426163051220413425762947823863873567858943381083621228664131061487586056480780941121066888468573770765572030024273719019423378022557750369923912711451861147293781401204833311527223251323886186962346152380147312993225904181641593392554387869714364781661121965723804403631111426898281366321052849126726151333243788685720919997506890270139205922974089604057947658244509980602959652271162933733311869714130786984186121064512072430843186996659667510625067243468830751826727571486555232857399171144767750817282530598299439823965047633904728084086827311838550478395173072352695614132908470368153467757336440025497325856248622988833501819624208994086199661855609688451005723100108036729743625153629247309407821415019254937836816665229054177016704630423266991927140627222676543493040718686088275467485198353821831608857174204364640993930252985139071962086120894921816685652746687646653994740606815607347236615656348393652445831737550978998727202929726980367715909758400387581500036999220974732146787772071774608061065464613603149040762712318360646279359163493277140748260269791767514861884573238502787003306660789667918781579565722518745113281601914774325702950643775293506723058999265130574763132366595565982120816500288961255844471083211355512279438170130837667898314615732509554014472261248190133509301335440561905042887402578568670014689928189770449256272934598488229691158871676110699897750139724811190666112883720752087316314252538869573839232576993683683747667976613119769192192232956041690561184162853923381672912471880349364746438241771873339430123573298429219879796517544945616975100054658035482469106410164605076859660195682125646472358728090256730489129967263649058270621100127622631083878484752755947234815371772205631995503576901889484103175870131819942903482500572012057975428953289560725582550996105616384379602566762692545490529498335984729048530436298396278081084121563340460115209536620861162691202741216244048395114269747010930534216668033522489050353496549588230500973306734195940251659859319249650340546574779995981391876585747660789680916040443746568318836270224087653159995253916465818233854536736619643421876092057572998774981475689773636423712964686489943233361471774751575515960569838531799661872305103515212452526463289894000979316499915207433109634562876482903575300726879258305820728889753036704559480975201517601193089218107629220053893310758620816840245083792879735700614205503747795027867446093638548203495035425151417337596786550708360325630770149257649898292576478752993749030910704395487888715793679845623330146784301168679915554794601365995806211420452790952329254422566293234715717845667760033493016283401457177102687263302289051244157113119701320664379411087602393500282191930729536024121017714054018647121426361935924053102297783416797152608349023921200145395982066873065703088648974953117589800435023823988150336739892195953131450236193050194400031424669920406511812451457036507632786586833526426802940663011063965875959976247978205308683682019456595268695942182471696346300893952240643706023786035833511750301152158565865056008632544051197587602544038005972555517161071933144143495225963059162140125040268039241233472869558230841404620352690753825625631805963895245168477678227329427646622031875716126243473178531184058145602479178221535223174765208182389004134012383067065041545312885774405355458080821904802340398741903495423617683068357553219621106802069383717654066248933804807443809148008221113536887104462606682873339910296053084041150088267835787957132133039459138686825558068318592089013382384037444126799943848230633006617047936959210811373104390868400552185106646223598196721750705241602782243645493263774158385787741924138178745347834425942575047935697079108862309340930713289749311153618873198752479024600208313712876520525519017849517215107846738552379707432448547394565491264262027242780303808889665908895524082807014682391607794791651607574446564087417918371332589030963892261859570981343988412246003316134934951659563101145305943431493479963507149689480582878568213480674797224368277294517641158548194780677450505634496507294170683608216211486306474791457987216988951925860058560867305737917351678926119196735248529424972854150870713593024229406052725610686494920376619151635800685390364363354153155737571911257382238337645775846138385084687090168497841462641011996325669836180425099422167895787820124074024005292065452873734885442887546500592746197502542772178015859202545200860586601976392022524308015863889428473453421676449945942614081656373960049594668571478415331542388692529510588459879306488486242789010857287630189819903453874172445552003783105382307531354735456049496193824527499603214039990557260614387377309642071500319117213361891879759085603736307183269740798915846993339045256760819626400136321754195750814924419640092989904687953287655049882722847613748663899320070623335343623451399555385077180983323173467920203985399427380128559994979323089523132683021067366110987828091980493739164766904448588298342515579492855518430280590093888916186165401053653924324977656026491227271169390720516953266347763770042417953223417470196304992382538486358215180252943129631544686726532568682248969219127083265997319299414857989550458353972853358037141252596830119805439286762490269590673260587144256751377574815905203901425809061829216169019444665449286426581085137831293302890762896677833017678875837724790099320828489864408337455031989083452274226632721017102971156588227828892963569922387207038983768186976270718733056598775341955724504242652586062073310256899479684572985917482138266308156984839223757144643266221727552670761381356164732993301797661972161278773537226592366055689223165027491693427254576453205017095866345605544565230358104283025776493457703905047304421075983074688810855409201144225104075883562762685020472979250177334964068832555409805535501966483257523096505866653873842499620855636251259560760045662616349277396221177748111830406077923671496567334069306888346359496677765744547559894436709775622029697734742731646615592546948446898065620736141825396347769871105092292482652735953432340467074696895194041110305166139075504880397225803501177929866121533780202393657809407076030896546623784159443213330110850248055525810745549225437050641584265370432070495292147144504048475801843204869962534168096578667202615414793466244841592204971610131976238941060036776805264614881713905820164249375832790041152715297857345691826731907687079413525749811043536580017283790987975394411984108214902719777943262186567337754638492901996479337990678569800403416615546155041255791974001260021027219566962060717108474298849963937249577805056967614483813204713386535275247714323223375481694997826226835768416171946507374856571727703892599556724111128171136103714199270709635902848619937236764655033441826332699862372212310565553608550953296044088073673754899397894899918154024404915345045444103743921987869031757625526385967224680019126099718325526172798836405904489003393984229988223075885001312888054218488142675579661426737199610518330139494929291478464522321638468156915064084539938255297833519269608560539735260035792505846686316353947041945870245863195764344142464086522731756014606315059561139581905598044554325102402213574032895590151475575802326954209805857750894879392527357269310381553770648373038699024639860871446797315208521798972908843140586910174005072606233576597414362132092091869467794651776669238077841940066917751163137810176793508632957993645848786653065022172250245611201603301705205155261701207689668022290061524956594807694003165911642407272920512894786916920374066348946865224763380654736911335576298026388354101206196051765119625266502038617460598959792246088372632748799739935443275487542544402911447350790478966515937743026067116521566908837047269150054692258368889446874125274348044484335119913114296893689493032954317007401790647124916249257998551724198266721384935492742106596087560238656989394217822691102721510388570814138094088934376533187263678609940792799204360767292653663430261814345266193548362989922370508692470628700410730241969281404610255790644962376237710083317985448773510051350086700619753329365751127323076164186129157602374673334391448844788662806163569328854107783133371965849874568075214467761672825367164706897825231610691492468091387734699522882848632398335801784607896972988108567641441709740467263357074925572206840845208659594681798385754348093818122739559140198783475696419790275280419123012943571449231709244480841414380974782749046323608574099753071736360713725924755147445328865493516181915063282760818265945639643415569647158087787956760720277037709912679122652835396768829189410347551990466220009626673858319943875370149592949609763902750422222041017237909102325462734204211391065451473159374511641507473182391946042546670523107156314035780486389122541314618827642838665772428151912033777254850630695568688385214586958065808644299584132025152593134795850519982352468962248524991661481159684074424971202693264177903916743436978682486299864827930647464539447333002347691179111910855261820377475600129400107115531347291338262964059578828426260835693605483849868471527728413426856160798772034072290404078814866676809991267083555167982331498644367224322189102607242023241773976176727116633046484726549871584044438793793623212299108807569701241576023468820706796849001414922976659465262214722845944766471398003298414015995135468724118986373827580650175220157810590353862973902147374447242954706382969839167332970102687268650389082151007710042008796054772336337806970537818246137254502323767882284294997743406018026513886794389096768790577715717078250599108731193273492452916361947325235827875162252341060404345951517671248775618909979813853733466903064365734369471342274301925371446641255066671532190236442756133052374832644334821672284965196858303131485759271417146973632575975468360931057265232256219529934803753492796665496444177918864897560806740607779956868400274416839346442200777378362370399814555866059402146354491254643764551881445305023047498781677981402836165498415921871104948896197911154766335594491296402058613296683025836743783859194435874305344430082012216840558709020597664960947160889522403686311252058353227220238397083934274164410156209561836485317176754218989414601635911126136147544463282059279077210450314216923110220801078022073245699953981953830595919189954569957528994405257380312096317405791089688807341874564565829709277305051735569680884713122673317990568951035531853292759438165742253475949730407153347817839863945415487286684841008506119408041578080207093591187015645238784899817034669104518578250678044978343488300235391857471862322778688646735221345578776047309336520471812171702753886066320842293410733635735020098686209182443240006242330555546895568730544047589465520269987752472815604727604462850337711443442123573497559833052642573314936996700530409928617336171712004346157496788670224400637587667379008296923288393959437165547636889096358781248103353248211620609488638231852859453377079520054207213508323932548782105456339502886857784575825882487910581567684873514996277594919003696115107997972217292245878742742730852078311356130639066788623782384534972007902812365704068754419434462521492704946993956864080250165385821496080281571506832136020269939610267571948785230673405619501661016424308723130140368419220378314971469594786995916887952659311170552914009609027641309617380002561262443861539867410842251955488266410665723735508116676207719539994338892522923275024466002166608569596010429639133439531673945879171862377630531118027170185560661309736979353405545567542053481780892136219345163457799284703493695673568237529761155955881077593811764392037715536065531183495465088811370158276186424624556614649317868917677129040740798734978125371620697700034472886918787336287861261709729852409679466753207213195383815418576788447389820876588158921490931958425058120893404009944639271544067693321143743261504549579232524727928960835658216881766170354605180387659721851488794997561763586212234587580343371109875687373687669472336173016888283212692260713110450113902217286547903674595957624825968919761568496572154162117750670334043706496123495604969976180015455438882032848705155672630187826191161175890583007139241310464076964857313563329020128486910175517658760892036119413286762435764373935317789361793726366313595653989677960716782743925023871117571088064351444832676534821908344176157611991978997234604834597919498097082655368865497570957321174717696552896349003905713916567437640246154006090448346185409602063923054820127880795615473507520946623116382758789559038008256450270426477078405901160741661104492048434967755427111274554940202136453102582381751548642100931531267456249400953316603454310388024014282599351887355697308252645988233535839756856861205792910061264905437666315676287234223045432709554060946801982917221853203702898449956113247126946569631191626920441384914936869040447293348152662567279406790813032516288399037017496283030388275984794021415296557748308981165074923155655237158559216173225467979944374007368690031700201525492414266749058590737389435808216370189471853805662904567890076132433438882146456899881257560714789988363616871359727590537081996901613547406043484945170916888291841053808892333010657711605640611898921141753146022178660697914271357332823347038953234045016706782539069128675021559854347433939036512924163777960700824176870047024050049833599737233732477115403525503786882745568733380801638153739819593242268688456290038641966056973872630942952746949861640101467439252003372756027556778378145688610478795239133049561470010862834465457177307097739894106312134210563718076060439604770902260655850846286323999729764257556819499785015047139444348178395927043831118539864706848801609120724625548434284100935342855930180305286471092998253189827567169023564925134182503190789414093048502991979759542064117647035001420716770206502175451019912438968432202659253704488221738070128173074278981444547631107777431011100782777568545522148582974981471080343350640506934636978526419419786952017900732487094125275841206721432549993284895848549647865502609466081746801754256326109186634952683361127668069873353117653518468731580167681558121845661866111224557331286840470284228073404689432716057620357026909643412611330854105448507863963061383794052170165898960361533924644767388110216188924448896289646284154125398441108563666312358117216897235980209111142584352139627609778428891852117313508221234299964270029702145355909793294197099520634243885284368387522474492021589956269801407122492159653371492181185126452311461044506845006173486784633785079934352463636273375197305415054911135284438406515758891224586204224265650472628064210340670674737266063078416923529596579554055898485206206758957667887392771218932338794139953264654283263231961329481340179788202760609709784303927643342634885615398516185867943252404507952940639934481040842641906595545368574971213883965876102849505869994583241034828159251277308394174587096176664424924280204303069412095116267707977343560031285936671285294657591865618855527120665221057464329967548970388586125339097323819130525069254581885947647725326149763463148625518352729097783884427566823009194385211544558954545423049500139003322087107502485785003361922721144363184475725248664897458314541086020743013853535338619125282136799880688641741841895414425757239834647945000086024558557750815823542503851822036082482774254483555449618150217946828215987811116741758982651588080061491283513729163241123380147501655875700870676882844535678432569424521803429819408751525343383421200790369979518377441298034752081956797149769705522788970367851304446649615218940820997757911665108216588392377139685287383165812173710811718461717693899939293411076587795719634992118872694359464549322323381988047705020257644766854704872486949786864350658716053138543366962189922017717879261610748700601306031777077547779843800541115264574507771145208399085551477822381207921092535807616550278067671599347991176447856824518846545356252505435083800289105980357538287475902535264381433231835138656046834731508539073495872028982055348660575077719460347939389573620150763309632669975768550890175471727064054623454921372977813486941953353359210108824599574844342206181847111331096464421342420576935033319105508767672087975355695321669518321541387043284299535422039274199289818082334949973304090840587356218277665909055261294557027804450278337910263859674636884011586384489642372481944716340754743665907154554596882246945443267463906571730334296877149628206878809510511045337385583059855376326478287661796128889521116685341793428877474321655843114258022814038324613325342367066924131980575816763252980722492599655105271556875396929991383428025455428708236899184731283558561712423966310322719549711903505245945253872581494473433714947685432078727851714339545171136437222135952748830598533682021692192563836919905119577309824408765244147359957161070194772127890217375189460797796232409264300566771562040233773691153380523677130909518466386425759831196156245988097882790935262456680398694464160136133680767126793320296626394510150133419208285539063400114588007161764388089208881903469054438593521829512151013213063406345008836973493689160736523167803361445916447638393275467834858407678579318150970660924897845168416167615603839918500360153344574110035332751361528534460152722085324181521517671501550248882902452801630875503782089154370270650302010269094139294341490498107250866870660613371300107512122990372792982462885120523771074919800527721823159651731852851938507163342289342012323198188769411271884611498604860798701214551107496649295913145723959426769060017901775428755453976522784713993328430394210453441250407135446710455784378427504851295781468555015984703153722921174480935183594905318611720211905017146766914165286694970644432196325534026644432533584541607863740245935491472515956300926759969606031541045892644735198510006740711519497722319059828963165773374027968968332683207204986753954532469064704140951262729399023996871249094571801987417041423876691553726510643633158078940705806261267952979891550187365189423760733548484086155208832056873512649415942104575722803508527393679061759541828216794354734033845237084833569068224519928049993977161845035249389827809380571396955561308343523669300297797578086348224435006259934559271319200026617715615977781696046160875696705528219374444585740596341982503389673868733519781429040385883107301313746114614914826205620083701281092278847374014844359319375566380117190274139549833156836126305914886063540529510547352933521080519992724751726008973803238646929200021588541869586452955970759081759192396377902517048460242059201614002003345248331074639176321794671666351061184995218838713009078804093253853624997796836809027152267729012865554392867781730009960708255888386816453373815514046246795629982502463606394343917943643284350693508782591322035795870487270220789304740282022121235028860535117704539154671820325366743422923747259929472709760560064972350430421972448315533822046832626011189563934975701887307236961195265370892648686476171250925088988557191517089429081367201219386721845826249462300040233289821878718619562130639093301695455607626875760072465946839804217979369603263121166181663160168783898711363470022316647675697571988938151503141217089282978084001701463224416180910489446593142672975025518003811347458812526874357368231705246205605297163768453993589440122454627195899024524112219729804981639760406201063803486284777380397417402195654523355384050715673616561108527419178515124762568484243052460081654941718900461717730770116938541894623331639129674483033236914564600076410668559915756183323045357483360640167405730318186610792497247505330057619830008574260404938526419484504485276940954718690668978976777509704578348934053724323470611068553656289488713116847735002894648151961585130913277435740436936221618410049400509937313749958721910137847663159421011434009876923804079414873118124925645969832381086742939185465259089744366401840164740856355793538588015629880187030780072842496154475819892857554270669440127868479420596632139058716363949704169972777961705700686495278551251473324341683922284509824286166802835266713071927072883687897151535801202252609494852336072873266647252014595202013431246984493924646519715463202916274868856021164568748149683369824470611455193577026953103452000088042508667101398886706056352093677559486818811199127270387289452452105153768674069696172155836887404377170694187669202814108980032921363385270133567399674826415945499586304013110151913562165853030709375491854259848919166907499813305285056400187844106093247885412030647455163783097751765690015447904041076195442472509078776358456380717974254442179062981301308335515843356805811104963395778339781081073247955225645693162684142710857736061461871617892019037977535105434083980930303767661601248063150635512196705821436592081186124975732631268647562225714005320354799124611785046412372248158680505675678081095181329844119245080127099853488627689726571085868574334452566781407478446786712969960065467053216433300863573857475075549045500261584120585256213888663439174801968591628958732143641187801921296514654453507640834796280376662684705287786978305408846864089262472600965991525112373191277923410304967589527610472373675424926634404798216418619813044178782673300646590122841595592191879482170437257145992408506486452022978176680083122799758089254852436684257841953932452214440576031997808064970742552450230579749314676746582479139748625091400154024379956512976488873022654531233356420554283229259966218568201846640089865083909221179967801920287231985518847849728085628257320456467906288833903680111107020471533150631846466840353663432294232053373786721148910450693678044057650973474233137071259064773124135215980753335905379910184851654199998546806523339149955924455102243605638076229244166873860728447621483833219635869898734281471528816824647787744034613675858494129540405936835641383011749867258874749023254294712717574932731784139978067829080634119987677738351285997623252772953166751435404746050133548804506399953026262251690930869575794928240466393989152214456106352888272304819247045701758426599210927892429339877405745041953989957698278863479885874145361596229508347541110297745948593172535113895142306552717210210321095104927543302576917900426792931116791511903871734574025385947937085889832874093595890374105467172900069892970501365561993974205809775737786264335831776065979827635365397917982043886958849702176723197732914295532532182006903385166691649899682927059418523955622702220502471827608603876149049955569644725077730185834537742593095773795872605358553901380391123631422065184983385062910971543783188716093396901812369477054534292926302854393047113939781440968613253686587788455387142362007269224620427520713098398638221959283196011994219648254700149021295482398028975057246508313368312729299560722185314454703692464199517664171935018887077033687808824897323631688854445685038424985529539973179682318161645106409409561225591413801335930944073408806941713616750345567125208114350276285872849215282045427128175247204764734249889638074267681269848522079007634544338358465518769971413483334698855898264549065517128199265985116862064078948047249076074367613638917317181948835550129333289713916639532724315750950922774247187433810586299840766171715518724535519166696469279989876289257361951860210186036220968899379846618392643526238728817736765039589881059691129379525612779486911581621127895639379990703982256426283550064002649498022395942807789459258983869669235406350037738077070909639757103478045903575943854221812436647994878630034840057708750405831139678536254494235187144454828804317538607948930076980781590633108544273204621501213887352330456738955223832767889720088491211900510389487838571452547615206996436643377865840521067178013159755511154013352413988000756972298809809871608134363497166575767474136216172258228485198353600911060098684635625477250396561602474232564383673675097388359167049593291244313302403447309717130111610199589724156530661072761427386866380244864012370142349528793159884161874687035444569519198257062670728582630511679066778381144249131032937250569037461236317868675957292801305479047693220877820362455973823948602769025259224237503956720587046338316601796093799790831384828722263637481198259793031257800928381042889789036459369444403052433085149386745053270261629659531105156277254821921546635805505609736740032554132146459212236447034688215547065212792688971346986573167343987806935209852086966822485774911954808048795298413337420051056001016475382148722688156987269618692296079924333685320343974275819237098083169318384189108070121044365745384414179337375364555100452357284251075792576169121469457824160885775085477238779616421315532354567410375856291120310788450627150540472815900315609916707100516833517408384678937242242759415540787140978078084228516182088571439736580947436842321825852905634805081865320832484174260708681506413466045987258614026915696884324084131220180894158899162377954231877735633066265706045732531853817024503237527878222260552637739410435439322416768593220442805553527830254876287027626368116355229753081018068066571931522826311604436877454609499064040157274491708882814159325063982922308197400406791449747588172095394002477493148822749004185915734851827840558214798581158166693866506443366348774659300722590036100736640020476244908693855969114048890663344456750944114398630363805495167322864405959095542866696220037147749643448410729622976229767260698085154609192353941985575220693968633731512411385388082610656083062616018401629397475209043798113585996992439951223421707135355301954886844350305350205346466318987670624673020025285582274873747410583670206579447134459844672693457328689064642401851029557045877670385711900909805567373322133347606871998688645452050112908305717670557865850752187582256014967889682453516029926237647463041129721132079659014976499038259255550697902811435650637907414197764682506702885601171853176908658712710986268452374381820585366859864738838975468194973200502529158173656152856459801019348710247496337759617615088475984091070855143378062395965589843137033484051329165824514282468457506487038467662191720650614966144445670558510555525616716666323874127199545730046830078174407368986672849578102410244538755237722320663489625591518850228412796248180447772311134113309088530171562173260021890867260522270457913304779325922677796359853103437467617122633958688483459931187030131182313127680780213489364159046188201161251254799569698263004100101520668975157669468690568935880719480666687758126185580526528830695916181679645680581761487215786017847509071825581581085001326574058596459767892795654773538859760159732035076069990503169581215672309618853150001847578520348365054621173984612610499645967643254769006429136192000651018564533019478343058276323872783815515045607741845371639294137972638111011183311566984356916394663124121705024533035623966555611602452222534777082755265019879842033085963756718478543651309127226208023716449251535554546645819146257816458897908909666982734069130054846827401472884958704967736945318257709012134188158578965920638101094181319162621360409644899744526816796940436420698363204033275990065986099029119165285946026486913303624951107856634638442489338243566224268442544804187328610973861212046285280021020020758742464154430751945129474409520988504198323894623766018230340333271400473884961640049162384392440581465410876153524165613873928064519162817113890225768168493400547196070168603169283990206529810427325628488916877974970533876359815408808733980973481159628996687554925384298597239020567015290979812327253323860420576375265647423611906175070526425375883650844298127234176775564901348530145003928125748373260466509907618546144456492854991244040275937626127497822134476271765260109217751977313023420633404434103598552212346161709279820294315577591080007524577728256112509233914031685143607810424687418562862293546613603576248634317225024001956952857953485747301510164461604252581941652924115333870496434902150849653981975806698105143448235276251637142057691289693381337738879470585977408376625879556380976254305239998847082861974275871390181455280894453268240395691432237117873532971668103900353770824215334155930223140106573160570535371458263990537515791437069998867596643574425754820762005133806072930331724205304921301951173067109468234795057068018513303808806625634447137853467378305250443064102553020431689894213260916919775840458850309657351314658737575763631954395225889907801231778400890483623688911905415875941179658586554738182165539673160415309870051863719410281511847102738466158333321185100809493424223272949605138808183183842750836551680504549892416672761405086994463225200956209049084224893842316669038893338053686868597128518494502425798457413509709020001306744338978862604985076019488817081889558478402074481473750091565844135105474012725933396057215578391109378597546696712082508373524764477282900657934638106087082838917859262436253120501147120788430727321181188916696122727363120239985373665559473568151351231089526522292875607413579332027541947577790322135700567018109328365567285118462100266068371129486628345041124930886943556923399335012085786142640123011518103086976499848635576409785799998147469807867963577148493343910685236037207111794026019503678526764294265243829417398127814015061953536276664347952337246891943982045277398904392133564296484996372899970127307976495886839232842182856617528440977125998700326265053831064585883841402538347508339109570120687855863899257220387722521907747277402638151603706911621797511410414773885564089670629372892130600939423365925610105681567193895292387415273183225292483059617277907469225077344733248084252161665598489486144404222487459636438148391796905883831398226361449625551582892719751603135803663383467789222329219951768898745732764038926210633726977297073319466921984886508542809765296185696758279470114081459707306179658947854705102751396032599095353747758022784152811296465319422727892725641148911730007230848250723577241308481460909692287947378288363496846763014788878853573429073492608202186985405996874147520981398729123365208523451797744674589280716396343776187549545410707511014207862190428799680653177419942572343803344265502438717217842012975180889763557081581245528900158222103565044729802698132145294568412612548549736950660076642792842341389385675058927275579917372234542591599356485450910460840169432826256507395526831421764495741923491142240201297170946642977055144621866410666382315558006766918448443547219967642735705594071278250183948711785618144402028006684711561660489019343193711209926964909862154046482957513322744994539869786515607228409975699217033175908485694008578088810155102497535057668220246771623054626323454374775954975160346106011117422297754651742001461985749160611430813888466872406687011734961636723550780960610382956963503573620442209956005033142308817382795834140335840420851192108655892803786793184370670576998680862339053157593206025539213974941073345066471645442599439736817464520110721325747670075730887152321081206645575517101919750133754574793825530629610086270653427159834048094658407966937171362596991234637481772665406009093802794906505233490841347700325065946787451438661286029008483831313407420875316655946629979031893879986789518947529615207968484711371146347412476857380413321084931440481252791685236550414790990974765938590395294431360446314107280107464637931757353016737924171738070331737886298806690621904010750731827977981457152848943990916619230791934619785374009719196471596215652099314870125109506730470118696423377946379650936527306578118688745037956306924408229198250618676820684314331028760617151533480270665417096147734619306953088231076246214440830942953061412802253030945820704945532373112953662158912250432070724162193609222234657282548841434421698093859701135842324923073589459728196346109489838724432174060395656065058272809677126886092046873346151144811489742543534378169803773078626143869181370830927651862792384667325015543258012303075119320211525764902451556921547008687880360144465786280035973073256424880816356246134985935438505581010145203527435010573845004680686871420148181262456931715108184532699941037586300560351222476230231882622884087854106511235389479682493742096006481216794748826411057321312414581684435910741017492147481663269171098225020469512917538201823173008779119169144726589177203004209915755069438948471511688365026739661898545378860784954845426227638134419844218402687640870496894571295778089287247285626386485026085418315475802407937192779039911443987438715882265568503857388158759690364399684715065975337172609036349062497034470834828166147778406192460168642132583918640760471562896043242643387520000789719622087712126186928873224378636896529546814535568543142721668284689372800924854455951831298639248271273179470469565845724862884744355550347421774244031852169887047584121164856489568302117385353503762393704428707581136080772063295142309898060991706863887298683098703830811752078991052093701952233518925136177707834251698464381429471082093863449605374784755623164484794973017474019063266751096044319331506446715149300125886516945928321294879695511282012582741453131663692207691629794762090511302122162174862321182159369744137647123519156604130554742083395584893829786820534505200709909872397275987952151157305858318583853897303243697579699483389596798960211337247947892144125046738404264680852477663821458977678200700510943894914475181783416546935093898887914780707424250177464280771599855030479968644298595115008452062371930068817927776666815828418737589338003305498957587063856218541484269824980405459104379196596857181081054448847413822998560242525910689233610315729303630216431024455661780368007421613529831171033989194966211091566263787200504648124784023526731789573329124603696414340437211160993402054693440977177094652524412818440909944997507246897523552586046486033458159090787496596768541119534726852312998616969193457750873315041604504834820445922583007967992481538213858577207542479972407903265624633227502530766412266218832327610726256128664865135658844917028772309879678707540029403343599054219182680610194408855353693757921096796875631449633073307291449157370506242290515481271582403281059108969559218769332380460760600923123331587774755455638803971494715867309973406122392339837334430229711763418435062039858444159673972001856854627536951914529019223386371183325189293173880615244905113007406268403356398611570535992560340330490253610839727748283217684388108684684549191362023611828015838391914317222237414027627814920635515418022742073062736633482124062219192147256059631980076307484418185835590686751297619469744572675998589126220809122821666094914275137859963253595804850550637948709422097568223476755117438705467744045612876827936519440165652360363922452913270762093091294646922194908354562247752763270914160877682531714943195870490130962432978205820135672321178984897779967592064433099291795913975937221370118519001695249760026751992391258333550571201367564884426222043179187648727625486768549294132383759240628512901080633743122440020945179954141351242066504785708109366721309638847214752584468964945416099646172673209234503243233583592740804642906706118849566835096350998172621744209916874220230564151494579202318400931197474373805392988747993908250339788042199356231613243436057236583913373194806803864472107451888500801142105549935782408583439536698661430146615228020490311761878223129072564748715516910908729840715962695065608083104950130719505011451100687180493042158939144083176272256372681952950163911619984593148986734702184065266843271829745886793293934519971524303746763100371711439603133671049688897353833324547942262612818577686039179032315693668119203068746642309461321129159409769515677177698123630426258777484831510664687225251335610594723236352030328769530081521706401378327463659481712908906328529102247577549939099706101656267981642026689122226920964105888954249084299751820904867149076341307899932578187751767300451045617453068728591500023636467169674919731559010395527526581179629674271409478879905786295935887561596349875996809686012346028353152062578470601180607626113019824348496311258736196090144152460532256024369329379718464914340981982562831134112828729596023432041228482094979240816555101551809676090649827098601655295107684988809909192528714895755865742050345148075891681913462765533071806515793363625665190504815284432531851418977790052603315688972447401325494175266460035003632581991885316194636060607234978183125354106514425758169726664389413458711438348724903070558774525098894003753264700039868483719817797342717831578852976070151763701101209305461950440797168470876524064297098180124980250792119179048330096715773036882035693445075121715996491481985223397989352554388869021249082128189690851700510162461562734643536614248560688181241180590847365463707235108779778341386889527208606330486223382371570761583870644789340970801882368412755478289765142743707167611064011716594871455620291196733082932823129748145167493304481509935484454070430762254364520766580677364732734125378662571576534506478638109727645437305628377641846191760541262976132309197741704026505284317389642864341284756249160628200011362553101042726898543263280566367124471242174500964446808443132141264571894477344566645635292149322380739309939305074554498460381797183579229516739249450065482727453097197434818670692998759133809228553285434387278783419226181012264001483416179515279724047662032112364201385371634619041382858547364555953449807207847895478948490447627742996564101489160983306579672527497832959150407794791122394008821211760214635013652415504365659591202692677944224951637288956970045903241603732345754592905373924357646901681207112694088500028528378562595086795865537369989974173094993338736520501742630551214428012123359150563631397226626033867321183983099326707452011460158106116226912238247247893908764096508490297162136003591637318844453327148759310202820870732497298461671412043016030404529292904835089040409309549398200563870829818199585428410977845033902038311364444436291803470373886182516125701470153926054097458735276648694019776890079232157409168900457878396197114846788229618229240302286082828281039764803466888012923781634632449790545554057169568416558385551766355077363948479437887874540371500032210666138035325832132846194350484386968461768004341462907967669411718952136358535127006969571559213189965152895368773853611155920531458257508164986566806133110480315553906579652561118836612331655957404220904258626947399137542860480921578331837842499733046762268995557087519743738148455790206789177714197570471341098480108153817902743761661219495104965479284395220901410411187517936191181837361612785803370000771512408932485757219473422270249403058033293360441463121250729771425258115610586414983920559559165730998940906614079870859220871371420194893610131417027208322129856989464877364217704655392989432458068541401829045294033654424994155057885271594264491318587290403170963635889902545540277365271350612197288382781993730586117689093860267857365659526013363646921801655958985735380463213453832583039766849512026860407735644919133701610224924510100798498154010878888868294325673662245456442240103868358992290271937022061925971540956111727777322293576172709195316993452983607313995997434712752754756872554294491531835636937609830777056932956586556584291203091244844028418889328884801994680653564793894572992397785423020117489417356201425239009018171574261213737438338410434663679721016416760853936442367786431001958540063052023362688321744863704030656718584653384729662181338545443537293626671910581049062170245119542161486658804211762729304103828382325683073644031545251844540514437734217626344672828142195040622828452063916082620294608556280709391451245382816081051127335965262743878587198814677576730132114558757986963780676973774999628728780073597502354278735727770355101695105882562757432340635915439392567146706622986495415917969637651106057414462595269872315052412561252444591443865026697656006697506581489553837147185112758060138768407364006036492316066821438349725299217797412092009058949705861202507972070147532855609458856062163519819745915845220849621424557802783620764086595878045299954020863736468300657459851738346381442160378929150622447587854026948272858378008063400605655178840500164559475091776319866272803513262732386334022009194361338727080103052035327844187407106027004254727458977056619069722123835906307070340141703292803541105391008796530173788542693847053928239106688494564358350607146638676271081371495061864005357133874822515276852386867993297594423421806531703275618753376890310639573522406818806262709688877633265196333088389351692902577881749716300377278851834437143446429589690264818835239963234184193823452511769581218904783971024470035228956361996217798925673163744218380354395485713934010931013770120243966263681530191336114440404879488591061449388727642577847291459900660301210273913609446849744825926112566932559399371590279988572320701430125488101114502451934493202344741395066464040233575872120141124370315169076634188023232111194415738211688568644483938825755950333509178000271104603147357603275666517791995610116303700124236016690160208417651203358248341171536030362126576670405602891838055152697081261517800111615271772166800657947147838079710904483736945559743915517657633565774743968918034802717574873134775364063324072779530986357446331890877772959552867611537323136886844535543056971282749277558928886834275613018405822681938450232065007538029882111403128889710312847258050398382720543825454591245034535778786887213522728760238462077028948517141203469027295154914781209013327113754625941677654652058438404439175938209502968299725594543821831550339649124720923481926760936848997749336175154804478533780201350522007691352991200352762714507693388288729539932361125961416918396634278057348182101860077884701073287366006851438551482087716589993482017404118017865069926019751752373419193350806179948278294030053381444973500222919021933458116846885554373481731742983809324868477919020911284031397124906917335404795503213528914749002311807396531400687701879902982681149966822091375776802974723774352231713639875795449429704537739460457711746579503209329065447043446780507893009357766983058874558618789287929193845480545204246761274254805046520829926856855395976915726779832664973321629563123784771963694121163463538301175883370656765858296076351954677899651659229678738961567488335420661929564842086339385516541245527373950740385217415971057186583525141522485113963305486952569639719262631185165410617190869941083382661786601491248870818675028265854790457014042238757285945698981465171678076081399823268241323768006999753037952012003179793745305972783831541312829820648489585548528573438400907020413904512386193174600142510828058254305787713011278177094413787264670895437943868672176696302644031346355455778703274332693523506310417597722677707372579152990143264045018301438397333596822250647075808369579072648744473891360852413832856304553186453433034918633295511829477304100863444322000074313039056205414199994332927515818697702767182589811766125889143981363705308002310586836768359116328038030533208685002645099028902421021814470854217273948906829351055415567383955381968082573402640624613549276075402577528219225053879430686086062096299608451076745228658924683426956471524278135654459449076473295524530605970022504888597974452267696008247919348954576516025455024564836867338990530072940530002152445579591129879763128516990608250225946895697054764897081300208860726449259229497934886861133630154841709703725378140837989760936097762875098943165023537899629901717605653370260886003865182831009485491446493770863457399655536989372973756901602004792833021487307967054390447512879307683607073117820173853914470141773270700086671742539222432951396954570896402483673023605819908883229540358995312598030710564817010809164812396404048364816226349759093263027400249402727819249105601537423709619528097984174673042606016192130011173864084219559959023525924654767965202469983185517662062763207452892814983908585800796508338348986878922093444879030898950152969801446891126903201244991121361054706401958986990090820492650839180938323767467297891442272537739170910954183327896937351189965236071080353378113036424476866172404166186646547852117941052825663851160756099776439602938350901400677829230609623351809112060289606117026289668046534519137038242004484105529761271172920137552655211155136944443226562058184493512019601304747177677311143408212053436292785858722703826610277983755989799156951497151252619931455139402903140397406856415315206587645596406014548374062025927660393904170921485701766141811803969814521794981658799751451100971171511206700044307253045747769711791480070546924912241011092212091288775732493723426968993978094338965936853870297328703141870079424867631387686505415518876597522126764716546627207800586071590961184156879461095118759262194634326003247227933184143725489461281768438273552756382098895275661615139251530161430266904153365309608278988735197866122849680399416705373293373523882534189679177678353580957775084413098201188456901431419264019179452541245006039239906529496652076556538920648488447621256510116281470688296586859416808602868594301784314446752328017113594026931110801536402992883532298182871692474807320381570040767242932730521539010375082310642092027768512914187705332021001369603150466978164091360419726224658452929287720736612814911098561141103549907959386053180613189649641924229740150211130666361311026221271952590490649184475413978162975732049376432983651847662118107807338120561215508547237233435180067111251816656792892974741397205181957832061503621236866737852998615953611129551533466019475183084660909086354767492785893392591559481950556700674292567189753593230301528019552016440326051126366282650577589170784385172389437078757050717234823311864327485178773988375966145756069624571924833915837195444969140010351613187564150687371528323230949872287088682147016271654154354550248552299410855280941370636142830374705094674000763508530380214362555743364402686306268309992124871408793013916463382947499441027908450671806589843366864893526914509353538953744105022966930386329634076367639197862386858673416255468001673365861804638195808216481771734012499277705221895248684094089270558163853799867899632166763564287924497546808323003877496758413058880184568917259141303819273241338737250870452494967373686174455174488117150918584662658957043550436492417735839094418203994649029084970313850652662137125028092744800688628920566903195303665530506883179628073746032622327274933826772537801055074658107919997564543262963079153763604146787342256169922323283464906412773542824532911478538100197378595271344414372756945768097756937019536237827185430810377400004376994814632276435482517026775830239046254922240763506026987735856338860639150553455967402667502649141915359055475716473006711180171713206840752611851272370048960600999085682828663600196068415293845122915764846613013274963505408045910038972977364445951846426295225152191951467249208318435027996991467106269074400232170551156494929735783312491905438389150993518587111281251587723124467035192749896453450041396803412384566995397073581581202839222410276576776830441618178111619319649158119653829112747469775258796150209151137424635716497643396552426714445737612610491835711670318971325029480868442256553334176493558766518919617065059767626584764068763112890771665956716474385887714688120820439768919407222804959464011304714902828874277895186365090400273680051589090751625915931325537586473515398421904606364363773418169074007519226069377018680227655606847379403371216921369143094970305529775411069514333127893403006081217858044940654433840520426328390623821573128884649249404431605155168736993624678376530922756097436648974063056966051669024534046751339924037069025708338924207201084552357294605211742783761145165762178049719498621473784497326332939470534371575545385559300517326537301397894220398466528114000240228983142063255558158593735848510300076634114633881859294189089283446483823441236775210836229802871129868094110912090346673930739157716744318793287366318902971755236170235708567170768561612365020086966293158427209322197573184881903000407023431001308807456716330675675135354677253827749076610018904730277297372700635238441282461568645548523811000187090661079534121887503752437983798802081669540107850693082048039721538105846809062606111226540663149517505781420204302826710478098517840534138656709687399745257038314592480504042363017759060939440140865131691140374571491643005889456971364671143562287409820739672428210385512436035372501870151172134289056536036988539529144429823579528658326357546467993556142687378217590534952012794254415912129267205726154672618050999543293423743369673968513447896661588794449852403973871484144640952029960710440957869648651038070143477328252908485707101284608486520314534292702915775401750141131526489139947444271404289957965169652607541593348303040789234574922378808105998949259451674002934144488117665676939430747703241505161597434654435445383857762953627170590892734982780582380590972198143638813088051209846460635185334652542717244997211056940935215702306744509321065697654044425453710047383654738863614189046158999290586436319025285762022540372691769687345851523945558323771448786580712027163266455210624768778430578104169783474931721154101686017372024389666925268597017149971417421043871137006533820694822208579097839462765280333073857781002519983612865232887978714353997989308315005836489880467759608342530258061752495295785091486528384687742300143037986939789609434044299354932159167143496491675736043344378049335508711636111105457394610649305286710042127786782282349263239457114201340245721514015323713340299000063545855741826007814208254634845617603515931379076865411155524340731439176529059875249709353223439401600129489939462425386138903020644667215088732430339937715397328287564735314011065420027274350520875829458703071402691802591787322781366458674480590301989265020002414545213618134048105516448575578857366140114559944186384782025055215870671144727494963038101753661704338667813127916066037215970923033191708974643783895824749925048828181021362007427088207852939195649242068410582962624611326712604684244744633456068730357117248116515609666068773875295514014306271248109546218095980574686498438285273994130906314442362371076993092561069248356564207687152943022525204370847601073145242592274973888265953051821162002051974581605186645660607210792821975166412070675222450502541896189641742948478943727264257437100028704749847383436660691090602349367412702792950492429537705267431160801059847102561424123743132271747808263552418004146524001157162044247007076336256824293883836287917718677750146205218085363907645204335275567405184634234151302595307846125889398038542463653461155620119739271448018303874868546206706436051465783181569762174278815638203804379323283610075671105182360832598102925792692937279397374118551522012129753640954538150120551764320698037954898127148899146249528355961896964997149178756004697876916867932701095591960923180283744221735018377977824599078205676330065890375452771126014317170926149894340885501667184175485576525362173469295793287762478517770918576021277396154977360659812676472266241331937994087847173023791257608457610944745955962373799534292594617792154951460062344888063850365474174141237756149979594145222108468752319616350101138334832184402719126417745204236926690187719206122557739241873035142609328461915926331615051458675100512809165765228885885446992730312345370170591677800504601632352524175149441418712293180561129467468771710757603770668424390787675934266286531943644982201682728877033685680408953000905425772781103423936131215386795499579383812016124861865391872497197082107959484092611880290229600319663755561040816531530713943356591937262946022062983010890448736891403720107411224376394136522599998656389942505485759127175100789241443393742099428790279798293253428576395395785928380339403456897329724494655760409186939326402946405312470835723305323745572334345855324367604674101830601378722294995288029269554876935526645310976048373768750402885580418325948250905791510715880836328865727567268791202514838203913508027476201826113566069282110613794834811739629956648263800006927805620809661213658251314680695315129387899643536186475920953961854677419206818240957265162215271535146094755242121169999946191392531554799158973311983247637353585531418325890452428645723392614609609567025498348471319175099919366304156688363844111033175634525448058496613968437397516682289846546892832654450724660149011698198640163487674379409494854752577402403675193178772023242955509729087489526319860796254430612497200706688021465805884296687391887674457776701701781010107387818376951971956257140581186533484487991403378995373145189957770835401598186505496295179328134661755699826189905925908754284811114122113273978705286107984888686431655973934170132587391753198758814291072244872740193338288954671003775915710008659742153486784102160730057950594944571861894300934659404164727484677312625824343879240753344396753242976803042392057479520890583028411105504206332138310702041719428633295245383279825728514514744887111518898656643585019694545540850976831353143777365862572270071442154924718037233411861756269567331584795703207827532221760360653390064342060470111403715798432011831806872445233564631436173112123452012114417454683493448736982092000833513851990073156241820542860424648014285247655584079803528610880636028331772296906953036439456674266162579856988529707225567426064337770147527051532423550246390612267780383790326497847213118477217031679631983222852071830880199860815935103651150708985793470063711545404607075127263677378905999438180856586352749941847218355887957048767643828477456154751397368797704917758427022865829772823384410482820773497854313126603939509017873802345147432345602889255840522840441733152382136842652450664703245494021071534146548389769351207666518340621849918918202997424015472931239743719046735280269800555300920121052823249613214439572407421820827250472623450705117128937961982108143829940486415225503968322631030352383159950954761646508175476930011143562215101770876595785380489733854049160650425558426442537135813455865131860708698825249905117754455856625092177789981349368178792210452338761651936609958210710053749288882092948680935458871433100987038274504883324525678147655211756267614351874319920405402350878408916010526821995992831512578483648867022707747747887940830337300288767978261968129787871052615519789701151725642460150809249778450625451583971920380345051960609154493610750390124489090089434605334489386815546845659039016889981342522691320223256567090133995972158981971763736611252534600977673489210791087037774880986964000890715497846833284380515674833964084211870767545158753303808737289480011792051622214942448016746043873141354157629964698899382569318592516556013458069148074848388856514097812649821275449837696069325523863723436781605921545710540150122235499103787898403364358440778540214538159842807781996634802123409918126751440197626726523310188227592128954314810134364039688576778873046588623190568369566608584447090368067238014022403603252529023962954816810358349980606132787528581210664116134138299870166213015910962857485020132125363810875743038000044290514362112718585335607042883017515900681764663625021841047008862278907579897416762999120410205556857750139462772488194655314106348681190585995424378705695186656767311093438272439512386831153941979738320303323355911229859241402603963278926182445354667578804132900655665826606839827615983951144747506333226559926399705729957844244399102656966661181544813470877919932730129821341297478417960835918146217162640291228361293519915896674768283819518299386880141423117635813398180228729555856130075783451960356689608930390510708193549506778432912264808627708908830392719209291554766268303363017134759522825642004934826853182848792342413855579042237023003010030836369506686128043758241498593070408597594852446392727328469740564992822195917359449953349155527011053308897055819302094608501727421022852978352313118979764749204918242326285582484016983287071908440239077073731756552743551397598971805252443994115134600320090524570907108029106610765981576449638266542033572922126335039441593994813010869764191710427289614855634987165684696143143868200668109962723241286160497904939034436493054051630508437604933863461870740597457665807798637165137912841815605762655556234625895324225800640747647026951736028700857176797923425523377419412078985317412799973936410633624891914701204950854402874025669385978285789941727823733247431528458884967943633582894711322626087790209066205674682561201286749202273810814219962109340713314569583327058104558351851633636395225886178028058371846622748860964702494912028415513487333525184395979447029393332343090339487786700499026810975437866551019635564960429645726984733143666971437461737398495141578792335932754884464576573111805196714704483997514838103498041291569537504000499400387376217154198548923136437777061140301321668326866081087949088641636190253902022538966051468762336367227819398262416453798736282464644946812915588874269833601985786994515065382259009865778761359766111899516460703265615556580029973029264018158253792054471682031549001951288919727197138040101051758652143935619026251078495697535304834005230022140426904320850290201535668680111815996336743085683425460705915027265888574741890287234930377624454882158998795440225876414433129490094252027888760591940922503365653428174281971366688501796784917612611717363354671553532662190913802857948912151704629657375855761524707732927500513717098716692927262258950734801499982688087111184647833040181950814220710230758880116410713771681094007678944731444104031140638131509544632920384678126346537860662934144637094833870005916041018354929890589170365153220692426541292602033322406463285689410619236773238959961146949078241154664016820835118911391142071870140347536319433164950684957777445857435208366364782125418540204495978820139658400285851729221862337073006574782892891802555446742215120424748328646033776076201074183597665704296088644534261793469178642685998779854073131533727925024179830606964883684548568906794714050172894791744997831461340658442980837232541980687114066228888529581050627349638989898068895283980418209683055752854112230470197831738602445763289880403243641327271891974513847946567671920808604348710268302144020731039647059236859258966687734938720382720472119666924284120112364239949326790888918577778453455863310525234757235312080685965107675075458078400175573185203601083888824028102115710661218765579035864775116765531211366928297219618376183555387409796799493634265005135281024619552469882068468719533818690611235744995373691829861886961681615284787249698685996403188809408721093475006782070515427151421764026730340706680289619077175667917850026689124183521750512427981352990973763236431550830998404016635699162547164755097251329510696840509037153225269685278725112370116588778509286967141016683009700092182766505996149407784210282347326436268888383750994223489909924135281384186677624869097904337595647102625387954527984875208216731013663348325115838293087664946198815214217499020955418590739057011130504853089913240944585986836765903646983094393600242755080935496020794229903783757707060918861892436233691734903786348913411559240933935953812133571737536745337588333629495432395953557946414939552240448050749376448295516553461929935977802749879009211959481241656216917086448850379405282033551159691735867952320994095338843979860296049483900325578449920288491429459381206952163167477064684823571977645583723707870297712226592484029407808404296788929882158293012439192129740457245585688018339534408614539040363369372978101177329847578804370613255090095167100020088860320802595283346032810673494721044426833050892415343634954350591179986436056298356623315789987155785958247518454274729562666716920973644564410707876095615556074106857464094634776133371658771571507058575894641330421988789643329561969118077496541800672240604155486937974519540703216711721226930362778830262950997672836240941893288967780170637285742818319892291827747055052090077848839406501949166759410349927235625143990623173047270049474659073849475921134530057427073065415100424618117487525572933793005293103360412525227902418916459689838402274490591995772093804299488446534822037509769562652009588008680362407587745966480803302408056066910347054467553987672631928274828172602367282304743280586431879142919499588460488299447995841290898453011730559029783574942093061649894753436186524613363843223501592859094118149081450871393669397620002295643724817981310648197918353315219405551377709698161383046549720978779517153427197542353143171205736354225488606468655348269615132456468134014326472075067712578425483009209998789687501591263515702779765745801964372005979764505312600666471957234934415066921314704354606257365709993213458167146798044983053838791948017569937498748678279720792036848410286551345508223129873862255378597439194600466999814172410317728630976824706431930506502698927743646593254058731961369496870706709769641883462062978907310706063911923644562692091922986165890716284701363558732043002716240788825295558000105517912387908155140271033302414059425514883539673728335091749637298884426564340196454807763293361772913469055272443169554982002870019266582469537179583646676553352203924670306929399032309902124626083422528787601668494044595556254907478101421492870586858321107795090309796500072821009805923051695610425810842674375991340273579331347755088653852295026548234259157662046820144964436643700025398413669193383670646582631519771574024060086097360841846382379140111905988045166965246091735649479046084912014274327373664893390801715781052147391221228300051006581656730742309558960286653398550387168323016686072908535711675041396242984099399527818681538065415662585786396284190580923889505799478322137904476468396579306972102325016565610399270225747762751545539841356213149038518618727773578882671441020764769871572159585020408909522343898833146417540940051841289232629360265737413943413469561154910819637406335740010450585024144833103097620234489834110908794737282858740818271025823624408348825283758753713882106191417046476337718520280696728797686191384583728591413785610901585673003387960128915058481320602777168292623718447870316983975640707553761972953906231105984983259712475729309828640058977474172757614064972105283974338668233910101181780421326325836514874444559111083479650900635860127357133913144342549415883774622739205629497108505883510746217265825256902191223047457372172482857204985492988952112602515163723301704408511196216284366817686115696277404168308104029267471122603308511997750609076436060729932935773157454040921649301561906256227379060233950153742571446726432434157581658171948246068259403530628949050387891383939998490473947426416757179255040929861043849886032848495144762768572050719950205811797555339218603185079785447172565370969349567469523889209501169781659672720439519878683989618605730520089726578358914536341521183424251154764751553335894337346700297609854382902222332877666416008690916870131515991620496794546211197923508668260198200691488222116963242356407325968622410842394739243300939966754649146460479674153610705012639217602571870110961709188146097019906272464508710547970756482786973459449072204690234198340815655181954063648187483260548351246765885822582291980148004581076781744554351046353839018038024832103044266719113344368453439208867517962811453353314577072308937720999492521456919823299155027597389914391433807922869736550301436614381324664894954644590256338696298292943222022965141079973364605000253576347957621750999207365601100518001094775967539804097332211359826310357556306226581151320973544583643448203811166580629151346249290592335214158574013300842523832736619410040654233736742029639013080384614190962062433357825734466085789535466244662526393478753932261550877646823670663877602090961828046172258844630237398079307883147414297463362772656935249050251243624693990970413489845170139258701854666969662930119198899259161468427551870740680440168532178872893549305957447510755121076282907729145610071783078569551841008122618047979245536336231815907482872798568650142086362080230295600349967684853230936974485993181708998700036412051355327749113475384300941971107655566384639793479529757536499491339565315127126327210913776848413998754810850607020422918234059567219009335070949394909854974549761115283068354444193674699089571849139046896864460929919310666240935087365766513978218839026052420146399052932194969930148996958688785725804638275304237548641700620176506713324169940804370848391262897938180234771505804101115310139781449348276223470842415971126313235384951319550153696042129898102004633009553765957677284282323112872514000318908276135230821407734763251605121064233278564165675851424649655457030208418969945962692014100134083782119761097422767967077732424544167468842404487182226320234515850714027823336574084217890939882820343442478227510819830517469478602148127648176293405891845040114964639225313129552250615415592721242102571182253509121067783635050403156251215534600838660325140186171923474365217004859765153505044753852296080587130586430512913370209169492215689332410884169458582075036546465696225368934002610037380632519497389985429936833451370246394146788799022296869286801947675817572850772166119043965495948605828891156943063775147563929539183149268870098109452832843153115902418944570625692855895893488921867519768516064721994449011350449786810572916899616379592536806594576268274834150447687457185696231499329804063737637551569669723519015185543062048743929094257931486420962696877682920876530831212442974692809844425840934668779398746680882456149878820011502003291087031522649904788602692233994853874447578127158639042179618226188963441278722914381966284361631870513153793183204431175100708110999314645793615256081568190549287455382823130424380426149405280331296488705510666514294795367308380876277871952664763697615330246983646916154280924022395150835301855672367885125167645687618322805487897398065846508180534533175032474620135801622269295742216436800761895468593869031612532589080668539307210959662582102109636125609220229930997190024083935880157124062983786076214144567130575398987550337750660648724475927947793119627345677875185437513031232756930416748908418382024605969869748545341799843926032560759720631538531836440517005199079631473055753803506522275184312347735987377036648294030874226143946128859784917529323835092109218386041678074101846383794159268049616614146569011101099851008492192900965376577623918735629898111441037360302303431179469266939837262304072052783981505555199283173247810238450304466342675765085474132967197829547591449153702360215258587550776733119752820674296347857115759238551547660036217420034607778686122352756599162293148231267155668956290304025852092656955060080177602035452970354405488087420970589689552829912194062096827363514869686165772370752267575511049361833784438619670906335458270582131737418509297291125770555773894214402194838488555622626695733000241899570419940488801918384345364804402458963277372418095025031585664975548581704149360075673515635699460706057775495348389005433450981229892033958395442535347564645844232118675847647660660264005410830311102320763680326063840989845970039131535601525266136163419810294974001168974493099625955528891844616257226006194893183310115872680781376014971018008898942762343188397992261280558853489657808215761400919316172002460881892466162137668715517771084125932996579649684598342298538180408491693783532101679604426630671176691673489800792643996503234120049622684351553093902372618452108376841236089794180239857742729634759414748902085233011170673114755901612872907233125513916761999517407642257023200675548510556657552066894745131609837491702738006261682087548445473580819272148459185099624351239756286210174641124329415569053502737103008287830808905376689300101929042152628355039015116909072718441225192782750588358598152061354641552761625617802955675044543636890846557282548840538332867034652634526331143037644643726887426253790759371799143267498178715914296708527138902727554007986900087283146265678913248222210289211055560619519482405036977673611921088971144716915006449919596244639033958389105807997156588207217145098822862962160579364784136798919488989442778943495578583614743237173197326198807061084955048018592284207185489346939856535699925934117684123785350782114694473346315751662054170075162497334191508416050006372628269877530217827405852928665630353754419415845063259023568140564510523047771754512214491848462846512909725679759951389978094595477926886236142657303837421826720646091979682211060887097111612118461411469977680758329471282327023416318374699423016801343808618164765375264367066036155643903436585788429144284338867257499029787072954329055106621082701132927355682340376479368336368873515435282649781146072414613262821954336060464456600985873006443109007262602057390568703314864825304416523222749818478802835357192110270471256283675061858383865983478355878846906521893443708444442386541633316265407035002646425562507345048615137456228334603256905086027556438039671636309891177535704916256051525761790299361086494077931365542467467338351910472263476199600807236347400210406611244748168775670268029477265161851098296740181398785217876011369056747695900261259651703743479900227693315652327812156286416157855591703578763732455319891651104105503583812131024421376525053906855489099235092264172888973339234378226838691603941882109157143265468446154905304907253421599490962249116080280395895396065486474420998003806630623228908385599044660895264097610740685762082268183009386731644904808336667914346407610238120819893061293137831216055828690905114502431012074519659869187642329335646435544806359812438322352533723381992257325355097613957181077022332836711492065090364484872113479348707615513127791859425757233062587506815712898916625808418407492678469160204204809257711848253068431611617410189090429795643923693354832555918858042588034860120188475642822209268577300190946029265369769783959528653433519153628841960977333420232246620417830857763253549768304177247375792987653722330611241193294416008725582810772099547280911252872223481636190192438524888152050459227851700062460878791731029629504281595208038347122390518679416895282197003507863269401300360639823468735947867064310307864427791011379920951002877366911938017012776531540668393732502636358259180093555113820699707675500259730260254608844342632580083968738242939127662737414389806060925490824689863521280947098076843847877842990850589773195625082172643642658779858215749567264104393949597707270291786519061363265970569230044949264131419707629422670589339981500821878543010813509227271067936307435412929453225916893354562225187743190841987384390160336323624951758026233716435223812396691809761468756679179445050756364091267324373184975443913452943157353586380798426138335785806382330817999947439015621342679965801296601852909995394260791020230375964667129290070439044601734376980155343588549470728314938977462930189238682427106382913918710735932437100277500701208521463459520018564765442801356098478134182573996982419612833871036092080030999773097138665959709968372031774825387843003057038246525511233426822154549045571038871215528771934339473389570427727649256346467720416841118219538767846127319816612645323131719576227195795860993810820686028542957234402761981658008699088571653609923397996052372428137193998832837183024237590906021368585120087707252582627334160402025478798610010407977264691196722352213079621255743862557512020332492808630634049127128494462423246273829823793987343243190446046593694627313234389127560950823136797048676016984920251887106385333229668452907036165860608217617276680626378450285365609601699772579851035461113928527342750493374519779191394309195483246217471079800630132639947744470510027940681045050444889785182779345878880810662213637574073113682925613624102717541517530811319913522623513848623933521147118072292185015868003023806225363855934549787275918427919473931458068818539787729011010674701932381952056791986674065872635910293113576371164317181925427665876693256670696810512505715304423823540209143627931746467242395830539815112885649142352232925941916564439580904506149978351726930858293407061926935178233772129391882955821941718912626067974819532274532412226476690169152736220826306225547921996124443401330846256860042562441794958541597741970350805106352642280279667928056335817384112243996162529708614935994098796714726808386324686315706979851782452040876376633294575862132510613355549664762700219369873327342244531398591093564704500477846124814243314314178958075638546015804007941589923159212223224423338960413898027536107119994814959294626196359116138669176862532942666141461963560968504511468781164921247727869680245189414786231861664673190041910154095579289857945932184841478619506952814801511440422916255380271449818144557886560700957431570745049275624645627302895715707352039715910989475875142968021780809321493283698170249285888316251047779559466756306126819038305571462047465934725425655013545419485468016385312893492778132919416740409893216414002639284035290270361138529836993722072510757447955670588244817570143265385977446841259085080932740100204213550320969112862306235609536780693813733927480262348833631700109430191614430952501958946696639617056103094833770317062866433105008672886129620492714720754941509508839945434247496612259876004010036764520648283487529295155657593365841961570731624553946830815735615434291869351445515874377676082365905306812371351404661355175081872146154523248161871834056815993896106763393449490948987265197103090605910173102819951120884754944582496241096440253563158276243175733682415422682083428884496917839086317465351493649600470182449883677542088256730250995632876085744879024904762373953742705681988388658138083324924166602764186623911134843808344318387344451405386624749421761216653846983031139636306811398971167756578502681970348714837580431525562499379693487739923205055564510158137802037153283077574753282409391406845617368922843986785117255523873789642099867013663644687262371165387040830035781992296350795186852300109776281745071856903444836923929277646763311071231984666420365485803060113953717757432503612867043073279507255796443839335257815576642229819809704629427056314918932047687657522762983015772680711900188627012833159334202549837346298755612781128616038883971843169133458868241838612353210454071066451635866049611485295846150700148467084435087337300659735336276409917874739441109095689420350798326380851696989808401188185951559166549276046210645441402012143201987686300869477648767318070027627288490429276889347734876600801263350522597361781635317291350399629413761243291613607898068663644814426062343872273483909024806523622867525772942965621589357002034024353069277303010890944622376701356906670469225872355663069395448302742425630796586266182603127365955546820290940663921069472163877364881341359119870606144356434585615237065709015687738098608717681376165346904489968885663771251461887660708350043479190668054188490525902424734871321932291138369706291368850272466754852902992160043277973326297163233115088148835837726904642418602559869413889205830657623690388708953085736930885971784505679443338105159340358621848405977828757549991011126135267419771484757703341692958133678948885666462759201412317952755906841625570183764404381229055078692771489171693634734508862042252467683979210437758422280512205679362769754135757304718606215487717966489100761127598963130061073653519550005380559955788452403647649802420838195762166466795420603166956318673407851017954196579710416927108520816588759603928822973905896805858997190497714399531404271200993709258632296501437311392035049912652485086422030698066826779512818809743898729567184500888411162419833308027133341361949747837192126493650168774106176365970680373462984927473132144682257045222899219036180659367041908042856166439429266492364050023493294915410505602162443010212862306205574060573660332098544877627528134319507934867571339486069523704986191983230087500217370530491426819795739946300604810812514636513430759901747173503500483538265637345420005857720452782429566327992428709062216187513876615376501722989496360402750698568807155879019676818766464470547083219616120098211101948822098245658799079198689967563615813271267490230743015753900254705395433534896821704992315975726408267621296450113317070229692304941977372878021358415004882810370462732830938101576007142132086911217166593723749382949894682140354809247264459645598955973102509357135293093502750675389146666536652195218195139261082121893159497092818602565166052406072922814438192700707488161444187595000513801305216330570235681879855898844345704159389372408608025944471127575247751894462800220842748355487837424240263719486590494897740384618733831276407934969992103696287907516797705499974453716053997668826969423567746639671942647791823544564374223882406669725099822888695151000708847815450901848520719801717030217659301628603058889954569211123134243842044376696967435736773228079808266596710601414263302379909222943634355921091068216050425151414729309684687622096077692693489911246188860793527895436296250134298742264474987119399707971459576137615075054728987575335338371409381963692517994450653627864471216660167703966624230616522235410193126298230788973048827263900189189337134343249994745414759482937136987033167906548629406187227216343101715239939402094810821947032265260899203833526328745254095114679117627072178621139173890304188572590562520247124607369534475401421714452498999556271759453951781052299844810656242534328469349822552739320548253979893305603574485039682473804339690142789089247548808403213468867634611679096998664226403366498652312185466855628896674263520979013838701025608849987354012290802276325035076535099235082842639071424170189254000790696608384418686673759187125381539798529306442661051881099137567480600724640764178314049111309120617458659730007731635608126797953371465011943388568090159304045850525455753577478634750529307842693226314807324254326542810080133295945687877762733410427177208697606052137179050006426318495195479709310904151848326704400328810932772059809961217516414227336944425471615077382839316812034712304909501700896683459570541651809078238852729856629054400331937513933435244508334346382278262377675154877642501413297420335143542651412209317744249643230343304046812357262451710888658144068951878690367707496352904242609402594105823405627013104489220020187343179075835237587249648069594614623336635056859558280495276109184432841809906518887205036106262397053559158191089776149750298499820221479449983072655186279817474573562285036998457804674411648935182331253625464239107538386004710973638171472829438637948084426613119223018974557691619138804601704920475314418317611610719083371167679640919972537330978918643754405309575363917132916112090238283506624009799054291921854832860292672125429960963289778909278901615159120826848220857507156231542239548015427643571443569773521191949242529133928687944565417534822532750572257089829747440014460250750928314407445520096018222118913926665026467229627689008163296965977516066579154174728930676657180024690295973789509367718640100126205285910809346781884882276810254333769015267919710847479892432311018678790475176494891101492487119985044023339754815097002959994264931348028586145235625034166512086408612465355618326624283998075397104562818832954381825947490896885732365140465403004479970546464359273575331770370572780459319805028935734918717017875066880047224511184867875237166927209374476644998577206471552918995104208310063142546946995671680381944315827687886191164041765559598083625165677955669604564273383563331958257534371616511654610463756425466402403819230559077257672536589864418639852617291959019863995179624184738339098534486565402824204210195298099631640974159826005470111608001107900490453343241033875694439000392510763021649355778845587947116141574291984564725713556479584794215758897824689767411979451928134402643682732062363763580350098742840846429972248441344527381077435933749517828810516157218913481075084550634976663412788081625468312172449544226748462087512633438325436944801127090651317268315806715714623340357119002509475112728685126994576682488966534528316976343279297179275594305417493681862022261351572117961800388383805757873741183592999876756388773229442625803979197979246876181714008477059530671068906912740688247203687744523882275770226143260175087152314702367683157648105618869656782510973358243791018531413367526842352361992769279532781380122357394654285784220409586911359794710856933103729959292321171755823223366233260842922648145516954150724896626972063243507940822522327819071733049823216332639886575210566397794175035419109026045609356500844030096931343892643516043115167260348535892841632675883271441900936358036912846432809427089648912101147364646513661434506511054554955532341986482105768619552272449519616063884310902551881630855014337938158437321043851418115862338136370129845096762834282258726985927902619337484549280676097187330700908168055477777622508858736183278814029991700047598011723364775527233552698396849014955039020661441540833024227776042882265428610883867295234373720481749927638887810938631960965545424454605142750108395867057700010319541152655130357836599571029284260069784085984547611923225185140307863072978111065211156559020326655467597529242688176844198859318909879862522623169605428569941661469299953638103098011709217564405311533051450615487879373193525700744388092808112513686628065267335004410280144512350813056249925936223897811594469771663958461619195533499765597908443083912052996760895977897770223448428252390441528819782764903615494154361321140517978613793333989749170609488400143077533186981876433193137188908092754583890060600401682888486973254515460862470702330129069581058612915587329065566222107703451236520824188004955082185576663518248054216526704123737245151660954240651552756421439437787583573430413465459750864675253763022962314806928549731672212739794057437462095253279054575496825194036178918038453529153594873966953468030885378916870864355031380528065575691049521817688518669497650875663154003871761118704373278002850929230895143019639165888778437870735052055344687402092607217143183116388319620413729122720504521715749839085364761735873952001876356910787729408939297699617096855139389094989678993460882376223809200373702729971548697024048178319211983351293734293718100260446141852481466152559162011940885753182592457448207591638350853906486935625135251667692054723181853682931948950531405686742696447043799600923139542603551919891231286071314073547289902690751707808842384095730833887832125688627337125699733226575733125061848042717784141121381903997184399958120742923698918801261954468300801110845391490979468114256402127612144811393947559760324711263436238262798599301419080639485845227957286701809761021930757086193782685226017746266385256167342165249058555787022813024703682426857605138798554092318871944257533056921502599660488639999157065495310029970851326625779726139232548590136370271844875383143032392480070412385213904881266998905473952147220086815657834582738504727996713229372323980996744757439401417443757691792128820507085043750018189505405721180974057238030837685777074231772533746945310740192718837512146516762322374638410293243886130838254481394706008562580692481059631975926287372782712648644305595896584416465550231126779918203105841596914913082046128216407758256303334247265184529852820190122837762597336825016681099237499950330221581549506941930684781955866190793157607751164103599994357208261112682789244601549158227415915263986734902912032663295590791841857373290277964761255170766700574100181315624905143735600975712935391335092447132433717471998133632172083564857682340908790100149405064403110863434151115662933021307812334352011234688788248861674165542589334855929132253917022466553653278457973670311789022771389201503117295859205204688393505397481089825204694856836495131454084460219701906922775276482439064310948281563482975906718338801855143162345683099372638276353851477890466349474476126908140212080951880940257047828088409173928198576090014208532084953883356591678748861342949970071386724201193651544631866133594493110897244802006370980858710196258656990844027235695451864323245713342457686498244421228110665554972436068109789675435310756914269946553687315947799605673323232338403029081812679775874830049306614970408625861192324979745670202107691508143049726533679297326172776646608691287454329964671242149702672649415510050060300555456603046001902962273987309431142475402217829645731843240992678437943664438987577271202230440958352368465731027079988375661559629479520062586732076254134668701608013525200870370047208868753525874163485740452458287497676389459017082498154383986769600633840962065272602968551612836344009102094259628215042203062663810030101914329181514475324466699542392755723296241628174632328967455553163600258094972686600462656123107352633128662452421936840417771132655048726906671366302094684052222471017262709306528431729956840267045918678999625565836047326368305848267459048912662374183150096976248300634972807089465717245508142405914777118676742416162288337545617609000008625324041247553186151357674227199181664668285642172653807804674067745982969620149575360511305324261331597927106242082616694339366727397383337573543998412153736526888598208138791520255916531709385134994125290436432922479776917741235057694952368257563696523531808589611821769721431657853826657821442299904345616039113887119146907967804417532905892719786039283140274119502655832432929741964496625318167615714549391828214924642160714375494391985929009009488417896930450820144342885670443990808646045225634367262516641326281739291238519691410448934241277247529663267896244218542023373120967925241790429581310104448616265530064316408411261436866805911729800004846025767967061304981702789534505657498168399691058777216789943734852670220233222893447420199251809321080549536075819907146080417626008667300761201003496240087647075924347118031540010285787895871923512870056432206998919878848903708787474543573274192673004343794513208316421348621151572635208010332170113872618433290745105264992623596075426113364990931909545573554473460992878647055884885007774228525927994363863142846292165556935559166651981412979182393578788060846073516041033931029399882324645519323231750619933808872901398090449938858049858841152437809308438982941609483498278320670182334903394185717537255026757362823283266435889335331335487161366839370392742766100173224153934393924536416319106498147784821607307832931222412691889593461356547184775833456196651315408541861838530121370374774099915497119330022014005876416969152452797344056648282543971766490488661988232772898604007888389704493526734592400967662246544275162336404753732178641651573477824255437066236570753353062615496638413860924778769760170403301177389168337253049195257405131209702780258508947299373577430216520767747124714951116988263142612179028087230054763087859080696082880151899785924945695085862397204199909400294813578016624835243537153988830630788984672962078420765548341052214923555153377844612631197361655594849680152687654423584904247328840384102841863747030060605086459488829914977112436505752894079150025743234898501383169400366141378795435143582727316940466783892883237397779207385473615083153165135602773581581653642218818940023369735124416609689511136134730198607481883171327060386980192476437729259370664477237136584217468741825324030277064527578835288624901006714134056045158770230453193623782326626193119557788130514528711963111785043577399008994765894292811774776915555325469991263091129838696587669851567340302664324041497296802661913316811027843488818668941797883764404683863570377643843429903801062934753055257084132074111786621524217406634426829109510988318887942127314576813429969726871005131327471697918280284203830121888926927728513000255560065959800457746262911245441959669536825209599315281694496115158710845790113157811616711418220509244925133658241781318432678485426127821740487845053422309827373361155847787240023500863593873579724099037062733037814179052396010052715054439422214866800558074467001820689634113613901051704560970545526550346335062037621745834575744296310911104480937415920056160080031193041741099107448593146272577412343935477166091391548289682205604764990939519228212305013008729216594737360224177806455702793645233482246633904195619314902888066600525071579997122567708394552806603269702071187189738715714867633055873801621774830872905113881060999522177876423913179898696805424022218719075493080702663126496410180262265232915025512723920813629317081603730142426506107460759810504019354867500035394282961545670190102798464849391255538557473726296970051977668896281025016324275336168698817297657140830847481759281945945903310379500941962394520810567545130571035172634431998950487885742016877690878350255145525379289500126478526277984258510768949298329078793483858593572442382456248431215801074965524091457957724139284100430541719615919152239973665300529272065025835198048451269037866197636584870000577562341662754590058971640047876595663201438699220016775736529000307582105937958887151815775553525383245016545884066495432919621399571316605285576491170027145776465621419698748247443539364602279253102119156170198664320656627821107389482801776640965117013666696882452356104465485501580448865104378352242222061009787075452852059327078828836666403228205264258816538915063353221877894573841477733336723723025390277385488492032841201200388055493258696336369643557003683257145501479735228760123060003081753075344846302295830287100545276927061529170769197469879863614303774056200171644628878693263354306249099582472975154196733410973104002721816397686155256938307927281097753223946105553162881116957739407666744014517648864329883328733429010360103942815600988760614776605168084413676818226758718845897306155643753318478806890529866323980912054703181171141071925592416448212674768950768376685568062521722203740153045551674595136377537839344275871311410456736895727524820444717055655762777182094018322199083314897090538003580057616833540697482598936737790512980484150293766010642144573181072915986965285980491693169265120482425335000559553477847479686669354155104844731717420000652241953477557943463737382369230287299292657764238107264391703263372848918692572217070718951329566821793928646256668636388921385254215332216160676249242703448105521016808051705878171831153040107782178174583506233814324153239752836115258804767408869709293830651318410728852340817623612547146067229660301993733556967234439149563449296914750641788996337110304308372794663427817610925949912314382014339774513989376976232343761345980042251420046057792739570488142934600196078885733734940978933257152998985415599598539709066867526879789197787887411649179079861068074055667289573007803941773916212911879961523102191527223528675911772391112712562401535522801962415217670802104751755416080425075425038528830206800269354937437459199164026819366748683817032598413489956200634236927763074728563980509630867436065496772675880373002511426066440775679250521057075495602558290878837601583320342355586195501492827255915726153885718582485643778319051813793340700779608726048003266444435873240644457344950785609113167034104519004579387693899317260327474634254078517499659306233871935803043015614546362169932253035892051366500731663471546084203199738561724547979021394864227440173653647088513625819128222551467941552891842032230973878832208626561453091152961743051648479133329010454495934709377673616740059115815963725696376167407263129061188640363857433451886058051326600476739035138328544105377267591781810185192803406315322864167154794591949983336139286470788618890233224740872402134964203350619099717039002670563778859186323712601115993115213732395834895095143691372921163234130141445748929406082961755099862062578921256214929940178994440865453400577275538759492238604376248839258874670938086785579909264039462506878802860702632045291611596419428200812392996582513495191394230519917157569857005104478943054805255193141209669470897587149851492359261673961618130720475588265921851296170548807257983555050495887124422845485956087835131640553697915227853534987281295488472143779290521033952154318663859226322374369067770739159710804783449526861189267346177441385315095156746559398680496577403817324776159153843342689141486046260248751689983547584934217464565970405326818814593579212691522589984024996106066209776484936690323968044934387269459266949093832000082409961604911800182740520865747118245474040793309218398439388091634274214679285053852489073272134642145000867575187156200425752865615971941696926494896320722869716270235693414723336603942947178143094026769040798379935701906844218244231995732913195070157135537822550952938484383115766057713817912532980606322621758863379075945980275809564371673876155635070378055226432942004519856214963457369264553545187404375083972698506815203245158738556749987722614278752384371918028170080553729871198375882833334779888583597042899194059220721605786703167458920252732208695646085836683518548033329560914140997140952982996824020854524767296360231471108629703010010691353785059116433835972336733162805489232957439715729072524273265361428400688704993969178140288680994552339385356886517533227334173583835048087120955516097484048025791980409637629874439508341565922898533740050132212305199612327501078727712797179454581411261183982104782144102797737120764349035530531933071960982939028220221141403338593349786853161955986126894456271677946087902037864266207227964584159214369715618752811228809693397148272702625767385104071806084883890336527699463571845490919259938887243359696244913425904212067512222865493161844775003239380455898484826274604646468558531956679899163874075034490744749865462437553539402045343752955933211769618270757663286880740194624211490858603291205988728677037681172390257618833146655590128353531493090911469105001116088778956807842869218589104617280732012114140270554359587322937048395955653544410860728549160550049211762397010265858935472155921981290982806578666011673396716192936894168185934112605119551420157449915427632875879556498535742520877515390544135309963533385362208172430509941545258440664043732655815837705260148274441370714800694502438615876678347572382511000321825844247586383880259560969138715224689696880864782551419635251250769265641841939111283786391101388999341675498316538143613874978646367809658315997103503901078132741683368299421864765770534426585976831774142804518962201807123417199725918093693292896398948467486003526219185711136447137726584608190214178230840930924576222598528267172966417753394694059177405904357460869554261443469920448015283496902920226559209373358607679294271189699037053263075262375563078110655760083153897405991448332949914385763563639666900135538291385928536450491741519773787677768190379555029139706707255377869855347449760521848678135036660209413553906549866559680822732657830606981650824525748487358509248120901584498773270409644017590745690043444586143317010202470493440276165559932984837422265158651031876395251782958189235545777161186750388702252949185264744975429940650472324200498340298931079705855516230437376948259825727423719842695864312631033609961095460522923816471519318657891795735406327466968856277133448948602121303109713426940812121255047832520183151502849126202009981702852590434140117638747341280985357704416214099324129412988940517203867263118391823384492706169609153328101422645793680434724882020334562848362149917300141995618138379609316341532439432840938990867964536574775243480415686431876780655458478920297097795643355713021288880267693679048272564318125733157751936803110932863600130984412848569528884441365704111641770798148697182954397653326656965798623591941134141169090418955111951081570494885319920903045175117480579323825722429148204367246884803155807898470861271440369190017120567897295886760059070302662909609224825237909198782440644990036193556834264232761153071087756199961031706674172654337123667316365684627852908953822261067489049098426860616200357994824155334446455971464876669549148228472400492658392890221596275008769105184231892232909639825330410049488812369189538023532342463734489414767718481974468759553597261130682300910781437122485380120171154639152423854288593243377295661813095390417289556800814263939597443496101713172783286910000873801022581018706446065522846418154411960936578055192783191503120707264066969494066807939239330387251139679130161952923843850004821395625249839053346948984761426799737552785604902117973970054515288838107388716137853143606298733667608165070878107485484458087359375208613225696093417822701016585042461967796862096983553959880760738225479503629891823320927882658607509010027445651103741630735071941556441136366504144496827876562250326182533083221143300461872478535550435297588251887984479529868428173577695506499238751140711381761628197752253641805141810763905709890799463853842257813739864774438504290531137691743004832121022409533720519484616132862619223697409159045590100345598543665883685519885599672211599130731258406624454293230222061847616061766127598806592920958906116033030398361357281052418327398361113794899309086326614055048272537320356638804598807369092829920669665209283703068324003454142221954622822089128715435282462699311382329270121549062097317029469742472945597064810333315529885204797926829498441987581061675067916932369939457556660907848003759086701488514393414532450957545210689987262081424217785277659180896556142760504325558671872299513050046499221416641220882464705071697599980061061187686844620530177170509666060748098062488668097746491098055078683831343198896930543643205574686814495125562271702149957459812775900227306109239162290140723142448198909026627310226509481390203470660749452490440785456145019062970990712043246263016335456546371285905833414811597214119672130462744597332958681655085626911001847458483289375015929101548815013364880286695556445493557557266217016424479143715439701398029642409501060261340683274475689043649438845835018707863720309677750194781657755980616575036693134460270077263920844760150353690242331008742385543807705410149706611219666208181820906950754345543068725440153986099778974618706866556923104003312303442832487467053678499638480638396979693229303958765678018425610674430007082391061899428523633436931809459327413425006671593183522544124350874525407851258151001445413927807794279101185799890131903043264975243653182759497213038689924267515932487785410027891118104829835561025230474102271822326911942519264258260217841775487276989414497772410426774107831182559886509031622383658445673158421907793048145364069530187177844650336920844324824129913316801490369771433991960433184438114153254529375640611576034711789387223491169198282979938664083778956226611059430643325080143599022344435646580662577922843271205423256727025299328374769516697498408713069175498647580182149807282575701069241166202051472606668967934894307890989284212260681804918713302910512385048349717556088921676927514746502324727726370277988404896049605559296574406939090331862137529828806239779929422380441597160234447225609579835210387661692902565945319613994743684240832018577713785226423744544620385962597482943585273325322296530491143976024219822388420488249976747769508434738118772049101209611801362560954612687298429098422503655915248254896728722239711064727555624231777538043484403771989140248043965791304144356109401439394913861476238246110190063790850981338596057317232073751344555315755431152848945491225997251367521414810878734118859335407981633549822198516917236883207184523111032500652459470557174539225559583658370798259609690898950443932181323586681421078251844542588149613120505090512205181198340940819335216254006143819109797326520109256978452295944685122408015504021051710238887858859205356461247517173150269744836755313947373932017363813466724764012359408864348861041252367643940465756723831413709278188725057860691741799894266149020992146211595583317439933980738376592602196146756303065810830676095853602003944472200648084526322797744194198917211905897243788230334528124807044377975942888965529737267553198709191748985228839603868314148914933075966302748054772332981645649055615242554302045231109793843680105988412371017380932492500469616007044175053950743484002952851615498069596302933482406185482807108575432145398387063292709431715209609439624631129306306752774994348501383836635509961994582268053335351008397105777067947730997366592525382889735947490447146015695409101970952462908418658421230334106914964389107722454479071573163295548201840858276250343947433376170749704183598233741341175746047995329380142540127762957957839261006963572267581739698256830576519507283704974083736024355313953254609051915923627708779533753474349956897122651737683526101332925585123965348955183798501678860290993684953671208104714836521736638638723691604429821240278731983504443851468510941033028030581087961502349050802518060818421844068908530734500295236005048666099528383904634424768460132073817725263147217848617102314166330712364952662083070382507413768346999524287809695878995988111301747595428260026169027344605211697871510844005408920458225757829710138750851719324580602502815281483127985730414021523704505141717415895459070935472579481332902837380212413828088914562164683448434895005501426953056162847096591828617207740404025249074469203522407289017601939480009020050406861481656550472903975367282569688106837652724578839329311742878156292421226367841194252416607157337461760780371634007620710739206101753628838588104545372974248135989498610628125852052411411977149350728030680314378367732923839505368201745941486787982425908052355014905396611558174116717990066540283082601202986521817972890625263136335223144213515145603702883736850870811587465645389685426153561982209392666469489097945250483065787349104331810088201536766631279322896467834936669436519587553471564159933470494327956904222975758163739714868563874135379710432326462136463427145329568716388021774300495173953277501417094055110141473670837173099615294489861118806503610667441696770728106051322596580538232538449306154621877893788480193107340844009595120712274431828825296711892182638227990314997837206512930585052339432920694190450624347011508302587616035582227181537219214821982392958139561276150221348448686038826730471288218168907556312536212414178230488392376911907840056461443859108263722669428083531048510973400660846779483340644747372582585761421984772050329838982641496066976207452077489689316832086373055203025773116310135288247197537161164175775075730761163135854823015906141772812608473901952565307622463675497803267369185474534259831376693348193077752026512760212452953861210215049487160261282257697724693097067744308305770749086804469816329120552989678973547939751235063092156459443867308293224987857967893459455310690867306655514514060508774958992259072325507472737055826853399692357661221409024209746502845156603461946773666262426977118244474295864732100273667638069211840242836995413795751161336681129666358335519431341032135075560916519028201714753832165371816468413724318426440771979166412161423954864171342863875359398667816106964493852561002931073798527931539061991567781221658139130598539798563252957707852634272054926060459124869520180635454721777517889090584928996536575988089634797491612314083398348566855010172884748605171635854729908345998377779114695781826531079694664924785274863980123529022249562930155008328822636142569877137370820246935944982202014885684750711070696147352978384810656323001419628076385827418533854780402921935015506857925358203695315477207793686217270051413717590412444541228406657381801044744578897385437419521994153344358081318322805436796291310265644646452393601758538866861683218882456527075210645161962932883588529639781607911602161209430097346133991630369533426009038740645451502248292332760595778104100745760064147356314151683528986584171611780929474498783969428953938842276033124905927931467070647040743760011719625828829327580981808835586398283843626447232747599847495982531142867127736034651289616375083886902323906047156033256876820741248354185094593786873266659491380380364175313494105205179857576421081589509419565135286447821198437787902313554998622151545564457217979494386658790013961450837552030226935020949208697525745174607085788552057039984692509206707235981543655093836234064232291589994638442424847432792402414702535790515088755477935513555388015210563677731600345132001686479048465279864233761555939677353176558977498611717445604447715446422599869410167324974598191370254426052380921339435904596568935161100161559670510340738699044779615057978301950286031557226153779627701791494379540389718544143760903673296181974898461338760163880790523818056882426438983465770201510754260523389304081803883549119142160609337647859491088060920060454917330278383862089208143408031687959518856333833466940067328484335142907103841813108772311333681027130290913950948527273733278711107456098398567469062553393365420159153395199276623431617030411253810937778977387414530142992304277837923165586539992237234988093217340246076862171520080376435932645683383250223819938146933134503738585862241132864434414186816329620769607555264113037220673524100348093177476262618662579776565481977085199583714780827203967065881054708094094519520968966826312420910894417060100190655145525286963939204173431927323076271191608067082233335244756590658366036921733578019762995549021018916602416265972477896112017135724766712006807611997087725726441366284945622318655325989645459981244980210367894398123320657599022941248659648924856939675627784282149924097287607892607227558021036910016173716306384219932877945395124862016867801459573726631576363681590297535853390605389222715548524596129753297078715068486194054682897727962395589793283639400519222528141419065206804025627352960410837499805564954899067545311600781512728546383819205795204435396851118504275246580792389439163783121618889182100912871917520797350366910668024078337624020273398280652592010632418712668484073493624344741581897770639690560168440900085225150820047608917367265845579557164546172442092079490330132865043170224745520459667920285606748335962604269960741860918588454031948358590808544514425350441977850574400593780199662001768804643586067752520069668035301167409058490638400391465860713278617660990894903395743397957249079878141165404108585159839224760542807620547334795301205127017053666324049332530868269505964065998761953709827767547148069725489916288845039178124640715792367367939770968663704117984628619100490990883978535193749941107426704643902005584074403189871020399595879811651595188642927619902466745492485515639771066710248289567142880107510590451414199795540181476709064512897757114418749267378700122789130311028523256860007986349419497312389151477706678498545377730172018511629784920694066461511652633699555486543156911270239870838540510358803814591057665483071475245191815701146530215204768225019829055886301153912470527667570315465789315177739994152879442964685745432565003385668444810120945381507059511556119105849179934088956710479207341412955802116246930581105795689568484306931906560041816178928152086934280435101791280236426941371979310891682930044346867395751786353227857357968786363834596012173800251363081696595541638913563796196495305701067312417886819055939333603303021921176152810956174058727899580717764180460671045380535331195265286430918447830745699774903233202188136662817451126334232790364122789834623271339616042096972468973318667167798335194570281233521974858038606855442986478016641346596548704461865757589056749715165688921340345086392172522583684202420614592450836683805046132876347625337498631189579737245089658251670450365713155195389286277911019583764697491989971725611094630436968282969527207299853428555507636815132146399104784409477380643553356808429512023144583008815084873772776206448764398758591568707198638942192086773992213118679466334334565565236802094912605016332823750166732377226455961022930929328067951667475215818393052474504149005110217045709199854540656143741305022554407940269802099272116345347910801049679566612319208819459322586683897479379233717495333238013410672757507725651184539529510682869705291875024405379101994965820920648720437709912134240902274749440445787336996202932902942548086733663545471092053591649388626797616757443061875568127323319688850555884937996232279472194216874098106797962144230418494121227965142901020677347908371827255140566185714503567390888740070201145152776527769405856406117798378902291250493647745283582458588963630166130968622454752651919786037202741528070950994449545753089335015735207317966163760557157098654017418692143134606269144018053757449349388890031459670167795490125690691931358106005995120175738524939252886681260114201387203923752389909921539646928747762423245052445166746787310933570472336376594209408817456985128389652809680489939598901414474976989232814980087307820601533066597832464465381267029595170682849382274237195489885831912007131366542315357917229722604329787125958058036866154148367941991277133491129883679337581550952339017729736406571418022050915581781461608093943062850771853851027183603114437457451566473342509104862824475325155159278826640162314230018329765311961969438850104735547461757152913530042488565311186260625137188471494011199784388332024342166888590288999526852712573934007948308219613686695989084807673560755863703910584773210091777920735483656368587501886601732731602119850373921589078935042714493555911880193047667115333297974931606300834786162243700245327707274994904182650619144456109554352428598444358130485095979887705918777612373449377750695971977646980749909736221237652516982256151967951919848192800823476781482127534055973369623149990964718593763004686526709905601771529139290581124954942501895703298611312487905662665924073883160812204718056484267285693934783478409166028675563619181325696895621050459214376560947405043414446560230591639939566336565894061115644918500125513947696607828564172906613989314685450678876332279814761174408522323170119137328978003412045642830964373169188229766628710122210822675947930919975786913465854574699165144846686226787974825421339950134242871393026716675807127029007187907935184333891587365524874921921558825422051052259515045955093449599534250512130284901722508596338696322335992502002823263675961262725132484258900736717895589780450212429127460512789032586891937434756598640395221858883137844881212748069538310013043761978913877859821077052208427054584013272308694440139718104761011129956071993813856543762927899025663321397341817848811719711176663513887834119683138833424317690521468671390276447158296485672911941091896023631904236279458812527941565214685164749988404813342671219000492574359268858711002868995376781614545463855653093225967147885536048963046115651895950753282569326533741704075079401232421288335409556872383166281059857821871763037138556373991171371630394218648187928514129918738361988425598953993537097931443300274451733862356344855742401267718405586054219615060411543601538009427379415835119766250656632637942377320754368760353022450706700021557018612762675355189270760901705966545191534461034810584047672275834512182359884537540226789229502108802183947156086073865243280653413717744820652094703132388003497575297256667324522548763628178436748730791850881273699636675042537981333649859145818082135075106680826566451976571047268210438688620387296081091093402297800439439190479716073111656705213338536114648020467579584747218264313058125962300649606947770009900583192532625768966176516554766151666540610814132857118852017646713979196242545967428282437609805439878054495237187002934395921758064769522964667868372018688610186359340892505186529969929968463730574638875204250368538401628140096542867452337705188662119478467488650560183280563675829313775379621014908923681463085310291348876447367754945414804070730243426403935003449642630909020112955029411328055461305860075658407715669905282643433762412590869156100055692969189965913779234622935562367366372591424928367782979372920144115446538232236589723996665787357972887668460611459281800769529860189182990565116460218399785845133136970762421740874012301543417177172379398422077810376999077522016472616441534889556960273302340788209031340923279348551447326675307823944516808495900991651207709724571866783404471990903834406160854841659837276343467247824585570367293635490151002345781811089384264382138103709066980256567817299171074118610638672679076299311843200178457114767760623358463744466730631434324131177864660334949284529449802450922950278130731105022646761668481296216716076348465170104153344653051513752401047594325673959084365489278022401869799917402155318879540572065159643005034547678592352937097651576783636264813362784655908454601437446128753868632935075912580394387991498581033974540949721000897444258264747385610321168170496307002562412994324961458530065200794679476240587022854068268049401980845955342217911114743830271214088594887585891867259614067085745488312584946067207558823594397440326939618188182423095526609764660371387336353093771159313702156266166271962680546810880468240618757147920735271193269883966673290128306451542291014711291903547363076125115951582741813214590547180715940444083805818239189709741391900652430448998397397179669465154822478191280388761563451833928620991693136961373598381824527589256465297262537391177295239856272325977786767863071989171602527831065765239891785905829660532553356730433012698631951358017064707745630880051945733187585249179892696353399071220884444406666539931164468567624285397809167252155959748918095296481380952517845469354806360274771744725030183246956638036844251602165155239257009203174819871522179241748046187790906235228521167682437477983501261625288865797414613584230282433326345337021536694366753945070056986766252474099104446488016898690119253893290907754798448084843037678595718395702165092029600748566328809646399794647338207731203558216452252286390473299283727933409482214361802818158371276781811414722432054598823110858611365624719286630430922150357053295152549812356556193461403473744319915377448403980811836492123649589667754668224152252153684351508173462157958303879476482040187377027494006831039820974828453953808716425615683617180237729116325034630473452380342780326416794501938543265800046912510047116525125672803728590348962983318600039727070151231304220565747919161191949735449147697639557733227063773962206452983558852568607913002676973144996011159388701392643571787703276083118979399046326829098467851572916732945964301571594972565799402794507250604997871210222864787336047864297215277647279032507398044073149263740643338698386256991281740702610407561790607743041239949559786565373552469565888014923870334778010977449915418393185745928945959033306969489771087227863120669580684784577399513909813435817358304917789551168503318241037594469531140623801354807390803062237018080656072273715596444125048567846094927752628029799260979823697386530620622914224917269810180907905881518685157071655068041842423492042712499401678165812803306834970329603734913991824147700177673572124329805580740214216090606727861470766119502052899687671065475929825068910077176033353543396553855704546282029119490529704929175560704442059102407004253083658981943037977844487376829643747358466071211545973572525336252041179838620933484545148523696152523594091137813918732703817519886353206506206688994954574215115373061926032826983180167863462394526860483925911647422175010701585436365566310979751313092583954315951975093117699535339035180517800347206123161055871389111167712850417040525685796394083585001348858858565951338678282336623962717796493275448969622585916633409809746251107408141680855649717618870398590112211956481537058297522389319281331091977462743629021454920519306347506515691469907194893436078575210482814183577463642731680842984580181248310599608475944946486496503788217637733143508163973476370287590169114046185060736473520920954936447000942765642804417433304815492986971485614804467811449335644482244461000692345452891676764597056710101321604625641826783659882775276498800976390360290503181563315703569674613537874107524899637143948557932045372201213688096359180283290413125832000197450471372837147470460863711238156449040021092024737761374865624795349328897383847466865258139809490185193013196892207963811880451671504709532390209403304239129376082738928534423813077038511607029523296031590749987384341498563522019748727033377034634055544375033348045737348270131907242082995436079223259172649825930097756797825173417443923416497460332214604374302240513494936629763923208088186214732329862431159881835569354850313252811470785658884334114315374048792643062238514981845898947866131813675992959420943675725023591101127746335817168356884259856356952203609534447518673437112500104691806619876019184425533800456002795475936286515745262967586164429131897583734901251016365312088846240446333185480115841778122108132082722498474989589164717543337434805436920596112865800563216745609156483956495525493032265064757232281326034204916723629779787428172133133103478424724169069731991815743617001986581279977334373079092924920498971292315781578749389802234962420428570589514856836537817292367780027591236726732353854047307105969530995136874931284432272411304044165750040791298026139225366004568971069934861126952677415018366069319487361230225591431900519090044835987756206161352806413065155929503259310835178742651775018826559425555553402291586004629927060710898925077651475851222619362513566635964739460682923836800433405979951847806808498557290157514615437088681525689854061727820455196664025417718851353141192315278998606296702670964261808580637971766399907713677327114138569997832309380070293711164519917756906848566842455885182644111592666611892653104686126536371925366120812115883207460983809867498589732036065943440010715511957040909274847135991272008527460131468731054920308978710081138852352876070723868195150622036485732409050895240388484159533901956266891464660261737723012009053618382314354846225824834466865681681013970352748435860219214310337370323753760535785395056688704289929328519469389495733858249076023160615265994767843137315049005551113406228683059764310416343711536185932543447654098140516091218266716177314955717893831644972234354209535131076152426081096546601240977019940499691499140052192797328018858669474453834061776207670497060071692936263965511210115936501821259081584428107926577743709161474352372409647165727152325518032087758489071868807315369716093385541339350696975220573414090698150664100515261132646117259293602465556305216066959492905946066268933626713540720318833026672693029821797367673115225634061964200751193346059944291066935363331289782270048863834081525919472417276139835762582935452338560027279328737471637781054103241547192669561891119727561532169195474604400586004905724249388729329126214540077326063305037909398655449548413302520852764158575535142801812308948307067810847617815639946740837694169352952180975522951254700577273092208252213281308328598510148448189442056012748721962673020933436205775735513729744582270558345566368215804076842408531593679746882510858286077995055690342736761643902636696508160639841060987381252048119598612922279396533470679921987315458515231726767615384114803428214545682345256570927066225693682923167231538989073526598149832739617550386803234304042380099892149454735745648788368691513131301304078112383505170043820167152349059421086896569938454105650261558044682825541559904277404317311213843872662442670155504575257142727357444667079759644903747799524355002390741052582415927367862766335401210443536233916063957479112261281050907278097149935199862136979873037801043583766985554574472816096571234778627009568349778684864939475478010344883534580088046239466389699723863223679991946436877603049294062153223484788403327159005230282729876586439351707753628341635074417741743777016412077886702312412559280658963744862167309152365264960921151945696550536978772261705589125652597661429727534202330621652176038449998959835846481805139847936596942725841829502328474645755224323425737002302679229363082776949564412103878356775974001527211492951715463575677119397302691772048034670312375470071456207256491383441822798266743904861997829036467600719989874802573389247932927290209704853819282174846440746477499501224513586578127497959563016414408318114306896832618600559758560771026419412277832636916198869121108657641871080989987944767407982584077885611578409427443683609707860815887985335304038420329464920418073438248124738343441791287344431967482230770773666395830256620834119158874611158089929582482467729248606189122616164471484212259513030352806887136462472436712599609912853308487315602809619939895097977882011033294725560653026133312970189994960151081691064214544729403545803956517777672369281101438105795360611783635372009365420902691631149805139162584605765020601954109011924250264853972539865316266272553631727142613028149129942691080530691357045142120182708067601323535751212747250668234410692578741114041826365258509185654799949117862590938977931391514795522456515301566965587263759980426383715858305751737214223555438111068582090221677628065915880364083222715869660644344376053487652863362987988855210092405303597483232439605563959502804622385758731184952438703372691025221614284444413870277409579428252961490392756724757529973002025499800075199141084934815431559752363915816868293309121209689514715361004995056693558070056727553507677291764488905024654944261673291223735838972752392091400073784783701302843113079091257049994101116288496422863901868354091901456998028934986040868628776978673536988965266678894382571204894546255391904139285257331077708359535370656608048436982889872762244464076246889781076796664557346015379981156179675853713065334329291865858828190822161207572338227037374129153685348775675193124330280925992590733176104710646416729274877614569746460224960071074844386422275405542698931430742916387316241050825105194325235315479352080981167175014422926843915596745814812450281079461735370490640964473876483158805874248862603984334646386907617036197065377355988677084165277414640194746578607393714922883298059690283553323368666021562199979716855847490160712143364428480955485260333408323008561904655677349120795631107678958694125240429134270748660160972453882911557966735392091605125609721020335621166231132099051001426519732397567054398259974145006079117315987191473562572728626152997961287478404967948958439046235113715900955210338051802063318724630645504230362505853127265018136187959670903387528777647935891655006609972456363598977853517893077123545888963895277718235574943780003167348666664268009946181561018223952122523514203568349666530487596982131393226786338902192895393302776400882290497796930872332439028051560114122882857835404289055392128749940687145043352617930953595026280489067444522514045624227667270817377305900897880474137195003853481322228279189919575226597467034160839859036563387974833286022914715346810623505266514356952136190421774670694700302636621157922887112269633731788652349709592539133028715365133533649481143130321837654646023173083161449929250659820329070489101136828260577237701103728861226764854321544556987935470662150178524396410870836565616626025140079554665800562545102469029872765460879135618457777664364288846519444611614177347055011850497323313663958001884076207653714228803492103073534475971343263678744863368806446430126647585472547270436132112579060018664528651256345635839515601893146368508234761322654758860390426227377895596229568167791468809447812821750422489878624357800762095626702527961173966809508902269107042677050339821676822074168402729737138271752024907929513063233203295717168384611656207241536646850182274749605529325239018816599137955251269198333092604221807048456787607155580689064321947415686240389246550065226496551179947551331773650061936285605840988359618095510574624857033558086399373784036242854120100010905783295982240865163789622447937026312688275303219371321799357972042896649161034159459065468586056277245581777177410346065262694517945825117778644594416029343074875907931205083499920526597231320605853855180808386495600732564318570141034724839346007160306430344741146173986280490723126790846540958796071198259966308800160179848645267678101265213068753800869860481714570596331206908455841441622435197469004978084258332210616171242638404655678742885646582332448487165144816861515628960339710428501878597796150566627493484515609911305357062765616383681779042965762618249955233142243249921969140750403508222208623383633564518301220483316104805639037503432291242095078775924281493062816388704957755291929594852649683086291619622721748441183498214915687616778844951330805423583130070539910027261530565225994337518579689879379770843406390243460502941067455643896291530033262088451250810303368750274827232218164415497452137975744303367643319466300361531296303974458024476338220669732351531109093208871703264527171185404289946544147514880525741145353491623328574735331687643701269006897095331582749856158422514223965818469701318232232419787559185843041749344188494521436926323073106001403232834163242887586629552110338666825180278966419391729453212822263408350081967424661796817184126816333396130804054380964394693852086923582858958621691129317571575976595880656606667674629192801441760101206174805115192154101705787216933240171227347982530419321505970162356613916780477299730351294829594224955488860552774627502909655946125643662788819850188260479412876143199449721747524535838257588053741966038690786731015734956735701170892754825718850503422042157603601335605158369225231978303635138392985744523254765130330765921300259879441614876547323018334163729791691591636946501441302553877286427824183646120179385170387504581155230586269970598952144222940160132971231477251662940296371012050992288704175214015354445580835579274276803686619417628962368355049434130347615969603597064998354861438445966948805799072650964767468053312056286878807083766677082838228966193074076205747589560051639387703950497663972115962107843596997748026377719887111046056103597983649633984097750660767611398079055857489937364976270283343612050040352287903338853180242727255558748360979430010103210508999666022852266296057043485985149707763889619292943476696029743067270342790524682466369241313104358973694745037331330946607920264634477834109005019470845161080668993334905984839624651865340629232166429445850181769599588085783067219412205958382005032805576048558578271423968880564419186519509889109886524841474713141216662714216961650488601590329450546145142935223940205397001207977687640030980603603720683369031964887267200794379567539064517876777146511095831727801093371807536431386595286874492583617670439306742370891417281757148012713117188974774180795497211452019405356672883579850627949656326893226789634390727894363366959944131780027775822211699784903909030114185555076362704499713852169113953293571726378059738023206357286595514945024085878334307986289635111332040900135533589877121918131445089151863990761920303094766628547729016516996381850471508346959404326947675916202265639010781311993652184183888590014700887180299745211193230101554831647411210372096633520240282272805272922559520251469148602131103195967051089704166979557571259794563447025434239479598178023424824500259613208870033832702915280285472575800130292890953835901613176361515538721338568124642387411670638334266109122316306556557184638550746814532709711351677294745145816698341275733419418972314659078806842147881580048736250865866518648202605095058453914234508479373553665511777587092092093256987201768085614981328402048544133545941246061558670293714584123054032852660237520157592806336924710568750813780397617221133888058974932117384318732009137676460263521634359759586188352784407629013676402482917461636636674975501756580513102320387085175036293715376934003708997313588725384352507396333643958820164441884702066528316518299761374067970069517904696259504279454825744435518640226934701142956106028717924334606805066592136431253261715327449462532366978035914660691648910779464789072087134627988142655532344621868796382589501336279087044989445456573512760331129909082070545106558994433242586861433710538471945942763539928333124913225204743253185751953572492360478795506164815427371022393581949030386979305645249252556967108374179660096498137569391020561562725320879511187154590075433561551267352398136913823843614614863897359765710123784596424051913868471788189553264482394063471550912761932935110365052550004324987467027770969388478925192116784327667167550079609012024268812467631100498221562894745648871059478100096839054959018798047615114998668480494288617096080079079897836713081494677357657681498178840727901350995419246746250732705721598941584165385994671133597543432139295584782186471151287743975955436125212731391587345516429017280869507902020837394526291025695978124111434225216631323600374320586386651282784625521921637811787730578479746819686962186869163693408808581228066087467838628408443704241142416286209357946203391814166584192266054695236941130066157333616107935436725743273335284198025691492213503422467702494622074914456316675952892844350819525573862914626670529237939198606363385951357879542155425865144179444854826732247509264785532249404542607018547915387449728111212694741133600985646689707020167654764056571399197690929684181249214044722493183725759792973271703652085572638517153771116398927354431774844813703901081339895803388597258297201591759493272885757402991126185843837013222616879223671132935425339357634554526356180523052782504157028115169542319180900264709331211130938916148272010643134713553088025431474335598590619745278195230701360565708793919342792885822623348666980596328016262740444715550241504989563970467774785660789430467611473628279893749101582024918204034086760974806255751640151826225199003294217070471301088053178773297470373966560768197448493073923939651911143813726546691730027740544972558199168136293461909449344123723216813121201014956380059642472914139635915503251119327344311152692780002875723548877304400045758323266952085459047789420732755206148130752260725942070673756500077713326580279534434130609764882819055437243764600203258478849476655027440039839342650721416144270409332342711482136479540213024978727388945856666221712705602804133575186857940004363346672288238983943120019188193974883884728347842905361023048342285234264902219017514064213535158946851701012028842764287595286632222362539637764001025182271348397425585658800682487514751055804805975803349267189805358383189046616130140945350609128599892861230902631468471313525806043126103383771835809981244900926729265590727421034008270354164301344170232643436443216453534413107400625469797203676775715262599942681144000007437900534502522138901766185426000478915813614365776367254341669872353397628119532433957513842875149127300403614871661290844853106759682005535291670296075155423570154644029128587356699763717778348131062268112619304239218170101555909490657965421850741259748217535764735139414722850325684654979841346048101988737174667116502024706678499429281471620452210709539577354229925281902010042346835203619326920084168994225250651071200839462758643682035940114164050191064906589487863059487193349783430275380423672310131099215240284217433690724679442717280180171522131794166254732226605622794883153444986982853467510757281876538153217130445665008725773733306231397225147186806977900317461132644034822704192964354455890161487119195430919471935062702910334119675400204422581626556935087408296436257824454249781971087429622536842426980577627287615502679408169384548450878181864421127129697854262406644060826580687724429755932711354592768604264834491108625221108363609153755140515543987794409836883053419502579588876053091536331334052672105893075657698988930719372754065698126417315582292420628575465079497881863599618001189223020219773073634069829650751920280971243094285637104363615615464644547486176870287792685154490253035608301936243896279941580748259966083520865700774498350595385581359465879685808345018689058473143845412307925669509991763525075915015119971228978408522684252045739238064922191438612524357282685181652921851990373867323417229635913059500573625068511804003663029903241168672638528875089404846698754093165884660907931970940862859425754721764617857028417884063580212645751787037004870434996014572713763510939975294216597517931316949632483238151004116705996398123172418296980541376021704541521471504160009093334384655767162735358852948934823072313134473872521711499249873676623596230730444831814753665949666898736281808032778351564467100523168703601715181784002341440767706055813933907346962908858494798593604626598488852060212264329897905063879862977541280617771702293299275277037749496046439588159915363292757391975528147038639015378599044712872375401594365570109236026384478397904702332543464135856519478257494271002167719549776312844994913540911743519731982541257167829947893403472385039071873085808194675250516813803782152588418854063745060417825192408950780575090468552188623819489277931855274281365338462134319421962708011074001567662930415855984875273852032072004624639672338585346047729830194151678211937536381602155788581888296219194573145515525435771034491403848687768459331081408293370574604755678767939678106255772290839505220745798816714086835792142393854673844908898231809844977277386778379218963430483257671639253261074323134288187423317444784292553947869801885943720334224049815107210244369205637160822526789438454468528747862834104726917598071015861205738162428319235538652589583467363963907083613188909478025065537233728688973256060365950348553544020102287238883150266024800344509354217644864322955354497703408117287049576524327862124402471538953194111692876707956760361314101343522897898366894625746168631230507622490489268677650831836058643668599638606133019991821170829607907471476107587626067768714102718174340727224977316464367401109725254914572231034168392768683036585080909930223782260091399117121485471183231230029558471550739921081998845968450671333201479632639304399438583743792934735410243399543876560853961015457467990827357498368760511369628992088465826410399915646728032535738160528309651114702476915466324119591927088537897764841484414568985785071701814805546965206275265904134397158592526679458641379137171132271243940890081584403688966912084976566109617572858399787171365435189814748538663083381465071781317143966791737081270054481754995622361168360307829907511910302222501121494225143835995098030776578713618117411080758697037014644097893509879654453266184047591285136060756554856325138555627766342126857793480787261301227948867259774332645520568737499553110049332321915079216405875220062834744310626496067776969434226971874198831184399976407702567336942853888621417084629345226333110897632860164749401128845180088117729445768846177792074654969356471176815637497798130969478288726425951603357036744614417906180953759100824147992828343687861564187141927286069267434477225677267641434110214171603509782998943733009347274433341196177807906915722776905607255413921854798327601095234129617628859307849412302414940106966110534335979999663288675112553291555063333128449855353458523320995729696992863351599154265883066456679791112972320512930615784269019583984309492336670498166392552530215735513977512431731896601584928980390264768186546668988330132535789904267694148457386467847310177510109012888189200699552554584351087705422004198480378359100483614484356999916853767831567914965978029664044205814701274851986060772052930642956689951817739597403353977505802016979022865627646080626908515945967111100983070999621655243909734661424135957810669636310083815797813338088609827909195675070342568897306831201548024254077400492432695731599151376887098966606463395848760152869218008806991911027133596573803633792198439082374021782555807796557214959121239704469767773511657620047896587496218319155062917015748693760928835008954750700206339180906618162405874468087094638383869015033227283193759196951880191710755603063139865867842602909612874510245880591391792192840508258577691292724385736172245686538288012004798840509774608957787899124153270334404571110597996538456407848398416351845725079627876068851029261914189155733135086944478260399134199578934833422876967222663990536165359512845794871560353935179549837013499617741322654068573341905940847405129948649917067314437738374981761679092885026499211412461320002006789404783632951003856507021678348991810175853715274739563961934170795655609695919804526611591550605343721263386917724885081173904941808733407242653228793797038381560946820685714581309049561859226089127733666821755394383019477669201369584065973205476773409118128179115574436992905444015779154868742937235337931463128784320747060911392464614564147281261413799284621838773867706326712425976272192026164268185603805273340291097524596150614771198647450667051485277193283961794975176828826756675576051032780434420247444129560976496426669763027160515011031263443271736127372191325214792542780260236379963862000949487457330497033261336062242981760756829479133844376297920417086845512790669570298908859874123703829790345915911449679890919729473733964699089192631422899531356700132739631610557933339391083251874492908895198919176135803241769426497932396039641441133851533177170509153193660330348073043451840830348194832909754965542001416769103659123489839510053706425916378588409454176692442537943367505062572663884064533625436867345953938709637795386030641895174978651014494240540144519292476649205088207293984029905404973667976898540383575970637700701631709562277386993212365281452722564579166885350678668955827305012155092028540148833828200331183412531657139105807288276919682669327158408613036501240651518072994007640401795538970246036428256685210033251649043299024604739148473944237172833418295864724820252596048189106898107539559959970984098908227330526597450012102681550674097790973383528430562025630446775720010197460347777642227087235827143860137046316049731311796325685820299821170609055727008510967263852813220960324612466020794279053685330211371306699046446422139773824644639321307957467806478466764185869434643530549687175438227267765616155998774222291316227105329126934111429042985836879058694452432485402595463744298091061020031859229165701645836159719870265415024165946547230094606763763662382127214227299658673141498550768653775780004684082219234809594798104003830445275832497848012685019547714038879779281957324322941280841799112405633766648644385795856278997294209603977374500583210332395377100482737682542797843797437735220452486770778307352125080625572425281452537865463864991298868509633141707108768479071508740155804548854053118501021859796120480456481168014933227103141156281775481381419803141958591717355179252833216782282957153834518784987984091183700584436716863602582520456132983272770619853967703220733058108503502664612418878489851633717309036290235145370250910347488518826105770573424853429976369984294489264170558129495751239586816925130346792858897855772525705583838558168981424354976217950924481878736301212244651856419172636005688978468411855259865533094625783994580463291558057463657817296791534370721584164327776875945558738460595808095434792659350053453662088301367697713540151293665274005198408756850951579792000903705075355680776027783300316982113830377359173877818877058506327429778221519021448758194451461865718924949063528738029497566883117954010135554182607483937212835300670883808307329656162218368279523940816305675690282913605932364583866449757464731345753866803895728311733619808423304254924990829449920794103193619547525239570499432070055134000678193681740051326728903759497513343289049609851144091029393055210409536431363751127925605414448127319484348545310323635999978407049318847292548721284344812298677717001693017745683882214511798124960357722196534791928429903215160040218544734021104592315016838489380795766680161236667822037159538732177955518562773368721602549997414126236261464982242983514835666860688983415656432944356566304866739336764394149122858559822478495912620519517377870966366687606451242784748871489921484806867440374446033583526045227684163490368395877031825452468839671647066872586295839720623208595252198157040822646805071905911773358261258010171949363504237582307538258206502485794355235516380564535197413875717422375077882857219306775859234619155457179348149446304299960149465748437161232913552186984124119454645595649245803937093152644376269057068094297641219562641103526140472431561900948158932533998654114307109187616904880218537646240652718880218799069221349013635992660605629165893000004070939169109320638686318023528981662960880604789543668361404783436589446264519267919878365622953128969375464773186211514182148292607378441836916604615598584247690524777952379977816292609931885458242986974344655339659115451542104483646616032471277609492897468183885363896443789329462991990642764306082577218793706025864674486891404847260696734678897871078897051379061738900017215510515402291744063622248587520466118363576667444109811425460730395498502283179931431954166752175548387592734726830455321689826332298929727454241928881380016428640681250688653266961722817758427704775345758682142256277262549921223954191427745508022538670990296369081575037084552609632679401692240106174543725479526805298595787015971520547856139167368300919865654947716149426115401880105686395997899613915830951006108287534802277260345277608167794773913988246730039705781823031561154701206688004276669725336753074955897675385205215886663018807738410012317290678235591508419809534742051233779321043799081358599947937060058111429187808285050699767644003102277176266686811015255900079819631831554769335679346565290430712966901129359424268878140939741731707666036133450613473266130380344939396287952206205823370973730272952393548945079216338563649997532512469928035908253398858885406752298239232193406854461312475153757122231902469001555048237628650522748391798611954581414697045379029986788816822793002505462599266262964665629619695937399830702806558352449638577786638026891899632524591582231968488315764436736587466084615656243683017930749843687465004278419203596751159321489027686533148909802934815755642485207156850941032979212421313658261442098387407338252168323827386627499034421719165623852245001805775487697050955756381157729288301894353035776229327966740606449006644394508615795842420543917452029123375869204834310842120046665503596629233593331817113989412014024288033466072138392418044553727954334337599020313088793726375664223123923193626485383116281925587559223526917838955199420283215709307442775817645085384687487103258947325286032879588897408541805159622446155427097807381770820154237358697936375141364694635275511091446061427534742217948011389012232490171353450540040788462336766567751568585529181891709031559786259626779959818434146098701257606576604896190148661635902908745784330094084805415854820318856457550408779243456029520531336329306041885242060655924653819853435298954227641710920199973181071258560948968252939562640046821509880173781042619663423713558093942592016056284252425791150756262259488209973451611251237994747888497368658288383977883178665220882198144236125506614159974159643656950084231331498291651719397316212894871755322691632234554746070850613459317336715974984000767842197491612460882101212083015636029550816122442059011909227703057421489421597403393306989682506645761871477344966945199359666865925752566209242906219702879324201294334018747516560549179789946102440450698297835689027557555613378146382295916168165064318843241499625218929112503388199624916579879209907127478026665964876221507711813917281517696210840626518044006196107748068407949432596579800080162334749964686935979240742551050841345626954113224813609346191472797495647380358316037514096262722474889170834619873293323474236229270672714884825751405542899224874680359389891118802060966124169014810680604134260787409154486505991641007166826477739000690559676369599429387672199527127851608784766876586756149224616556404385777424333091482066497664882095198983474339100477015968228702658440696606381327476080386247946581761570976755295261364705520062663848989301158063288666931420877327968406639527094023387363673385490956566776801877336411833424400037362751207674538955202906761728853771260426961905134918639573102755546604146896852346607471038007416539349714104201474607406080224078468840708238396207899540220514350392228136291773935276009374474360213823728876972508978475324282155668043929797379875244889334029654330827272598646036135857913846097866477425408220695923304122515226251585030294811800140054344797311207098773084814872204457239436931263289839322528368113160165012775093824277448583953396602957753372077675731231692861151343526672649563878625031938375212972634633295056076153983679653536123551487997403480337442250625479345554546613461296016311379710884300063797202310171448902320274729698264025749232310790802537005427256465714613693903033611976206917171092809965815808019659048443355811682485636383213325964891177330074492641162902497642527484432422013144337131568856955370167472564659832957938072602477653565849905697187443650273502524193681192118226172411207832714827080191809002438960211993660753819446192593264887272382683151863625559965058217215319470594506451001711076974869422631020559375072941575930052903326904796446405941142234114564354783699473830933037839598179744862238058104800950208727897345047025838945240397462038788553455968324293572055952755297274028622698038298656749073579021483244893635446066473852001213879944357880035046671208846556088267305597554940061089616328260841873946907972780983829819730762844531095266433214351736898940672119039381612856188780346790966960206145916633854622038656371082759671562781403696566308987942964248184888630599341293766510638205013469045024355383158188126268590268105913438390781416475653691679719994310300295038795542525887803971471501737810231769309643131248752080145100540215157424031059445045700664310402455755290484844539247547965544298188512872577467576734834371583097733316797731369431669507493622499940370409605375030737022405348511551609779840310224701165368527131806113650042668615037170074535613354731257468485463813390509008927703870241857002890909595356640400116418176974296532369795489349905963510201091817980283356648662122957765315590690775258562632203386847672269583877272783185514082553580380671939751584750638831078436677238783384671314482916095221430664584358181791463993662682564880170988451354177569095550995093425382611881180132018397324981193481226324117106700439817533594443316390578487899889903537243674845409894131125632570014242874257015765353333225317232784188625152399840738942580727308625385985881861028336216822853097205223566022141056168400876084905266300571261146673166577197540601406813621217049992291071703241664155082208312922518520991922588488905160916412352794173447901841528078868995681266041678405520148342273847460377255216866369393875343331044127800265492548253619669088715754307690880795272810504470059967207479336208011291956674512179684792067844939536960499286626018472222610086147320161665224201281100190792374518534350460411176680398477922111231441060771504450885838484923372568400328506313686454558236002577256121398622647526875692508398022834830991994637645586561912950266539452550715464862930092467032908336297589933446385154576758192588529624590706541476265404799487256689234136520139745439818152420950148375888043725250390326005496345464952126548787180631757443095758239631714497387654714151191070572747742168434587832179218975111816787410201341194459492410376374536094494364649163825733139243655504970309666277244258366272262759234843869646599857085417210723406818268374500193832830471158998862412680269925824643281108126133632762010744464688946007812805430778120792248306869261947490425096458762258779758777715093213561242209890422771635272001021234430816450912159178868586145388454758995835258894152933795854927692009360930313628078346637724180507297641828773735003620206044578491408143504205824291595529750527006142986159941408130940278704164204315340913046278422439962868175131148176020154877399854527262987858039589023343675565210354104941310748033000614961009282784246677893755758372464720961906619707313776882119779086593448646633435511548286602468950484806106591378528637059691693703914123594331491719807418905158186301833550046271208293899358174883982528779189957021707666970057006907482817048296195177708805407399927137109513579452027464961478237111336070056247550618004593514469026094946517141021630086047492990357456881966376341774659787598616611831420200407385559657357431464474285759260031591129536709750563686705073317249787756309964392635815162067626940660704019192746602949336459955996819487830284093980510052715151335234559542378659020515196584635525403864995973102745826915246175151107162019265348777081659415433181097078018739640461315987956749088122376651235065779655980418005083815108602946042568308111467070962352914735773913038982489915551069850548017093462138234154559975936984396882838472030959474132017925705988058522076902886198648914145531797548199909866208750220078683228196472510004197380900682901666475724111037837228240192083758476410048651026871601431348369748512262235317915177754494163840022465504710781973475749000532033768678424172262640817461905265582810672369829599027722687268718458723732679206394185557000544829224568063070812783959520877193315680597346693382062788754903300603220799128412218749094245234727267637240439780726111890632556445758556140977382335624613991740493854452651208954425685858907106081473802216823490419552617438244523026813821347419115536090790086401455340144804041016277092379264730930671987959846547535734757389234438441508192355855414834219118477885463168100104350527485423782236735609366875262840073090533238952934838447958056513373319410766707312435734410586995884308162499031171537289061810461071541259170606925929208953016256574408399285439791587421430278627911088169784362580680117583869319803978657085015593159053856974765128871614742282166406039711456852289367587963542924952838760790373393849673872725413187546487303699163334386695590053039485236702400736227645651657759439031990773008665100717197160701997958911432943039279967162674893418859776806385935693796534308761976348777757668025683013039075584246236392344375424444830845424491546241347733191008147307707021366911150603926820520445392209393243890591815673248214321179323041933535434738571873200995155947048460667070718786542190607112233496152781574589098120687328808854348097156443391340584203480149233116181443956574992109224621770190978400061623267077479127828946892907437583820902971836894969487632660345032872647265966358666432736340950959610840968239317553730901304398258864059819639731306951674375779215980212863248005705772183449238661966186585583736167430323925000212845818402206430670875589739933707888600301262092496171099186935079827138119177697143455396099691300946242785842228933175412050467623304005809157176102800644765447257028686474527648869404756474011578231681049582153843850937897440161465758168763607687988401712683683377819942830138458968697470401142870728128876032424511987890036953373236831107722636291152975927651322567664440083178786016456105000277937015168002502095503617616009067729025338474084878187221759476061003722324111768134316566874060957377366023630098448464177362373810171434899538455950052227712236255984045181063001248647554321926578126981654842285465784276171366038698671467109136272429149349241543621550607903685264822910945948764593203999069080868899546575592486275111580796969125023419750877052696452295796544623561786814270286541175791541692137016237754925153887812307952571151853373675812784829544320197054171975413276924228656553102004567535434199684260812429165121658469070116137594261723460774443958003070928636811572592545445146131233171649076905974519420337786247552343359277031960670932055106233357786338885428463986375412185027989899680364040028083905491017409515972399861560149093951399616215368751311248648647932629017982027386851249192399737201882351453249056061479680827770877591999677427176851659062766364394156204940322294167252918495359154136231182274715180881802782043231360793642717097687141417950874074802809397422779979616171367728696739450937504804032164540193166156800119823537335865584274839580557236274566011181240474212877861687551819567104277883677716599302376504612698488571976474884888079601291645428534179783275452975456129314210493394363472692729470906500052659584537933912837099123496547406543598470941066665226080860423117174881046325263513605833604699849030145534465083189807134301766015888888953970956348642864466073143949604797976244411488926846433976133965620731091879532025782894137944415728651260115944622236102678798581718187811568655393369681470282361400168687057646458598902264271483696327552316191175140051300276852167569059414564377074749345348572007350789378315736244776550128804053572421399186234748018293833715193976861336637099490858814313428075798931091529707031780170820434271221427591213386940827910283677217729788057432910117224565740102708163292345450449876394143799350715214619817746587411816429751785325639921952806644972434808448827784245159193426653227258772493390961119830132091754782237392142473819124034662511764735507854343904916442893666040329574626124588179598250469412640341171894006319442587873626928871074491567619007888542960492220285562434470817129762002858285959971791980969467077304412305927206521059992301155479256689541759987256880621298462318601687007879642750890488430869943708686706466746893651428959038633202630708058396669587452974869417810158084631720688075910951717619973038907253824749065572391124049255961269759032760704319328791647150154692398189439867899327965995308823613801495841427671585686968183307432490702527818199973786858917308270992269754301271562101927745235198287939779277388129945471477480997220926717469691435011792701602043139296979273801175916581649608924608422459078750796941307382092394015270103477983990073476255998402851858932243173438316349671929137680016527824490645757265777060656522527202955335248561376128570595245964584701121827458673876882172078661718269391283624481739807972733000919592115053183659124350361508971676091181756960078455800870743876629337224546700353823352569120216453945122015243059981205413221507592549587614063199648145460063447229995824817131494415997456835046000114358073631151232916657801085697405323195355300343666650373607573149111134313974797702314199604443030531974812133947003038871007278758127494095263305452082526135289345280961254859713731718401096993828319744782356679268986131509077502019476845277623044291063930948438264387702938714757572858654730450955541447866679763660136640177651022507192007816492155564259535701814997762620402929865248358900884946848785848590442267204201270036903950882136897074313866326318174447257287588016392421500629833262498001670675394138690029941069680700206736569464144196181920729273537146280217361232883114177697474845351372854076308795590631049119625349868335228193161322323883619945304555999205223540705049439660457857706247656548706828993531168263682051787521876860300889686670060529621300620144320917629794030183667600554628255793259690053451979458437895251526248537672313556600899644178040106920875437509938751910067072209532476259849897477956383067608924758885703319024479485792856047748537710803209988194090816534710881674627657504402452470687476403775603890936098333844274914840649466871656987574965478737979861463239531916536962334009244593776692958226824877565881605451209983668648494187235044978517258755053399461537563154533969189307655415660520859589587015666056266915822840918248008178127767389331840986609593916166607062825964720037219832168107309611765754428160461452199324517276612483314866837483037178931572413020377681250030606800600933641838555628384209702738542280951173172354719544178177310682015593713212898078704836440100598019623135081852260629323725527210910396034666531837787099915082875837197715478018137381573754360894890078520085868362627053910484127645791983117928110421666243553204087813411577018281993109277784404448214207489462316838924306622474379266953236395737396734493323617830500534608077737013493333259342807323167704144493927933104082213214019148573777413999231265688731224143523433969093048458757803503006575069124776429738269706694845253645184561484720907515133228070062442998595784259084090059211398223478922390393628813816940366957590885345123856147501146361124862424532607612026753297178203736949345144682273421540717697539899728636857754520428722085400497245589300897761185907597284087513402719275126899170081300647139733646470759960390020588834042956019144838909728615143704400483577095293429418129468559262443022034438576883053405776618996980540809732378038522381215031272950668764766991846674475654369030748383820161212701290003603145985985441452585670255032287912025930705814199090501238574730880166256014864940222328786250238519674378214808863548643973461573963666502645368925448405182273429791142562678975171521920103089154739375807364182035358245180873614349538095746321856843624349951954828385115645561923540811587135022928271280364769193530186020424863377916988148017731118488260265447444878327475994654041822905311715610024909831803986605102927994968332043494117402792965045663676270091128236589282090052478191018929689097209779818178011886397062167235009719994593384473726644263556210825907059166105365840358693612605671776319933771688899352920162500088755469736975112909523987194294438688345568627306581245055332908668860000084588163476350018167500988159253238578002706878332527972362091060804341482239307156044263096218720349233329178628722143560283661651220946043751519894887313062138473449672506842043781738728509442113767489323562427174463427733400120004346768336195597111134550685199589991942181114909734191578788923363241221349770033798823366836359696903547226684237754403830920867695117482372208277600307510909922231803139771263302791151261990696798684548456547121051149895134172919710200787360749253180853241704560318615908185422059934537115970480024587001044756403636138953200794754072396580469757936271701002911724276781596193172519487542191975025354868002759176548960308942771644900065453603140155838538119670496009498841612795734486169412600594963123888256163201939938696818423217301807586608342982993124748858921006261590784855446851013777801393207126029829196063382256266156112227604976557907556602159789212141826730051561042466635621058983226632396340510615396246206038845672261009595719487512019082373109815494302442028325618186822928655226003059718452866140222734974281813192313006544494527379558584344281928188405119582292086585908769714021057980733797640948301791162498791108840026091872593802561356800877423602388416839215973944488072641709781047394039587382304115260121466459435901411438099712248238738856054910967437385550553904179563660646696444071108217826094631089350068879097845669377332985837240018967452842302466633358327176226680200699619477035023868067715701256531665140763306059650365699809467327870515515414369738625096856005576392433426725192854568913968423849416199968422415665017194093530403196023437852586344230858677581630066663293595438502454544994817900546983382788909190520175129813582282818757164581836369121429980409221218988794943796387135663349680688223853324620286980687288234976841352649566020138058746161698680817996289661248154274381999618306538789118629696614614073976936342138487310229351539251459945098646181617108086151095378606120650869943724831240417565751670059866010150143508727771115502125934089463197523847080921883838916508244611628908313292049300357579671875522382382870945635660479646102130873376476036045005075497530819896807543485242356068996793453164740488390624567583839293938636291840959119584429480650390923671570696846370773216875433794053202940197830910353445768489652581738602875740523469816361775532432216841737246162917394344589561102672162124333142895032437461794965333677163455555295469787054909012960347714252948822609682441925816062332591878744189356021923168320215648768100552974814761364871795385418096975992845856579194415613946994551176084677851625185652481160654354953830058119015651510782839317974705564803768882022095400160802839736651739161351738108699935631007244666632535392544036453617165571182467784827559116157986132971369667724206640247199389728483430172158080598388777422493576368553823352345910664695103301661889734119140958280287167821678758888899535725988181473571504053991876313704322146895305904052618696533429377917283922426495530749907350889163694627226765783582926702320824122475436499777808821907755647105993002507269161776163832611258430877754655796028218091008195492953389868335574074832284212460711377764892925180012412328745435497976726118546202731219713727873599749752873060389566324083379931777022977969959876591985345351423557293340931088184162082134597045716169104599810437683190004727269909025166122561193785086134019969441134135576709289143037556722507710478114074280201490730974341413666969449477156760850134648808810116124593772416804574337925339927588570959094633708600204852464032032113848912856668911895442635952279063842475098510049954960430989307679255002642369258806742229268307819105661948129677983345981564805685222730233165686584169620341877428466601800608283587655584956076636847810676063624677037554686318513260971438256483710738707649267585679317437480651840126001777063235581546826984816664988676081014628103517589895121799674389364595941539967177084535488579567061377210675087204724217348554077381524159022203984028950238097873674294219241319223546699585552541802018623835889588093800862919873349394038756431395776387928924642178395007247410594910619150264399749376616505400256972202306439103202468916161943299184275424760895177800820748565991858613718920845189285575975760250305103991112999850423142460973200255859613976847484431568537181015489834170210131014251130901885866884191055875970608387735359595492744826059374262399063662625744075115666531985802386300622377068182445834986070509859962321709486272288877814297642167331344662227626660900726574720274042691021557837264227504899897137066808830304144091023687382785463961793163253393103968350403781416443311952851036016206439338897007338663359016437866631842617429301385530545515483573365018340087544627064771826567466379563338769607055947897331810242352219211053812386350659391229290906659309046550354465404520931713020668578595318414007342886371923286188090399547435457018599914165535918948542043901190944981877493793968925352487295930603699677633292165436936020473999768894189261871914274353877870536743176564214461072966494543669478695655279133162397541288175833721493677985583303580522628623684616342853421388965989106309746222167549935639397921940786565958159358179521102168019847736297484814290675679585901682128844897943077996282138700826206582797236862477316942853438128071575161178895126570265491388703933756516161994161684861472717286162617254042193094746570409908005423917721941156797360708497225475712510536309831011135383572994388811985624063485430573143662469692923180158479266635620795457325729221411173351543752167759324625877141661811535979441304341121881066439725008395088072604229202190419812907480358165133818801316184411227453962298537114086125005166559323318130507423799890094288551163544200791603869788629457812506275233735528381755592359691687324655910270619401923599258955631509298432231024064645414272026800674820981700538966060591215598495070410051042855241847960030895017760824022197455989979755736356619516834338960481074351168624223435936640533436983963848170544468191914970058962694229854758886801532122854904416022277412007778546159447678717968553223969403655195603727463150623714313224057640756815077254876949625375730984728818848322611330858061788739330078985070476286179390892014969336877710858858908300786830126267258321308472114417973574900299936955993174253254563604458031554251047917795343382412821485014618214284550917515963802260691343950482914237612350930852679581271459270529494971896888314518304085302712991141520961364899128760265717251111479305454585849153874342310739225993688059644960820658143448992367860392155480044453817514503381526837851310678763646458190001846335661751836664124142459309821781686740631046274294547552981250490108181732167699696504267297555119375535961706222813299616576977592331169899678967396196482315643478452833490887453837421430400072595954693982582067109705665480537648871234190372305419276852916814212413811669164668934742224817100702761763638695136987486628083894938105892133093925171309985594324301558623455191376603558778984584993427477394112139606006983548003377407362362750302869855672107432427086654123412377275710586987348354108369644940366795989310080710424650310441751861276121406243895557258566681360429546152891005362395264652045081250308305852912375285279269522765215674842750297979398345897733403845787342273544452805241707371704510227029277872654542850082089802506373912303683127026663410325078035918438235854849301305265422379045682261066218689835010719569977676319237399418305356997977582833078244933919945810899595606131798246861101671794754249279998165628034418904822723699545101312535028143660803819659924992672514792578669361660555445182866146896789163231962098409554794862195009908144606870361246897733027631230165406598411805208419684361816053054017099236233028622358527354364611922066047141449694478873067559892940656923217181305873728459886823024563761433761928684356265991757347005113068515715176089754352562405087831023409366266344770853044507443566980664313552399636952614856864582005300052010906614429818038961558101324216598765422634020501622402161706740133676576987740696765247847149141795794864864524862815924858601041057196664711255388146759354211753536582123319257628730725549023956756844864222631652415813413628381494658825441068912964283555548841532599138645813742161633574307599489139148299065668203899784357431853496263411780246913370610202594950230584731444733251102682227194328768976550990106578371423439364519368601026608619612390983571316112335011252849006731700574037792761924518492630915336889983499628052384117211471241880295965285446765721855639789540268576807582825505645228689746284416226181875634797962385817648897020019957355521494546405392054799333676726466193821017169582858993961920984663396985543997587234327438777605765640741516053106753510750262987034684647987945267008085424416581664424440485556875250250134149044189971195014261384830628599158218056855935083392437103650117024728961822158625658241933451914473212945956428162930350560699093769858787498587093050717518406396947302599720156776035599808123462914789153726049884581485577211226818927571905310258799702074787710541750139193154170635513820958201472648173500606858716457968885327014110932514557463233723029311328984173124156145258248476531204759073478269237545373170896433672838816077588013494552038810982103190477690389719723668380695104772147151172802536913737854458870168115460633870821063897631719393606808881689662968439896263779194125295579641177969549404573743299045406130533893241986528703433420009152195498211438543270313664744201600329713504765276647700875219515203496426744179470864459498304977184123722560055397571456584927781573323674758433463725289864510233373094906821721579276126968341452968040735414182857212796680936923234251875354434831064963742752197224514100963684572620237687445986267494935034777533561280735446752572211949223731455612369387136679924661244775451207140933230608043628900837292013135563811987158674340713636481310669737207112920476182305005137686839265300558547840189831812757524755391974397255232201499380383266987018564624344047577930639771794438398312300022307594624857540325932577325859908743645925152995311016057320856374113206578513148855320795810322032036797945501749371248416157285085254353492970452216198251034385333117915887450482864656763609023891274459463617358959273411770497633652297286297683230383522427797055250002481800903960542316668255794787753207279302780458902286761003025410975356337365013815616921732400192891345358355257864240140360404709864337610755144446120207926812648841971958432918622545842739434667773484111931157225287108544947666379711347944029633094388443061886037738046275979877313182172155109721271169543147238097187232052280439436054322868483525959147854850449962860504831230367028445456042363375810766096259270093959579430215268313257678858227051822213756317463624792705223971364931539014769963171685971269231735855429270406470237163089468070049954322239721890920579372207452602148607287886123847023708908113686256249314777736598127339467909227036476130201793449619642487741380070287302683111651138594310775144673036665808273760215494491703884964430041787749631953615807661843255031167912127107423523843282069565847893121131853666925888291430920858545710927776228945068124490341630612683566346994237251257475612990659403384644443127580383683038783010834971023730067105828957447692237411180231464048998678218937215538323128526296756785571190074466489521335036162135087931408801416146776436361776651958599672386966441368453582441150666125361010881868592337707489615976201864826293688600516315797398563648766782154167415453779409302998079001200143321042773195680629445167979002759445553819237110818918130605570874191613603788709562087121752076667301029499811243386074847790258603786017235249801801378507199775035950754232743955810558346015277153612780964611612040189061410721032529014953864725333975672349058947860431915285031190460458186989015167696284457831025568538463382705095805099370064460439183467251428938867417473623330992515262569662261654235275016888172883811743289724639394286038133173931611475630404486390891558656627307824191788336931485938991733608955943011063251034135589943003009746362658150844196373865307561487528365838489861003352753757697310246948260094100038134635732663530096166812646801110341472423069615064891906739187329809321094514447280234114403253675034582517985277178438085546718814504614311938739725202119811418269091839173724213301554641195403531725722574391969812587777993877502674883287472846042529288216224152054601660136579860079673369465563168814012044052928772227111331612308919413417264384741711120579394472569290150985969355005105817847076180336582095329593561018199761398394448200598542923254335844409217854500856373793569501671833539522335599460555214761328564566764016698978160940017845728051725975860296544786436302640318222176652749970952858470801586199596872339878458244138463756191093059207406477588546715541024445503574219327093391778046288520931741352781064268039538060831459272177347285297194454537928031859786789557800856588962511595832643317810141149733198522177759185523362962686371954052825291064472309484632933054694298718339642137001173663933319527514309750597734354816202867460675184108665612594571226595631389891441910256055665553985752091205901754391957248128187282170568074719609162165261316991413577339301270948677632300628698777786899201758273265945425820279086002485098667325763675656695892280502458875412461758202875287807879378499094626223739193245736606377211569281183131566281591503941360170119775972184442270661172901979994989226177331128634391677257683338400032515765286611611484618168148975657618546270390300616536967586026010227447410354339163151328663256490027197652332926464476151452677877890158723830779114265331314358632176923065195785129925881511670140596461076542548038327364839303770226546074611792370715009401859134047497920359397753135198000928376520160970896946275184808188715714450334889603234612664212782822967078356419589893269800548361663554018781228769621052427365594241773678139090291441600307580405912005682032400771114814862886249703499958999419872193930000396112504179203815603692145046241980329164639688461361014027762101954105251625920337057297351760822597422394966275216058718279016084760176080957246620118093214773145381992951747487819853837655188804257729685513141476799549027732533756327875231592379702062116583031970457904482156874747565984626869918949594588617242327716567776580377349331674741308583762331373301152571494966560098575175171603949991998905252868190629463413940656813706035639731517211820787512889910446908712270909246351662768661401484784696867945632417554651564359191018733496788158181061846247302021264126940831116662304746084446915956503012056779012105802025644872797476340253182281838383901605978346905580484704928825848437867259632112781092480859087029360602189256409179262588097892072099038661738884732972900352178796678950825384192029888845338158008827780704859579358984839208858745714580619621659079129605068282564318666608330066228474315941027915950273621836131263886739119373825099612853639878849629715629212779806212938931499306981296921290049646902641706592918010098518888158889959309460471417982672113581397566102966144771101622209336716203080801259097638432137849331865318153588399785893166038734365128918889698469700328340152638277038223949223661925967850679964785808622564751947680839270090973786905545752661470920740230759113041991410440116884799648132760026719179677761491631696372627771157761381550881685454399237634362923609183114189519007766622835290704861772799663228691235979884838003787876306864610843996554766488154025766078956122962342197054129991414235023363065717309741388088684696030398068667141709847632505037635784178391951850219030291922758225107532577919792319231629104201750112325115737341395608803255459792914370714879258952171901023227583196642877116049516824462854784762005707403261203416908285418514392294259811454358341607779474168462058878382254152517233100151477727897289786560069148913282891259254173106834069458688121299152731706445091631183313439409308030169768631284917513125368310168829934950124794158792124144798633343471743149015889363209320132192543077869621329859616180654563973031326673075919207546240548170651390850375842846923722624289565780392792454484853116591988877371516075631256257199996688092833093972777321604362545964184640989780855525901101611744709507009790475337188882882952697747282009217288998035993105925372820740406276529020811751846557538457383820468973817222474797194728947652088257182754761807917574531653936835703077998010213203225918309130533231839811018062467679815492742785952062087086205087307856647310347924494201554546838117392309788498541334470296470594565587757978039470383286712752798436190533905533627006494800498886312195202484720224525644692781941346895714891541368498833077869803758497837086781442199302396111309315409112230276002763083888341122823470913004055650762082568853202673332224691948422644839954663158858490092408832144242588840252511876853592729516334355236962737848092448881679331862937190918291451390046627195266869351349608090964797332462541350213888121219403645935687006400321405490752981879814669634110349381107523655253245783522696299366014371082561156507847530345191451740383401891282668841782986514235331113634531576181366727569106049546939717811502258405673791555243908817908665596324533000126571007565164341023704459846337555052979129150374923458403253513335120074545518823711749401379378202982680655673064374426919775103745270802504541089527956264251188597917339819447360419918066753011677420459989416988502494208785912144238713300045212403646261645241625581207030639293208450048819664340924413851096847663161974432392050547964311126310135449789731891104555969797203628754363696801263684910776352462344495758497691990181147281727903100482870773995356728862037431568966412260641124395377417815715654481081807179167208046607640635795712575509037482481197884583820598621953575109559518304906113905178893205437481904332178366959472311329545425742461012989715068410866793936168743550834870922063142983354761701361167568177208847532253237024116310845354598994097573161412965129306138306609251205583270144895387290651782536108823320069668721266207320084103884867617838891250692527888987410475769620434356272006913304826421081721505623456643981204841121916268327238181447346611410456834365813076810522671959097362868255772032206770817972659673680303246144022219466210197971564388581911334891532243435063049270919897041231367206762946302617797996347693662495981716976435717536995269410383567933431076849387828047053608505379730918902621174906522073947018877392638993346901302378136499359713634161920924720126042651088630262102008657600460681195977268555657555433334566981693317276219320695462679023639365184544624509257982029714336152780312317629075856727571264032416220833354245600906148673823411229665421051671815682884337603713212001567794944679915859657706830735437688801622318446749719414574147511189661528720168724619311472063031468209996420604044834247906704426188018038969160461789371583157541690553165581936646443514497951378838361292800653797909704756507643651721755360550020347274399336096008602035491273226034007549468390488946523213179224745355023016281894978866088176367601441873416067256975543788590981759181514833821339711434546907677592661321228194504867998095267049552252025968601130014044573727905975613182689414744974528226951047535807672368142690693572929303543371321795280960932077738054298509899647319145674800375739284929584605829294098123146112522099190741951631447130128628608687363677247123358076919768373147523037930433901952550710518995143820452816259644620550019468714086218195046080465239573468626415492686595192972647753745482308483640662813371224100902134338904709392624182391365842872994978118863372593763346589119787564118136953617846788722484341005188640818741567875205763254669076231760351526684843080465125069429989006535044810422558526722114791454535989877479491136845263125513020961191998085031102203351425730923139191207997995243369220055568121807878745578481455729736998489730527110883507272925688210264475399391657784447990534726629765201984021293968362264604449141368368802062150771623116988511489932599769633893095731415479105717704351140138849776001418820025127606127780808361814155372219585885628086961216089653208344971238455089430240246047813068029024363120931216927349486882543799620711771708359216304305543453691494964428681872762321764432703933016285179291146571659793700337943034514059986636460610552342829675139456642845626551157995376130908222244598265626686048313050659411798554051137892131528979097161695205403184239984263538348316228519771579384219317429173784148810117221818554429450533516702361983728381617728994050256000811950394849494029736131240261771046081267466850315402010433125267674893717950586124656570581457530163622815350966997478067143650162015637343913959610643177054352487439922371507294721614460503198131400492817717420908786097177014849189637090080446293394637093948438004754789638535491468904862100695904005211961100401050128856777575635189633125704523305119106083098381356705941087937485612979669657163067592649667910299809157770153158464875251320219126003294550823357718669317439246979387841962448354100184794921942394992751129033856661112173009867291880008238359881594254658976204678316070938141118998625446959170046100663348173926526396805892444572420049503476444593580673588245104021011860823839411658301034608422829401607003672686658317410848103386900148520926984053861983412618187766190796324999338993137079504508646555304843110503274670640388980232402440662037011135252912086147935699544475325963697129922246842963108324600226122282206612103763308641501052305302083438824143800947511258787261595791257581179397235690209075159970081108730293031401154156489251178306354514924275660864140133286242314314094977250888999057655545054564595456651212368151644160813465081229187354972504606573776460899458595838510319567538500133171605286690656651109828885408793745471375321306402281348281344491434995859334627424382118723660649479511337396549973452087830211018312279530036434842788063859028176891831612423724794027812584991486449028752635839791771096068142923514357421826033148653647163933634241377161615733223133714724855048063446087209231447751185772634205755222377007438094449324970509306417553140593597073466618624728070874136021613758829249200051126992486372160144374499158870408151135176618437803750439373305023861273250178243312207952674086367407368884438606500532309954594891950586878435194674004530314158968944139330724738118226978571529216144177920800055626392543945039042085305455206779435897575144473258919548206319663952248758854297108011318755423482841640441242231341089267450788053745306642138736101441760244745408542542527525199793789177945662110156309288371752511082598814163603853238006350683419749269616160679490411347038845494167526612046807795170124427159745699524946259754985242818259395957412724469053413862441602021281668729694298962626650503284404464397034127638611479019171881385784354470183552843461708836273092848576502513600268299612020634751828204283906885592843430504829006768131220323585077962097602048996731281457528891027913654387620596216225030843372648164889509769719358620250276555127456862809356332897308703372231935393217451027824974749426746643800257248464807023689504223942091499504823607393825870325064137596223811535846270834791350343311365487177108370609892241289024087374960985992053523625348185417900101472543944794984210657651115793681619156200293419445859083428019554504188215914149894052614731582832915042270651262249537810748069658982713891474408008339977651885638979312012363929232130521861342830032981341446207954482703621245981372194512474417059156881869000871020620561638240667914071991719814465752868362069543775886188204135687616027145253923732792360974014271347701117183112504562368774815775807524964349430030386636892887732121577777036370722565838672316648506331649937770485062592589322644205245281295940362108298901943933638160042573901420016311012893078366252222168469863874115174687322386463644626636824254606737640047583153076858334110545700207140473773641823407687224816068690269902956403489101638739666426794026038301570274430754721590873173151388840280691659519458369783894526070192829316262531743492354129016130477258563574870387039108033708246176404150452906332731656664302061452808890863442281538451990428050472824294550990354773503508791180777457436339799536468389793174510561855276527776434268998350214014826088321398155483566432471825034236677081808279105025180856055875237992816463203389441133349579431523471455755393297277961094192737913493498685235436014294723372708327472911549293621099441092106452215423329381994112595705040280010547336243629747457272168343846351029300173838754099864713527726945329503056504789537165743822600512330349101575226984939359658301900612735674367305142292164500316893373171066241411035391509302988542613203529416478453382657591502037268107188513557025250908707461598686546913573221314018404522695688427568648050758643244470885009012144872202383914228004412881465973883013535160650644880589882654738589934638172661153226224784470859556544298700900348996702452880477359564554824885331589102920926439040314563600443660821257129920059256023193387952781033180065322174053758495664001663454474521474715967063602392169466289234502208199187020318087028707502256592572849474537803896645450768597701396675072477800002346971216896878107318064749548023315005599925528333453541319989326108049696567487666373632548843135451592887684974832141906403841702205886828592098689539934751190730834314302103096788824879873126540274949982978872236602816623430768449782563109230184119537889539748253370445239770482708590786864364617261046575626535033038510168392296548653230774991093031430390830420006815512741624383204887292636234896847217593247326507844997259936596214100605574431765784177157177783940675865542317356963528809648939804312018656760774779605381554329511213239973622975069063700306245893428813096870190754305242952787448263676142429168143385719836920705136092923372449362357219746424835149165158359710393960236308929675149611709949614477314535437720830299696127496379925482125205131021533612663263137007088698660081352522542224303348695961356357189927411130942079826226329439196729517564399653372828506768638948820440983905572120425331214393412441835585412648638761232992065952076354685167073821909957553304110742116266482960353859047834532028357406829717630723753605526343090434371399448708426449393245517138686024700036099532855224643399745312894254309007621642466049212156379491795828786225148288819449736023823409077897602818564875390229063109947447909199595786084293244152880509202982645761053568119617026900262419801616702209207876844785992777545296705911984666352012970616262453894371351187481959268234218726727578623961705118233257158585144381368245784447697065929729829118290548961881968920990444747848145532388565430722653653672326872218862644626000601256872775487465948536998122585226355545353393379987549596597171394975762184362738304980969158747074643045571978582192921020103515466738526661389514329092175080330736761986204174052885753374176351696547013147938718458298186493092370612397876951495972045863094624025288624144095149945131127364899843238650804098194019975197752346245918643162399653324564308808054254764809881369222106162353701375758895115629755639674300086090293128051500204092556586129986219973818833496741468955787984260716555783689932621026635205845450422712249979591436678501566939729342904015717286015462495697086598743033961929635753644672366738723841552774595280312872642456759566288331902514355507867825386383410062134895855206790793951781000335489583586130987516904708228385074231455906134152598995932366915487999251649854992197422642889101301835122105519684013441964171945312472593924753651640565027618185926667403720039384961501307192624266276233731415503072762959678215755733071690071473520100741033471187798196422115316069523315588081195007861444149631975562689787682966116177320126101974644805507573358896174971976859874239106460632203591434274794296861089687132894841417448339640945318580538950146623478531164566601993255173081488309469596874155832103202714861187879116135657017324390687541677841084574306156939663846021203859059440402686527658219839379046391390249765761764936650922929280065375372746564869014700443111051432348435280491795176646365182764461525531170730315847465298021637737297378632274422268789676603139155234577356104417017922702997219333012032207632283881524602646035785994003612045788465481045359603405168881278690935281241773574839409313763409928318373286205497574020096170619920044579500523911025580801168277514581491040731049010156326574056628860297622654317160474590110256263228917624014036172091969460313235092339504603388641653150195239775201858412737516038101075765663063198097014364797072797700317192487723367847286582477264803505603777595865429371189814532638125583404786953144462743086513516325817394646223946031283531968015962068639076015755968390294583144731455680589636392848155190438839358268203287631411055728985364449656943792112682222549728887018779595976979403739035693190388395112402904503328959575164176540341403048355641975866427450442433413837889650887928551768476402350810950457508385090983861637769568446722447158988772072236233431726962162847723902588520729160503268320026957505815640269743375896485022571871912206195487439532070100882153035723338869638487042288492932596598041060841685026717650862494165815910798479481186305399620614227662889579133297759035129748597478989266575796409318837807341359473631688242771141427887770007334433600877512848544655619963662339031519879259258937527067170391896752047181090299739817009707190622410140613525271188224289085914769659443636506862956980930619400609637132538255243800038804079787450129145377411419233089608694660023090890285584422189562451042765416137874761202124859196261509227430505376249798780340495738031838745620313186838414368007643466128022599173093546727912852611942301259757835992283251185229675180624188942504178823905000965112635556059608060141291097801917987751197591896824134071724914673087527399930130659333968576789736329820886223675214425273948483973206357071021536546120913420750054568313948758202065684587769919902967778613496538761955459426186065387874175320424061651934192032378412003683576144287075865430175415016025494902344763584161452419882483591622120779811790769705333973422165176689743104310836945934614048379204412851307475380839560687419391857099669212269724082779673968289827940452938822623525658296884142797098060083088310754113046482049011102399299301482059130104548708185430336100252627444509948267556539438618108456464432576858827104535216324343234551676501840694417762652885459939182063420295815106101934814698846009965098217836982835030497589344696104887441998955718966317760781517213711685130948263593958819672260483790789594105630965786206371884874051758876519642742081669726934670586016742325365467728306883664566003973249395606977066515288087635066205759609307904291623966438503651098443349995849616047171565346294522255878240402710946414653423933805318644436023618256951646127287512521088963648762706205477040704666743150781388562815137975217786708066669237508647517479936410799727713885342356258970581939868985902273051750172610997353135315899623753894325115095826059650069671765169126358963179928760590338078958775022932570421171966621563662505587929589833468916602372447784324084083352167219772602613282751059419888033331654067610260666700110805890668802766820270287708781978213053915595617100452426659541111328726074177207913844298418823159732348357805533089647917092654064768020715780050231506949646393423447181990050158761562585197279420268292973362950203188811824714176439942416261180382420194756240796632359327191078427553662379750508117405842433428336342451634771084823874491261210799909159497796837904216712017346772667781188381867863556645231823488073452811762754479116695469943076354944113283701180380865529828556809529383091030151900018395676116531610973694969684371673037982702987747765372008560648933775355801478635129123718566959109035412489024907690699667270493906405781462011617022129801137787711249356142316322088918980573618888630219094355679417440016700573933903992847199621876425002785827557971936216582331536746593774964369871493822194544723604365101511547520874796287934259299992714141640175157993000598190234153321407652061017481703243786781250541399694086281627693289308867290296448878003437372734096497940343470187746665706148899460716137020416694384159590079504452744028876291790365924424541323173559067073375546271086125094676236642448631882843546129196129687892382293734132340209189654734365494500329831078127933350376801370267351619464636467613692063620305095829294703841778015137152791142815473411341703743528651632062003619707173646872945483347253703211446032981493019163898237431908980921319018757046217730172586649039460598887727128822403180826691836135597340614240787034107012081550532480589083494583292746293636556205913273337830976499562348080470997046012061426802298115378761633774100536491586384584910580471262994550177752865187325150951561832585628546220350189474311497272496996060780507879696669036535186990742997186771475927078720331607425278007458504126322720958251832248440732001926976089505872447318325394088560202591915433457973252318030987801128677321764764893916383037622315791401496794568563580279802948997162875226789569041627547839689064464504795567646849567772496270791529574741766578259348367176039183232673869861985470605375435030347036151262183133918940567229958476375176801038481570696707213131013517941017324490085355697649017975783124676459232315850506369754174206390467429343395937783501838641761735206516610274492776270248294566929310867846288816872246347735180149823686481391493603911939128884193708491911220015240013719723331354439545399454383004289566019907718915624661582362027521364239711660840984200443818062056577984263632914699842358031386816210006821048460388994090407226352560295351368109246022745083030581928017340319685397166199302156563259830415769456565445539673220155891925980703373741823761747586177418487617880381569356763152510266668588650830596252123446534121542122103685009651056643993237453534679134025003227013248967090000468723633629518014871812668418505262594361948532670747728937436579321132840240692539746091704994761405503002039205487980265327924059039965049993389310891465473010463225855788944764276106297312364925198045845672408598953051079926237744057420262529722015603130546565118509894116352583579335430340523787306192566397788970076947176775137739374137396700050556657798211826250687288315978338490502278173601350168098394422737412585343324802518881408402224130084456764828299107167495475131738105669907148791258118106204274804814750562436431837435614981815193046716538348562150313135937052740502994214379405806122903966229606050835967649795609377131920115225749897334886207206215273081553193902930921245990264448216339905143064884951574590856380542905857753946009468166303234091339029931496160828177505670373752399960337502740805983489805601228212899524703139416885386951363706425543590611140203019124328142528544246865345024363634042875620013918622950652663634878518509362486245255016224317135806609278240077620486601201647124836378690193190557988012924134327528801477278610231395157289746854240268012654799020900346835281381050241538901207884316221018989323371086181430446870732636311296767542517606912317642975873944328205992636575111634904935038457331271616942182369502894038004147057630513193560922886951163060162546107525234872023016856706835496801713969198430932464737854658522489814811639773346813786514862069639397776143182439572313329283481740766118372379535337663952220949984702665794631325752616683809131588221870756383450796086800280773918894880646156119415727769091628791672900469605393400972689693313292890507093708412751461492979492742490496736335302293403480670552903158534648735043238396946746767292480181642308910825681381382061683165471698114703395124131922931526495364386899353450450253554327872089269918932283679616197136168666441223742909678644510520583092688364750715898133629335554986993540930452349780111798435483881658234130974515261095143148482101169383701413817461476487781749896517992027584307426756075138706339144242266257402870425281229213618503309329058022513284526750341637191072881614508038647602028863761487507226202641182715064917299329871371538782280036017965295598850353545007760711451626104150555092504956120239827075110016376221911850660970842471545580334114650748087232009664429973084490525847345819040008127968975476823075804912179328360239998299563025756118933206765459174670316321834567355870753637888455693401460253089783593679451987615552605158272213793611168232434744414325012894973824522889795842240864414037331409745176060540555888824797252824605421366850493024980197926629295183501181678232387694677564700830337094954008174236477557365677754478326100893296067199712355223459198267228396846762986734339467712057695554812578839141101110474703455164986337999384875530101718180305105902363494213228925526031760655543448683522729021804714137079807394937618931715308114160699746252684365313529270429552933168484069938176941516500611439880625475614040912655736645445312656591853002963648119010720778431600594012479874503888446105926358769571818383745625694782977119574054423147508255759460234298023785005686515342298024777607407652403239665918453620294977212683692009928176608484380616475453578502422936417041058658644162049945242629216170293301844623370373173925184216031217965728398893242631111250194148697119645200147120926994773784698816185726265994208218606263055903936524524794209629935419468760265566202473077934975131343131479491549753016688731526828125250413190373763016563576817337514631899192729822609722732871875456954404163665273071803491779743485714041023608066204733337911857554913563626259109932059037309141563221642157909179807690077037850407901350012322263022246810576223360485011261300876403277343374339776102394564250410479526523978607718183600615244382284159125279053804462635407286354924522590654328107428744198921454931289754494595696229315828127456878403642231029202369126318764717493130873060456234832285751481421222552197014814706097735277805019751165618557204805854634542539381464780875541986081203236589629954661134594303820500051046311703997162355449297867799713815664094508287930012719383564324313584964696485952558838258915500143163133937410029475069884620165591622155343501610891840642752698960765884562869769183443684934037654149854050390979937191139650627514328593344768530370948546579865838986355813150013254105722372875695440990247353802933264782036662913496889016434271880585693466404115735315441573644099092621930597728910182003950818724669125117570523550076846175538047543609745874961845286091222799260414525218790216303698416841649740948188408921839180664515210176459677877958448543635763910111772630976723310357389055315535952481495058192146848169601279531709722117985587089561230724641745724342060320507256699916235888059757197667630739360116111395012942603593338356078806343820823748377277206616005773087588895273132882761771818071568407232918328577893227366828280122885604029314132237975302378654047408172530251924694879041249367444799401859167211300116701387729782562651321569222380649293684692697523701065040809452593593482623690584453079694575434210975372994260165098277693586877928749046026420483027945784088727976698472927906803150504681146073899112434801968650001288479709808192969373124759860173935390107703297678196913314802428845227256995743358447697140017612663824185667033839982185007960138398595765791640722712637271875839183825741013288892318462029961669887229721311219042542146138633421222600096334349775094933279724255534307281596679653080605582746089300340282731607500788040519837936171728547527033807533335507317837135050961716496148147215523402943000378325277174013154247317509557234314621631979132626212215979461506877182209775172262813386891066347128275373338233250964727913933822629985957472812529040865131343687974832773160692492341540125270431401490396457579774506407913654747796705477753400414630452228039479934828899241021670112678391338000466894747640560364019719461105174464969163052467618663142496340228272534493462978902353101573748328800081446022198066458843875037597148574530988600725225493975715242389615334471244639609856578408438531386906196280784633656606939746985646922525222199279707076094601168753003341671106827178234034412626488311594686712807804055260051267754411066255482045099278898290946878749291319238169144498184959457935609364745356528511862151545853094339849229705098594547789402509110566551781842875072570037827068227124817410793599927574695187816681950998191256724940456450429041203608263809161724046375249971093982830933890131487806888181384268598596334257880505212889923785315812574240716091146237622986215099807183781417148218602467942632771029420705473196668154532819470723524283819764382862399657643912649454615213230644605805752348140818131421734403559054709785204577667901273559197155033284487062135005672854078899319933351776214527274292303865065878401973918942832817956026779770352176109712733561426041045349108835761830624108232357279053223165948574396799690682597900239045941584183294851533652431485672410187017760775460229325397129053543841305784371954282752866583484696714411986674867209394087674242856461431978110243596013572847782033213548103669140241797366250673544984626169335885526900051749470914825285215660948968561694295547989505806848639516990910856643406889228030497389460960642905519231229458571727833998391047578841745039504457680490390611928477865509985942022855996006558434848385096001450373551097508594156048900445304900118117633462429215950445026745902018880261243607648148950662423365386598080717052800373568528777504488830321701286519670111075234374941123367125523290341923349772662798631740152194108496877785025748302940582267670491114281519085721489338101281430328682179235453433849354394475291681926743882377516381132097624785329901765901707141655976502068736886214058987843446851523034425860584060390219876996614693608781415987025636765842918550119848043172321357660740216931767994612471157027677798755374785960177217266255941560517591314650671516255908854072464968321423408580068060141798724485146574788888543426247510335298288795374005527687181473445778514557766359166615773211183281289918004857660050567792200361449393262307930028333967268155735990657617164254364314301989461805767245459590894263276458388233095234054335500433739250687846690978597256262519353728264367355622955704676869441915173984596346484796628938854550114535097103053436504601919031523546371678397370201121967916516021787562788714777000417671089822846372801222353775961287403719110656289518789757473811760145218925436558365370465245372416621807173810214097304919340615564764231424725740397867402530124461603670991192077520561641851072447598242738842492116392829386391639027299990542551746354979730057549285292026494148122320711767179028624626718851155356724262124172776813724324066095741048452598528155189524696196311639470798064478795000647534706050903823486557686571455211301170246822571202819767301803858440011308268462992235249146192491642418349915149455206836659207191909626759280435113628283595226443756389271833504214901634923422987607363634432294309371487952907219641240949692030388194810677853372936303903265308738693624160768993665165725015055441839180139576584565498559512809365525021971203481894959919862556953414040066035292179776659594972094380320223926940805096996814936737264964798782761801214127947321281555071558025633542350992949923412242423343799329388688814289426409592734586715294942522569297936623692969010922204011674459388775280666985470305887348103558188471226096475473989082929365804607382104137844803233879216678944854708221165316802636032109537360585955700402946355607467492791549816290906203666408200658030667200778061177288149161125479970203586612572586414629635266405668851497420745999129682818440892856845473248630636883514876048825709182941883351876680500587316963126749967954647168340394860297415315122682683036232431118612482415929230077952941993386168696004499967217130609276019750275663092398585252368207561645475635048710499544984565416874327877135242889326597054244583498658724893969110919759090731699137351097750238655557707810933896861120070450717350867814182638769347700520027027658268631992201757472701511394831739457385128874177789123120549796897894316084245367411087488677227649611540856113308659324177188905184094042524064252448267643229700355889608868715077122498148014978851332850510946968563393432916689816560716911694571850980294899822787883083349930207385225251517014427931492350245184478768185643284820602249165087243011280350089081070828362341207741355368410758995515086712650471190077587617406697005924058968499396268734880326052933473128752828112607204024210654334250699075079087281761473834419676434368147413443891455016367425527246837196091067899446815759507374366599069871606136218929269565753395882968016975777319156420416705021810707153263270191360916340918212198929780654834291923664576919018471125131703313358338424074519590825346194711504098066920877407280668111158133673731906328934282507130145326873323010515863742257691772213506888030297689260877380643242597368848760238740519640526392643603757500890053311941854100673503273396345535826200930709915189494672825127574078846257776489228985394860730039372472283136841910842697522714131691162947236617634709396861503767757698650229980778173891430333008738806999004986669435930734291498525818890991559949927546651445474895701848893303697288253784171153691806501846861596817751483625115795390501645828234402414840318852666069252017680815266733117900746252501620996105166323363706857124741085480931056543548299395459493259730384029699600761239010900515102293598638633662350862936657051536326516632982327178740330738467810462139602160280042291504744701750354436838592155554129125533868927863837059060398983344413721573007522201854770549911594215591612042492686767590049173396475023769175685710068590641479822776833759870951927658541637830221227501156925142091595386832603235018755296892931534380577554149250397742403422273222437883688501384821800924735510816669268690927792460065364333273855743611282592192205911698087940262541907169819259589134960809022115040553217439344193162431581940278452299425697932576206545255901125258297484542506342519100421300295710997128912316740966649463297285424595872398639141636175938237201462395716624632225124512278051077221544128245558036966822433965094803509642185559140531487578531070202126724043282432724148952653120093928318521418610885767490219792295797215167011652886525467548578934054074739237243650711343903295459705525285742669406509506921319832827582997106050246807394804497297368435148571134515233227016922657461861203329882591351985073479698287413397801808524978362062953315003806618082911760345052479044044433950173195831799042739578135734439747177795494866976089826132315107352807406445887130696257951282300271947795588741845243436665702712195066637243994263978169694652993656449243612310667390976455504434043675737899013676393591862122288237715548526947260088016793834190171033457644339107594432989466125490475836391616427991201750488271172551354418667931881523314363972750594554313992141315137914485146515322248771403304925329343240336975651370822229000762448697424932303466428029236645830534325580455441043371234299503961182134429668395772098215190395252144737144396860128895469051207343143270484025101980118912042053004724185058540057909803162077149722156396054928811699543744219362934704522222076045974648000715875485497094376800866316117308891459810042115207748363234468377022866434198278213950706197549159268863677852844720258688702887078166262890546217749987131067802400748233439849217813515431696212509291708552615585879697134310057768639830142509139654024073216085510557670958271178145837968270701517150332185225991435887380939699427610229253374099556979474481870569917129617679353500047503288504774151329863502878052282605543593699016722352663318332892555741341309785326547954042549376020550167233882319454015355142085136121511803560259626494579563549034002627086013159827002546121223437148240963079011982007873956878561874507568095632938469032330843665754212314470191686498878928378783465777742031961799648885239591990950863408260801635372711896251006475605526628199801734419631774652431989024608603036303328703653822652436413456407424388101342865252262057673327549055077465830419010793236644538189778335592411011859608568860122124029685521663654366328775960650467133338090375067960727076555733254562626112116091963840917482726008645361974290010638617726176569249997577927241410766631003949019446238391852148766571549681208447142545342510383575087398411550212466960151835376095082726920786639884679277371114609458707902801701092944548080155624622573593421900326221825567958320616815482146276654155596598372606919041961518318825926874845184774466392442493605476974887425586802666969044686246869222375506996454785984972503099215218569526329353240009951661570045380961227756141738128754321058013861406067267607187039704751006443657389184337618914352677091615675568869573440617969615548031365216287049637604505429866494442220009633532631078078689472141397171115648118704046016265730185712363661629604569519749777590864579962708591840896406202729953624849444722149357470866089021720643306637833356751026637508681188695836399979600246664608614758393313745899915706449421653259876416676043338422229599066191903344318722499671626682681995347272527298605153038142864836000439812153137923452243795541498115665194210530871005659248054599956593547113325716250787093320752644548832683445918713975755975413342907947649715227236345565971234592582851343913099062533791733543158943495935570173688702463121108957412779779207017026616594339131068848128524016672568800410657896754633875294538616328377248752282280620179825939313434476709936457512638166307414280465545280028133870260754699852660429328611858961501586305151762983483602564937788480575708534546121149334462613663883789829508212927485587277844786970428968124864114370210770492003152987549365974418516834918601082123837220966135231120285434840266382431330991323625756878526361044397133909815492195269226520209099766389161781505166589309325339536457325048660551139336754063250562994523429966521319215154783687590652324480319592093237258644084270132301723791482601275052887280245157915627318214459129716342683159339475397397441448102420971032331869539767246603012051093125350210137737845342465095233706997635775561677580320616551229891796308964404661699900475200092182581760561838421495892702514621565309113486142486713047881422333278926677142392499239360699789938283870442758025292925102870987668351909559046695998884144315744400508122372938671392805259519467044239523936439648990710122028978229307188498469881637980071875341631321747886099138955352219787450226790028417252269463559021257613173087564334910054681764757491771049094358938933299182713477973969784174683170542747001457016818935885919338613270579631777393976650004500210341093847960661332880231132512303276760547247572276431420368732317482424288013527250038750851235387681926270589040802454189003240481343878215927712760856100181080368493838929840581462732564715257501979554823559641375417448133132924101331463549726283548579956612230558626375851924859083186684450817447575400698894298273825219568265560340349192193440259876767506663886280218811577586091348595532469402009000679045209601660846452951181384407358749446054604192105557021529887840477620299907710375826910421540701511653280300890507633950857263039677596754585340411539948977315574001988469105489192197834945496662427888944626385278763759711024322203179248304463638295768305804738300974026979226462091580062236853954887642436587296478492127264642133699595142784526549512591458697761931879183473704210649017986607411191485229007124415263709181558990683920860499903218429088094632721279066663896441222804588042326686462195704291426825798122658354754708046184918912157853580847588334376009842021660310273508044517082744505240449407329083289310277514496718194209651440792802356205169636675241177821395194311993145725930873759280051052686582898736392027347843869403021456401038121172265840736174933390753261072575040943764338621650646713326115037837372902260451461934446773279866997672448774461539070380309665304192641137680262043293507943086166741645371369519272839753298023913805148490436741237152571040256495036288552303991112930073571200489165235562697708473538292276653170707688513341095828837696138547877702303402692452134036098434725079208115572311774345271212488572451041901317592729391834114263968652243418720161643817589311685079215193599505941636997745994672277695489545890890225418898676904861069439579758782652134173746760216191708724653392594427326600303793378175853657309458868179976367935016046899349348733757982751705226276454312520205636913459592046425872802174464216300959732595850003755253818674889089670648841890486806174755339309366953101783520536658655594585380237862787145151712245824067454208021480345480807948865869871447105336466950514155225626578047958607288764119208953336515452987189432257693087409813644786833118093502327053553215987976117436757335538455287606367449400266572925327506255002945417898491419569468309902243319476654496452433241327812661864645497397208566630273392476752350462216575779571880275003865143470236876281055532959213055952647919052762779965000220709096614940880230243661425572412687506055385693342068123331426484808690503586936296690042011210433796849836395176251872213282796009738464651326407092430294172888781456270414344825845979180964962674998529487774304704851012659967483924960950928301588402234141129871998157065228595334461897750651895314929454248284584613179512015937168002697928094040195413053556430127399609213492365749293810790977556144574982371734120427175070676774836831528939894237054942229662861178036621232702333887907965124134206453696385061559622599593604122185230719485062490682315563557322222458359652410696273497398171840727839648930384270086631987150388781213058490332065902646051095580130219035575138084727282527135999007868529975673832835683916052529064997201039278497036907007895241458899092241095384629771509947526958791353501005003419525102710398115734105703831106773297332029661097886909032930578789491504124320234674604288901731326734165851342171131073967319747025701179722259753176529278320336628002208473077573441715707585532178283259216621421811598725102710382118320906392551926862409891254020602480802922169309062319173186117340975792919775652624850919972961703162476812463193867505492109336381012851251106259573800590167991416145912534655408293019011717372359066779829708099087649776206163267349086006858128181384686711653348384087064428806873410275035029605639166436578261378206463605277897343284742579993956062063281400735178126064617385320206182395820814465891387323463326083783769981928880630592655478738713630472159574147018709068213844807158340016496008952966750235074649804397587478489604450847533455628192371247601173176762820478643796641365899583295559878681752744827737110861905826027649641538913411026760291601998478146286390995620438902722617048422487967382495935275226324378951822939164481067276987571479100537512231240826706487587085262049640802701155363175239311539088776783316670698131430662129058070582375624947999611803734699545726024367998706169081773790961058189082695689134174294192768845033240443175996076755907199402759172434392461006508586615382017366686967910426385513621339703075940447523716376491082177985519796353733558389321325485349100735947119208192746447920059259092447724168530515357028840766059731993927411343529401386638775737341700077709669407322567775693922146367551514422711380728216678547691443756336325816913532730237879384750010501565431060768901939663391972709816442079586364061079291623768830846444313078592107664808731827907325383102202699640589638423654829126964207270966104056625620049978630284115748134670077165588601326184220605333681656621862860481727694191667190172458842439114832535938767806491238308001237943498826533908086728988390162290072859034862359276649614114520746427976761377564254809831758881061035879009926033396213763069481174091876366858597710396870289852610404383768951475427390896289433434970233119459524162741643256151616988841880326646733749961654341762167847803998725953686717775670636241054528942934876850496044233672259127291259895849620719046342910499512387262044877793532966894780896423657212985669758072333424136633102831840143542131646190683424278567519381932339425248211715858626033179886090716707440222322246974064077155474814338508096785574001845620959062031583682646114859797428274134856010117430613536058202885681268934007051375834775960949479225968703087727022548693954072784358703529820876400699827120586223816556353881223893600531814828058245300938991049999050680539984991812509254439388453190491835547549954245120291900403425000464117079620450051845065276611503653799578596457909559818674081827208480352617007064885351424017995121470830875887216426286038314923364088072661687417169063141359581723335096112583812740452975298760180557950817118058877437025253142712767165955900417388337767110842679414462975229370157123718221800892271309033606593431087198164391453871509056385807845455083961955072336210276756422136596117312086152792956701184998629073309135510573459630323573213791702042401677458795760120768787892572750382841717250892153494551432268448486485135334547117927763033458376459404751247217996891816879611597609642676788181110976535701102013710950574541698401222143912186842869232783080767859046309938247367438145351911838403068269147880918554200893857738244072924175041930872818522662907841490602517977483933821296695523343431076052114799296335756644871493560320935344950833766452047616349091381463048809194735879762648521874170889526327578225007486103442409979570386163327378706924806481919299310783579885977602365783552857086407017236849829547670530488351229069037502683220310500489571320755045809895151179289745596162816363468342480134853529566977330478409258637482124128195523915047935766709243151013210721826823240281811351502838092461552690986391796977477342193752865602891066920707449158482903018283085324548634676615764552193341369031496716394665137119393958835466913470034670668462279717094521976886118322682241084965775797901187791005291342782630781005742504174935418619346107684024441346181862081630737145870733056919940974192875849363829948950178149022429554217986125622039385875127866892958841636056357289783687854533682968807350676990207314080899225295654723591821168547621989288028382185388650756690749548986251809307491701600142685733058327947713085505615587989629626191394108938281542831534122413350895274064472236449209601167941814350328518339838082767419341591628389259579964584478569122125015922449423762927849383098304958112086393318531635128815213906995631395132999290438614262364953228851375295022082299418228958595773059722621881026937530646895461105317727183415318850428089337568594965733878217985176289778459552483983235423598010912816273782846581073044788352672223316708541614146362037983573651752007723358379871903363169855524969881961620537266295543278456179982042184164459099880207965207874094128343865212500962509550409248949540364185878615173341770244608523845701346483632602057359824658304997099983709150190851695536444853407701484770091472531987304261237503394558970743494475319416143361868384140214391138578460094611376736442226921966401499715886176518033837455269107056351725596768263073292702863261344450852465831580419754070391018967695460050840809749343497438305790906591301242492714764509622921184132164837998851810540923995607054856140578177360999000066986515375537236151629309538717305513200398923519056257539552442835222898800422192665114427055804360487920647432480563751655245773986580914639541119945954064857834274355640754559254538570348157045435760013739572257978610826077504077958573903835389883169889698848499076907505692861390591748148456564742739754993399616991776905658281216843925647108009737267939490613166768584704149806215432438287166505762249915672017920341590288629468033676630270224659438669299513139560588178625046698862726908556542640754374112157863222013959281565686107232502824775358825680034824189574387007167120526342380995097122863532243558187646864178101031115233239987583272668439797545857537246138871232588689480101392311398127448196273793418656894594646267314932371621744652192315647140691464075116687874834450644337488150669990608740657220787572290752964887098566744280065509389775081723248377117791315777346618444967514437163199768576929839573045050720384947226536390155786030748287746760220145729888425754488670889744158497753355323288018994767749894451316276207513119927200026947396702128722339404766184589463916138671310502375571131864209376784342907850986862722960600997535272686087201832586786188153434446013104649918044159169646235630738308267893013220501282359839262690349637814647011716360621104645757684403132284587769273598278418702203348356362017231911987628856338566882573490715425615708825008102766751265866343401717505206059737994925793101226362936951859230185859823210360897858974399844742368551938871758841099317024799457516912755011406655164066589863662492679107435042270183857751221306597726893322589336604362532738861219090141400409811123742364024208830868886686594086008909853390725285557193109510205068623678498957580951199664584207052711417438903857711163158244299886301171186617363140253477288282868687924811545648998765146642428195385634700857796816893526206429368187881049010199812299961448717768621013033337690877679902059633789462334863472698720558345038882795951100548982957810447653288651509021031479436379181071230729929163281181396567625089389630866912780315783474491085504014210415269880802931500575969534157003358225194160605567084542105868118156551846828921512491701619004866221774182845501165876213932413875290855761090737501545113885317703437399633584100422764388734529970147414470603240930366195655922471061693993224451512059657225295134467841735914544308836127291074321183810663009660736618644617510324373167815241275213415654924328553988242342988245547639247288660480954203191273899339380496128678268256397096963333627775186928817486222009138391033349814599043625316843850412269764865544417008344693345962246925568595222760782852758373596744469254748363762984840566853865465884630576776147797010862573626130309192873459852905048448051400736540615246071197899448856594392075099674404062657951276685586703121060620896401189648800014171158157946952462865821755028907139100417334566846952499181986809376693025785133037524980053287998571892129370209643652893540693140115835339206512295254799835869696534249874813798783054305832992940287017364294809324184364809730328002036254209308037889054653235340685232993980008324424630586498446755055486157312365216536258887089210638434869163635893580788468248584767481840700249455094780047390910828379199086747468879411294580395713193138344608383599541758141669329001240310686598689124485363411181867373334770489281092403649709352823489527401923935113529075916770089000195849677552649199467741509601097443100601800199826602895227573597071575041377213637756799956686645238110885294488222470838817433677807294166757126970591320216003058159043103974657209867696687266935078904856115173705287548365051326785238848607819447050476413023735003604667902641285057468439043528542840572193788987456868854703735758436743860121108957789043547860872598028198154099885527663250017680685379009625438440850486820650034410251770542409865022833952645710609137261328036925285029711760784873167995569073215836348962487453821217093456232506158896351571593067422700673198594619806766048583311397407070301084207653155847102448479778855938281298452684474378872868582548750374670261271493676538498909569458742307484740094408187996305062328973515260922722208203499611979616449476138217468944389126454072176980118165056664488229525061205307767982516920487774307719628306551723499364901640006949193190493138069419905868834904709626009785718151175943424996291716706926429588821818711151540843229396394199582258251613655242566348760523836891108999366880982686092942611078619605989590155644594450977937431451071271040895910447813373017067397215661461253159483949108966774405802603880223779002010108638943478037256155674977077054064407739069556995874197661868397567054716519060265169804914595827825109900372463368889250888473350781469608993402002876626630901876177808335197216164219192102599674380736027816097258778052854152294355021637871542649930082901451296434164470927115815168743729918081156956498568964669245729750648380599414100939089023899253808372672400094138333201309515064547576504011609490635257527570754652954616872409351645945153893124520127536240160049464625267704456790999643187706966244917320964513492733438919795858666213024573647559331260663997518176515150113148007259864356906912609654158626908334363484817201563581324996788171418008109283488141053143122733290692872172956679351023443306680929602750831362695087530388546925983761399306155375100724004447868744779756170366223943333395973142649059722372063754220678783782453114284202308847411408534429979963851030971235169275066405707766611369436311705800100332068601050173185688701386900924292461747836442500523166528615496707883645678725367094566002387902714037852657542865063056036194404476254846739755492246434984695303347531153249662271790085587243017631663693494203147763319587514788591688336520884894613108698429277998345978244614622939024828670796683009488467104470360887281004157475697123665718637618225608168039334028851885481140436489748571174744185101820515186931593410389937146756100208586021222323229327442600746597932396396865998847726319926579244714614897758915042242646383330395983446528458394189452941620507462430743694474110828309513351243124428037972317027665455096178469096601229371923962047843382756701516940583415524747484114043341923280109564654515238718206804384928245967981537197953387427089534799646439750988614987172700390058714082310270587016755555998591314913552916408610323113416739834243895864613217436037213217397507694630652989401286205019031668137604206887085753705271301623908842873129768467456127625492818613599153926531341856684393838987863980730410868334700674803705688348947549560475834875105249229611673753552706302050483521836860675839136936358398478031506318869349103068030919405541563865918367442714580997374238404518869410536896421931241672232242326398659668500456055725855392614047930450031224044952065782320697548851480903188872774003225123557277994276052736156474935820801200157199622530334343949395104440086555522664078884395724846195058857263710997104392611547069146247899278927571460710110606717903393007931212581391591249363011320107882351125211131136320548179895205998620317657068924373474332179633713763586109519217129648366160684217340757506313833779617487119390892264160191381572227794831809389052299326661967515076206538553640576472221495014611504495740793222251748008890114569464591414963251802580299142142376369139316052236728167512265863875860011497894365502554769209166827549301543306322540866279920523339143143579934501186108163017013869884381701678600903281247297286743504413519009308559326530682666278475556497388983795373642296790013586625994504351695833392181503998488229428932228330783082549416560883655271880033289843376328781017418707562859033231568710595753848053082501682270434602339148221564051638437993461338162459778100181198902676364434290601128207627684841305512049629344596310736004925102014915182648070107518393505992679989248568795182430727740380878005904028375806199533964599819466021572840797794473357750417326418555543739135338858498736439808461630417858420093359272145558668578693228634808929108534586469222993763583365619696225721733139529850490093221597475623662887627516483238249639632721545914377770644458938323340972662554926747491098000681014349310715568092138514534722109903871670761132015759558094725482832016689260017512808153974905900063115242990114683480014923966517830271828061684431851565960157058808076869994895685866880291835382842962067610841999626168282707802910090118453856885167601013017575661361446458380600292555860720526439448445240012163824001629671615062893774347499134999452753674114825565367425286583361507844317546442636634736694443447821184562524572990827230230346438476655546909494346978153211650190876578165830338707705485647294814470390618786002681110224001020821639760251492043149126013527332065855848550370495015292796704995972143705561107447938627454711663085321835816533322753641625032527552407718882608024418628223840223827660787864075449999397024718617964017325173046870904685082680661498335525236019393301503915407240138122220433417381973374721380666400636621397166822736788045064684630348257647890054305598749352143029204105616819587727603955517848971630497817613778473518220519100950507476223344342262198871168232532513144075306859610557837583592025316432771732953826499771335329702480769176230929528465051782042444561731617160214583767959013023442165637186926246179015924589377086574122334015655693030515083544849498813228169007181548146830411665277427065906997657820320551148501112169061319799260387506557106702842060470348080184495164910351277580775033507159274977212619675531127600728875302467956586024338913209435708487469868684048047922558251398135720927012299669768338838860337742689949742417456915501060497067200363988231457607408634012768302558684217041408999818408853327332268418491219381222918404452619842707249670062954348381963390565748366198995249026029349287791432817174393398634417601368212339789294089500547098271134922682337236183274941179824104174708067518710794802428049193478292218356439757929807205900527975064512669895397921357345177582159290617501375883425617299719442919586467124615544898610790740906509330482188533894589458309907456633466231261630777573657326959840120343692237792227795168557648426960219949297136925302383951575067576620143459205221072145256880568706476677299646790034972583291412538506961069650381884771292547206461680113544598124224771848010881754808546166164867927910911934475300014560292611416097273680879035476877366792491443413847617155430814956096199444411555185261555985960685751477516599478800471248288529711057057741741533632908839504452636913335198254974396221340007190755496682524472806346429262306380523360067808367647578343643060063185526212493699873899950483066922978973007456693381518871697771504076382487206170183190131988702513955956805926655524172182817564426266186865804257953777639227406888215357766941305006850342351154713017991809693874887329411666644903034849677217782341061580527697296711463942059166172785926008491706578919525275853749158804086954939684066519765193515046690485222725958832028668561372823231758472785987683459073931900128070569952711016462854535044978300791670895418872166349561622399579111570977281454389696188099010099754404247268656649694368244297796331727012577310523873081337052393316242302433186562257601517398450715803238852657223421058978610849487853582689595909561719240270123760703151958477583324844871187516419507006636357107193903522533609435109140682903292405463806743822830531192915512675415147791509002021935173501751945695071757050980041788746841611255889980399257431996552542082620031973928897265173919839296875300819678058869370126648631919231585381146653187833751128962498689352173714883292264719687446514639794054836348096803865412679594324122115347449638802443609266789636252322714329398618314468526981419547916245860312310658192476626760622659540165644751087371332327422718231105441460128241158434861024524952572111264474197790521216514090097121689689753152739065572634458595243959805289800827362247000378663822871401259281744598545967276033116900312738300094951266057135712096926304478068811538858453210184152608398699271119525344217129338150675790502413706822370501424302278666760283208157863237594159440116010579607927216100362007053172380034995836039538075064194729287727135259786228567905740774126782125792550640678004464810970749097085965170706209193847460383879323478380612282133424601989089220079249602076888928058511686732363204609217063567727640589876184547313591652499667735885523577643468728303753520073863356438904344920424778244079262993569918079028156054173222415117814909791726403339966456347378876968149208265121634717438115250753248409573240301802976751122917251537874681076530087900420661222190772899059525392609057616990498724571023606122689978843437981862365135938470339450905501192017246992179903479254002677538903230515744138269636590560236571415326659513461621055712319037401834889931518663278428351047506106380000086769647328728502818570942793219082085758543314318573892620541067385145441589521459131016390895838436831745800312639110088272058058154067089570415772257788699392781711715617306188625237606311297016671184778033304640139974783063031376197489824651977029005409097717576029447717451666919275668548770348176947543458502684858837038738508297622961763416264016787179380077909256495608617266632288046963286179136485201900566002151224010650577026768576632947817563450218358126239340710601781802519234625140003872831051919134242339355997957023693089645216263374435430016364696220105254604609634994014460757291272296103920320751022752868466726001045045805183919681994474555777612401999406316250150909216903872154905414243313869946066503192634049225804634827662606857253324353908421849952811647476209186429808087983207990766694996131107042579804043970658977263794736117413571274106975383104677671618998750641368648110199585598078731299539278040111224971313726026963868076827968687235698762711871981157262350334357586460645500914828733683881723774579743768979520528196874082995904301877275572790456716438286053713036922246393909319092167716174606017743839583176808931375575269340020363615692748829656454904477820320272284885242513574083300112928584748674361800531075287033240284959451009998669846928826693870252921720795235312822832776148216276789527921794779453787319743367760942645290070959741669942924897565529345744709472823758873555117872156695661647504937270769499765875858350098290754133078562815856085393355599926817732268282995915182712702278917009896782257872346598319689377270659420680480541129462766442727960597195296808318814654744846449025622527829564175129264246332161115555216819531343980755709053140705745055945133807242758330126203644677610828359381239603846691626428781030530532959541283952292822370446752286716405930386822589971281410424047937660062256924434601992701080177966640520475103958225349061820762072087214034132794622300766182245000126741455873127423720932122477653681050077796428794489554926975078107978268375046829662655669404458722129596478858230799418387346246520775391181120733052572507581058646696531158152062614800214553737226329759760615579429401072591361849382415217297351598125620414354507153180456675141877324339662518317216083740573429213564960667853158642335926507912286903044915780221572466421871982924206584066616580125976496058659704956875281598546552402530230549346905113054521172024088372020916327015200527267264130342384827280414899774091837731999762416151200336319935362403092766410984016185258966194166150523055281310568729142188571926795388738591048052650206642635156512608309935301362485741547798492152638936034662214370510407069046003416250605016394793260382398655795693475139079091250367329876133530475173882944574648477883281412119374106058095017894053805655565248436322107720059608074443008046183728636061121477472804070295658576492369047364223500990725771026084317556626525612402388816358548205162204123666722623990369072476841115302754256860697077071708895026422567448644522661847908094740488383524647657265537645661617758235995646855819356455323917008520274231042125504901264865881601457468943357528909383998812666162863516093924350466677758710296940647260063919234510515553692525820854939861031760752287958042158230708059551654222212300098645620299403808446641006529384907968191616197091256907595414200097122464780148486641816592047235494620642611311113364637103404080689923487233607644152535742609476184888390404421108714317095282433296131269662904298449840772512806832428431202475123257016864510246583191504049531717100315228042928474242945815755230165543839752270819831313986269495117962636121182945038559146289573235054840504225715971904092106852116526338607985635574048589145717461292272585624378126384195174529036054875503317662454389548885063172290994815249551346960413556306114819923614619303210808611710835649521961738621919083469717164004109523138185990384566309998925927974079147198550016053326439625065880735218928083865369756281389454738346062615389746627774839450989861237820212589791953039054172962895483006074504130976750663180150514303926894628136798767345873518997357903643043952542863047633927010646644879707426594050335338955774981960171392626273654625975212950145710796884226580405006430117553524608714845098046365628314487675115571439477196220619348194970931259320580752039769746801188055097190551237333177637628763704238516867217026379040834427528319561992060362557646986862912334666328653832420674441600169451703759664014148693983024187532050110201582505218541073796275963663922520316776307430593993722970704366614006196889245973910329354341628778589264946897295213327186412735284611576019081579859440588790541007971113045355904991377939967889676814198139999832163461698814233865692696660611932977241928478084130944901452875660774852159194249527527794775870443840587222506567541456677628561551137656179859287281389927327287163697569082889920611579953595284411562289449218337359155955339692406649118945910675495379635002764474946936605360107448330700715300261201769661640442939687648289765919521458887018994390690990574293996870953971998777475790794753624175261471099005566170487286490796431852048734552187887580304825764576340043675132083073759859365447714966277284509149752663953603314495273616106423009804183677533423474394875048749018991984493427834284380322882010314100722001510481251027233118965704376359302354190650604526695274910021020955521756967447034609045660988137502490575735247886692487927809134381236194399852420920467113056925672286792051941800214562184025302691025342970389762606093236477616023017920218186078922009066425819292138325428979346911766714679547664466000297405386262751431006298475997487225326554139944641693339781724074145639809996021474597930836949260956275437530136854113273162159881486814543103739027451459851027339591378247565385117153699920258468722278374622197495908457873378286338528260638798504444880004179153053983216863673803730260404138356254171173642111304344985532164297134260765716822784731487354508908373368694951330713727830355655518620289872690169411072589069176131246042205483975322906707425617448834621383032351925586547899797954534537192954704015647535798094325765616191679766193634777206185113999464031632441751144640011228787499939110086123393063739193803643630234142743725440919389152176164057474183400626776530487693851462363797707442042557281928767803743175607837561743616171709409813710031231210613628846741966510017233420814089595713818728117728583979376436387392267839393234746743636280686613324689741097746696168243491160793088570622376634655023624124106889930366605589132985935351260731827290636791859480775311554367211171294214751118551440497695327201520923999078294480056205607176490313725252475149819699162620501825730466999896512197093650020694645994379358667896685866981491487016161347016351210263352345066652450997185493517704059307767698764627718697770435079940360083941186833349529023981907478351105326541136584544575250819386452149194581016361096081410484292567820474963004865228279627592485149057667750072540412367342097309611799362117992171814149550849961925822759938181728577408372957207329326843292536652474358612872559883648336835345808352267865875991406265147134372542675739682960610859260454011174183894292201102908625308679179503458839144749349889374514123554462390043992859443102521714713165162562940100451125484800253161437863367607569123777002599188574442800847673232563075000663554922707986417722447054021661296709439907045154673938809616676924719631550604239978656253115573200743632873194671158988841159656399500700533413791652640881681492453220668143295171611097250950943752833941003889390420562364631691764958945012390516408303479472385826967281452639042470037542935387718726323166632941971936123567765169245676944983809023569970624848071822590358139880997842318977771463996929640510021769367699230170897606425903451496816957014244446001404782739234176807605678550199078130205841257954755873379256565210612987331231545502118096731386454556479659347960749657937260128727297563317824697437778403296294019391812657527822382661822007304263577017758031105709761884591583783693263274276458225552287151001303185969580379918788455508361507745627663983815306164862214625856099644458602281679088454118609730284567038463817195171121707895225758456513018976342780580045688790281691984416479025863931074668859520218357563133019228323865756824351024996569246820673094878110833862487621223913692864932529736151559245450673829116161730180993833623754294315023538543442676137280010053998117342220519805102349687012662730379576714862590324907927063037301618891797415694341749042892361367139254826699332873835785609116643088632829752488016776046698172087582717279953827160957434334852844359782153115623421081353864908598423820433879431072619619705247365025460789071338500488312369890650285038393370293147860032332745614130614372384298674926581688697839808232879955879387170316318218772191440255315484184087013493287952682682712797319703953034465696133053659735408224974286653376522433526111818215753820927170563453197699097940902166119277370642332367365847998302858574515230371465273431348304867619665753054460597973871077775540035882290460541331053065642892700007644218413172269910144871608260051886899719033425229353133441777218248364644562979854882536114234959432860494252149816590760356587139663184426067613578071749190372835363688883623692898653848200066530211155778692266053705177166354440644739004277200419032539547076672348785385498419180773645592586697642600269314328317099169859017113430408069969520151864855273936126471738755933588596113069557064946875852576262803106942452302695736356575422523162002257417373155410790609001393661862832944133493412218263250976412028689262136453658121442696110021710760457600377151602540893726224546401425261477134105291466937326827201961717677834165366404202353410518266375345671845715850652815909100647149407058027779216284990418074103347559932695049196116852412427135655815261792961767371622197277756987362646437598921713646865095317683729428330100958460743332496747618800123730226769701256346057111657620761105008767279031098330962968554602252940281163295094677543995766446206582225361780394719781826646870148579834197839012837392544701286133204136516704406287012581310864846121096720346365217875501952139067552578817804431751201742079213865223127716853835658785166000318854943386672585232935300710111615964700510021919881933803452880555628730025428760913943037291057598050407482866862659286019216841965648801717751262042807992070527345773793606323739979445810775278389011584612513784399445243922299273004983848042813268438435338949839057738122109821719979243531836666938159244316104432752760701820339960685161152618665260730770943390408541091125667626169029400757208687208420527020368092393148861417929848329610215844633288794088211253426562436480791890492144518010226666936168092160798743102630157085455028644485390850330090244801480712191396538706308927134485612890254707889624946288978899246625357740707035149258955920991769049133471735615866528250452034074077635401639067899386727183619536190279365985278014095884750464647185506211851333521717537998931814459555379586600529670275800212313773874755857790289142777310746421894915500692602159492664955778214046133858887155232955846162853208700968564126903585315477226730559714191229019125881229426578405131075459589422411613819771274832897974969724785722209393703331917156462097534984719369523807726682529550360652071816937393775418295421216069874138440311150035773993116612795239198841405269935290580542332033748086369460760336860991573626668810283300736650913835988837678947043659962452173054921837680615090421579774598248911407679853122281379182534454421204939045376754111610475181319607009545032119490188564716606675151172742730717207850411575512490353046060244761706564436452013169455906379300492428160824664050003518525103052919340127301698233396743318117262976714159202803787230173941917770907264895796606949416070357830761320098845863359466888290896887569153122073458673950678794831916619174333722328450177731159812388130172730362915957508421871223935569115882045230767709335487817346640880678377918099014633957056800669748905614784456577041485402242775063279532074088622239964210467371229372822441668159473079741224664656011589539011220501812114257879090501704929908826944525924044105821711160487303455378057157962364295584901061466955086314806486316771488868461568131563320518891419968910590545581036262496854906495783328957629726197459592011713426329382720168047581397159125757257505152253771522820691166686717159397922765983336592031073388889697929570937479110483352482847881854930602599264957616598301920181753798795601599591497408992742958987799069665167677293868967775997549281581550328303918449616740483625182893040404458089981324920464915059721428273765836297451302267220086646829263558537412880099141941770318363411807322117850150008143031467903159810504990508013149122952754576945427893971639193462905474942653237125046347779656448118897185991408549631093267555564506530522497112817636116669274912299639418753710261057589635633438436758593165004178093577715253420332174143916224039400181652349102981180580323671601897187486596133987359810017557584841407831739107061512839348059661886553481612050864741155742212364899224916809367560169321723877751391039647810204395961676344682823191937781786827541213728823281104954648929877228691963714169816084718131910675990416763418067038713161070118099139802895702957366974705385187990407819284580342411733226069467837404545681616740369755540847825378604845378999065189871853495729677646252264327971035666489273084150684067123969909167476976647015413329734343035001685574322489206250252961361894788043210289782191838065275894906402407862551617247397380761172675008468119883146161660666964659381767824719585725764419221577092449428376152683713236293915858517812676429197959284181899083879140247692143128835338826490368251679357761119561624427143937310853075106693920986742405970261685828198674667348904611378445091928735953897040616260118518380316565458910793035158793056259288383860861353101462825231529067228480790938940081945875310190977082008506748386361955990713310627585745844288012025908750337554586529609168660472387852351506972936955849795017886365797145025961962810254601515791678721857686108030933537376916637031029133129218370723146663479112003521368031798627980855066665075991890291052060933225743596313572790263369427775482567012987228953416923887505109680374774050035927142278777303756315982180931432098518414768578528022235370454328911164148745804554435949690104767785369501074628983873334495403498125511334169251991293185870915510644894337619352044914250930015775999937409726525410517561833049509047216372808721308227133285735635502613528622800345248963609614017158963878448371693149091489209025350100058681157114508962946929330940228563296214132632227400234996509489100621701774632322720066458906101278910899630955881024653937662616620542381220427403273256647784016313124208638891061412006094728263092069107604231431950021539191872324948904903203429348462382854591523051996099576326323128148590190763123720708866350031094975965491105969472939503850113643771294650735649098504030707856662344606457774289637410105825819180211008490304576450903729064074188665380320913727029873509625019098763576225705728166095980639478276291594598372247260519965507539126265005562956205485991151116331581257715664164320338623255151256125876004547992391618198997786767683789581942802858212149807190638335943858888698881075755383176018205484073340492363228027486374965142872333034475901637199332339341014093443154527671755175515219935696493836074859366383664439631850215049462575876568180071031219237679049718045060052229277930892394068458454649153149937184232555059946028914723086806575922692549325670506355869135941467501414065435722473561275117687948204464859524469869249399188594627705575917425466211734009901011856245454734988192539170178708148881605751832706987800084469649986660453894181284903462503379022092720050740327243595378870534590652865630402232079116202720269707975755190489427724387491224014860574113418742635312102427142541352777624092984787433670445018214157688208582583303515916931803609437927354129645810616454257799495606509241472474925667194397983272433189193317185898639796028726246246686782819732417739807131916508749857536992446265676270396966939060409617306038284543707316127290492324135053371068139775937361906375213188045148817909829955905148588108743736200610698972607313028731171408283499907806650274253006164354743825166438626264998410639610965199024935726917578350324267587272513432665289867846097232739667150294161060203827199893990353833892448868263203723731447700250481447032163884558746665236438785147350468962882404533385025685227418055517189541405755955188026765106523277962294797810626016838474428839278536161000192990443347304191481607416134988243395897510031784922725412365849898729323528551199762140265493916745495858265534166873677001942626305841255483730768726630011161384900227856518540320145484013032584957829528457257923781758519861571383186385319141866328533901379567027958257259636320129394619307729998906595031964058543864873692423952359740369826760212481950658229514967167850209486542505167551415017515138747932552000904845639876170005717996252237288689322259081761650167785001808079020223423887152986330470549638048542727014337978976720433555364523227119386510188543693433471248484839446239107891872061833200896253868415032760826574455579245902248408415142395058972344310214527996428442298200331917263032661469867275279586306443289518090971930704608106748573200077176466739751471849597180002350629167797973014917999723796888898306575110922557811068840346015320034604987982248528224853531587525099809428931880741474057019945498067768892185976928436387554750316939853817813494349007117682379659723006104023016814730937098767838289112422695634552870153137926769116203590574680444591347495564419960768685619182449010636489485070474019980446095576331240146541942158175057379362996293267393555374261921000328607754514294753622132768285032165624755920387325498672875341162566798302473708719499896203668810236046936101005038890364011290389979150374053147262076658537911918221615962262281400705976894845383538719263634135343916394682258064558506412508426988647657086836350643617057229251526675109597507242316719350166236216908467097814438334896520259705006580060696346254672248594944372542502545759691982551808278956999899892113099606883156465643671906417916714825360617496702758020955163146757911027279190014121589499057233055345951216549148432866819380507310205365348170447346194998400415023657952574870067009379643431225640999407647188618264868800104107421644606444666012586781283956249395369581272572398062681083676193126179632725178278005015401637321817263504416352359277722390055610853974650314950032916478598444343986379471162289888955269606740239537761077347988931139771388792473787134965811439897880017647523299074122640293790175981333080667419353669498939500946632971523152819560517753198686680165720643013674338187411376915594949462453765937517161137531703868521888908638715848994651625526287987802169289951321758627188183678413852013228738509930486534358902972319713455243260984512005705298751710437537802930654316098614954673014439803836740104041237851671588825784411677380881183484199945801887096950435430454928494322459147444472969185061465737940947124905181921334907114395982018423233663359646042466336864492595545404646614184919030516732413699028094852456397771563903322090464139798064898808254648076868087703077625750109039106202020434599725862877210472679846303083356052145838608002168980722814128115550754106451624942631076207847828336914545650555254045147893003253692704927460316985912568686674695893937484223602649015571129795036659424672877625192717987400591295748456666029664938507789724579698517018558506938323502160523066070126705109212469934973532192644085319796324116796751647050920496681136068524904608088670105128038634883964683674973190810326525221667312857992044330255120083525309476184142070270975724015066437660256005242279200579089626870011641921265120844390990669473279402898203350506324557836558632852954625245169249418260822840757973225041395820052664781575321473768906773454912395834536976359879101101881000011810161181476249796294689973775609442755691118059229816884096109712938777622258299879635760448460222437694081931572377089996649202603781967995181404206875387746163929292462641545791853501438050153571702186015922710110835887423240975118369825323658691890902183407101216537469087859737470992764827409298847436187114530821814856913742318842362890724486428030421826218811564262071326459435820004394811548843453958572302133637957653572092610614404961094264619876018395696536305036820938528607071981398060254795267739985916958618661692241346480711204107384589901211353027805076014690456664846012346236495182306351930452272978505457855234695789796614335106015073593224957745616099595402516649225733889017154307278222673082875624805319997565883134344622515996231890198935647728806487612900294410454813422165307822423311564444778336449047734732674929310507706342657611992510892258305338284933519498217596949331120201094065973420527792218706642829802839020156946667368054843807642666225622358311963731198823447653838465671795011736828905620463110396375118139312702351093108447347417394229511737721040290654612021321712757388515009451502168688259126415437095765579414570353632866747066495978596277142868935397617313545866307071684952031897254948349125619955332991939277037784373572704866196025859822035426997528882412284493728594007223777749049818247042380117390425471940793784085104533823069175678065334846372931633644282774514551354998487866898271976307855138207112710589931799579317044147092473186463717517156456091903756891053451258033145837987899239909875725308090097361127485551604462130861630622999623167858239743671906497293620322344650867555457950460439238170933801236436803603984423156922698081748648185498096521937947035559286123356182855487951266748344008647950335129154378170579049801989912183453986776014811198174348320272713372308454201288992370426734250128391955405742754108698870760653622277308308653548565880916352612405752382010134040595815891803515455682091845939342542049419903224773287301459489880479359081830109115037693321024744306418137209530947659036097781750304672431426127713592889113631114278961120937056677733543357994797878791327233722636241887530423444275524668845872333577794742232777443190135493596935585282185099345415665768324066056994411104393554600753518350824845673044956763578751312950724920187468676021513698632742915980535655921796075133730176464607786940946318534550679643478703441064354481696655016965583636418336941496821969768610745322824773203358651633277671769572090325269489951936659263806451610366352769407052444293445966082906093822592461230859684534495496118011546338039438950308812098071273311688049578900821830618687033952395347730275579542167353632983431461778934272110750675130069971984754791085045491709674548621547236426482466391391391540834511545483582861140777169188920086958241705073239303905851146199117843014553770944735193497040566494051412198832486672266069605294989127384956739197245796341830628111289996752081784170065173404607270299856679606481830552708450013599810591029257539126781046048172178979670526667696452199087057120483426123076658584080666662165448820603776552320947367912045054065126862511372645405490736952333749825223452417791556616626458895097422997034799526350614535778875411895872967412209114973527084290700431359510402541389925128371613704184076803489856991842787034521566027063209904241264138381794722978847246291327977938248540944848347837167183195306167604015122374898954205954057459518236360089185868974795279993734937111273510463428407048024716986300492385600719973605421740902684841840100731842502154385177635908121798001038863628931304282119454076273574342765176662374203688614497291275736351425060874189330081989590657949628383572521330426174795299868482531274028665794330677721483335497029253872360232229625519760937686075132597752185676427511397376740696813202744691033946190507704864927556181885880143307387841225981200920750885922479563510421648650888201237042946332491325828409620603007775150505654006102230683526574222546354539723956682050716922359064165965596540352760723873146358808504993453921342889681925426932066335008060589145871699053265794077081081548273212382557939925659223763481581369485519373752877938585281782020800580708499265769899004392926994468033355518382419200949138811098064236219563713986600417458309473964626462527911047363005165375878302986012184799301328584711480164514853633167049498138634140587223828893115398891563531696209131128784383964125406359023996487912654384867590402546128549149218482172277244160083712629213696493467026613119180238080740159108005070968587007579554583857683499027419121146915896739494883169364614050554874593440854605945151897108672749834103071943781409392601201641721671755432985846612746191494756308662115434741730573392677206369501176082316163740189265621540503088873671912862038321603368358687526201026104631550928432805156200858912242436268208216464327560062415829533089692835155428261507160361973989153341264438231242842949030457999878185322204846480030506918199405487822562450465121246958912381274072604797848862883870893379685466804037498926487211966142432605854359132566285735281071871037656875373517388291216842682702932705359736457895774426055331295203549735662601073040681349931745732429324473788801743389618556913940070939609284310703111786030760659025326319840061503377543476207342253513471844391877858428781066604859948984314563980252718212946714081474771662081573898442981737064443280002629523622586684705736646350372279586246256032460530417395358790900727758936996130786304409103009145133733034883191852718039713526346569944014893016460270416059267635197914233294452080223038557952242343472977341464688970555137259272721273979052941681886014682827538748586529833137416964415076060475961615037383786166229837644449199503708315247540378226169156954149643962867875243205068446049945192516785107518360547354281210159359699671295209545465769930120163363916957182469218178139443354230889887223675044335506586729647546386956025539199996074978494751310353740528457811893591980590966479478570995494306893734800212264221732400142983715351330215474792978328283215491984822008319847680018852849795215213814532672146701043510995428436759925513871916665110452891092632024392656731245493009464703932998150373909406867964818018476960700427784671466761771123186794181088352335787004407797882896461202505092180113284810686589588471098244810162336260394924833602140399297607784681506272319016522558284569398915482121633913678186660318778904506266404231905585505138737408964878105634573572066140100616087763991302749449403307155698286184898541592788234665900093574442754910773727027291422349357617098668449460821966493955748599447650774428479444998714841156986595758298067016618710000703219674591454517422713417146065887236084701802625089960832475721468459463785019556363214922217821515732148432728680164573029421637108726259642550199674610428068327532466763711551091162262965791879064654739036764275608236211386297340833690424800190314856840719476872658497468011063132184376233618182882883413768311002322720666191086311721378338829132010905044780412546560432889105567257483944357214339849335213155532876207065080034093347393765981288591263488231883344284615999079125665759115736227101648424412815487120066462507839189207112854353126630247143908858104152898311628327494156408736112114985353700164122951639997319140708191603782626299108024375941627285254464978091535237770106266989035609851080811321678478778002528154050487711818916046213300325389931377326285768389044015324320893837492575338851465285655674582457630313286108080651215563804192956576570540706412760793977981942814871751255733228727153324288923279804705496411554341067929819763294526468145143368769198423338161057489953183689593601097616093154982594426674542319929511250014259149606394279328908969367766840688546584535086801861664203551109938522228305501659293107646747535247408881228083527532333788305430900611093735913229824918606271634536468009130489242469082920884773692374187391512795445004162193823039241695544873839736362031702066030269624553168864849990434508016997750523952138204860521282860311750875296720096545924220543966841070902500386838345490190981732237331607719533714943781420800345246995979027281961250924245773340248178536421486505856569220535234188911569005283675318192375173505272283211912519482877439056876139479361185134893546124315238694353203455279078383582564030484619090337977265132769382367737113967749955217895088603132199673386058982503047506984699804770545052174783815385912670469130516778033360094957495221907224983097154481542686382129271656928487684637933641851558568482504943768645245952697983919928665008669041864049628311746298984667406044211991294660683025538440111560343034530914301361405396236960848105949656208080664361052560874428347906020153002374381345587161125847310054621854384083871703968863986784994024642034118814108767448269690741903790813451167984693756531808483261360257174701234129473875651680933376451486483030506100628912927189449604805037667258509207357535314801944667814645551676326551469059108116884980568472949884458929584918138167859796577904755107708788784548224651672862714541726485545470657708620429982424617737277459912570421553839727230194603391774595164264817889512713712838337496454956895251282416068408004130463435504140968506182376666181918010340690924439458586942324926705331621015936820446318244531595491714450564042301526551471529116987271461264006076902073273616781718262204920426199794655615808570458690868372387540257334335661336071156391789531243391468689354679366206292020688954307024398089099298905467321686792235123257005857421037221069688275113734682930849191585057740292631140114553403433532942462055218384194114024937650998554358327097165484184900657380969835340414647500708176359312404012902837379849982030474806952597432471946751781868574033113788484444529816641458651266134828105672789002916971431102505445768322627392947658827459997189233182293217284987107865602738904455500462934853891665340578123596226703894785108507306815252151927912703008497354872601911227587902185694747530104530818509804265540784432602796197898677891632004657313012150173635988987482269892767444251269094969320019753851177973472203049260813384661857667691966142598966359729399357912095389963163231442394216461728983048522121505857117700465352373434553877317286465220642120731661690145400028603219594162911892837576126875938790955141321812964437333823220878478323677924570122598806757565546547517546607566618514812434637428241593010152791079263678492791584939318937288863058137862835651354609260992141312064160786081066004005606157763526096119722981260667466885081691646706067833870341437267931441857983923191011753325271474382807472492885665769363376397202536257562626803714829513606188553506146681224882534083192005885253087463066854619965130463417075573535451920631053488237312681482938790248253593594969742242619040547120991015218356329379749767682501144990355812053888413130103126290156487949152928514438804794179883616064335431015875609979141761538396460214088894608634299439698660408135460720803948857822129673785113822546936372499302505155287520827550625558238039106974568852718110001503311972493452449527835256924193380797782552834499132957216260478867910525751981510400966419588008329727514884061178510630422168995477540237089115036746543556629472965299172962277012015114564543895743207832903923422348937376300766130265937031605692080400799850889907235920214200548700965938310415153821823772414539430865837644410222647249064346694837305747603276220489545361116345548499318877582308128786455237383556587683810116122232415663576918726411207481310599923347624034708330413752038462719900797367146925944553627590257687390550101590134432080760449891342952267571807504792461143763071345259386969515286288985587428022546379913530326844548338470253616076247625520715018519542300157988497017123615331869982447881706577083981186214335551158274732986742721620300868928597039577036113533094019649028514228466565594550189366525886130115964994367374465077700995569716984759427909868483806670617413239518869533549528126889659247194196384624175197557397833942447487029625629264254159244494335749628255160260324688348889191445507794823348932225233629252068667016577389512896725535367059893598074180222091475998928470878986742748025903036253885777164640666070233875573406464858918315810991226078746326598175751865495377952638158351707494113719772132321059920160602309151399048187977031743929416475624631380049184859660671142568592164158329464132246807222104560940718081228183233627243295255420860477298588365572128423951568755775985119067993040515712346925101609302894295249835270451504991745598447172638467000243576107687400571622652923567501530641608589334647923360484093682578567415107200261064792784184662871483176471614102048756958537677103468275786900632017893028128865383152844001676654476452472877120726357993107368351688243020294035129201748393118040995785321312584687608050223804865846162616259250606355764168948378537476869541054006077554474375903539686870625616564830276174708350241849940656262286393462397111751450363949500648760824386184353814504105373257249406247576988299521816037977665661241357024000915982493224284700520609351154013759589382324453866254653416805445294482835190504593451448824991719205628478479233486604850631701536174937252652286738969760239673509298580302789359150120407957294162244049141017939135857699591452767189372542292882720790087058223285616393682176798738150888794219561090149043729728808827085307207250790906437543154219366520062107708212230834652325959948705982048175914538534544319584894469392429175293033498587921990386583058476257074774681204853478657546118793568116616143352685231874153317191703666387449862438651013943274496708609428287231693082444185121024396581199895927978689241947364054639540690308865738936194353179644073394161076390375845574615775401878201030263366842156869444021695960408996170142203549618675151129137037234777796981454793994489824380123660053808611687932393648235003464763678747834927577701552023687232189529303769865792390057679656484102922079490410241231078433561192389357419111996818238642408766488817420427715378867669570836050567483855668205309469846238133450258993078973981076482116546453601358500168943779971185714472612288190423852932241215843748616121066567952174193494196747906756394261284235091235002654588336572567921377834604192277316012795198232774028927832041853474509978572419310733794591677733595786166585258223837631885917194020556667644927841472372699917213740392469103285992319905919685372813371161973422867877882729211916605184368422282258886917373543650314010199849817920485605311960318325846632508248602397571897810534847559326092691130340349288300292709039949872755774767382889688284614927951122464336174698966219822662747877431759172211543452577542623062766418456944207444968007190429788380650329202676141934783434501471949733312725301437802473561986674288740956810738010028949062015640531087166340282079053460343281924818734928518795817876198318315422423536495539345308005579323656315632556637389197996601677407705658136443857188109980901016209060956114552479395983573538114108558814057261345329311548752341004899545241685685392548739391504175256394564535143977560116770688089478507685001360380387208968985471321247305350800681118213490673955114365171961094702678050627389352309050818723818741835323845819669813171642465580370109968455288030683761106570885973204070554163680635483637647195152814354877547644617806748880605773566874547032966007363190770940010612415704058736603797670165580789039168994277692108974013341716604772176878979367997852777964152878158524880272542440412279779120420667519330214733644363979025036942158065117230641186796555521087688829038068176749025347057721912587058066640982282526636039388285843326075501054407906911641742738449620716225870577632527847106130993269210423434165887717867650688833549941890769478185438849413479925752370160019880794482159032046374706676573376858447840731646673983508925486525749817159752859457298375948232327945952755901500671318126151146399002925565159137447604532040333531762670555919960762752109184915502039496170169198602487593385972930883847961014248587729844989904974334709248688352819349679504978038442056130091390284533977557883621819067124477709089493093570866108646698752843739229222847340396608360530197440990032555381177626294616246066102725900847656479426297859514419863882413645666027800690736507015263436816261974530137135853690326368386795248828238867452825770736064358037963503104351955003616398471068791037321617177291327697922524718857665708199418257865222958261580545926143260974518857428611220008661053019189979982100167105484800084603746696119106796334298791777484088642228551403853345491317530965502094571962411686967098201293824678854592814172479417676947078784193980765029743626709156735219259798859581254438625727202396722844374375351191467926008343082807188573464331865317594056903868527225603178335593337023962295213697506463342059063328004301210220834354226838167447155729321339237416465868234411987226750453885440692217034140135142703358113107286936053436649709592068722379089600421781525921363746471146952401492532985905068501613613695621656825297992848729666963202514725084703312264265107308608315154931142944815197421596971024266886164219366234450025113217766542241002212364602653929903546699131908946214739761114178374374947841630120116286492849112231893812065947436962123206165517181803576259088076778619289532951671345284094166617040501891986031515165140036723766889573924096104026249342494035091668404345238023962075265102229217701642372426355222555562196687416836873137213366528177260790687416205184217270258245048775285573677094707930460356577703244539626566368308734381350482098011877387507457589801091669230582525990323057551961884987218198879220500528116329018304673895872519592744988246194360108796709961145604255906082049492172021689185242665335122410557742060246987802723773954329082329254591461191392390200078159529500603932734710897299868982740356956489523949128397747005976499609462874875524979698780321410445738318489586502599907596235686055921950109569351997470437693166825365031259885637176481855870135408183214809556259456941265080916503191314388687832124436615567393761700275667894278980813127497544603379140977474195024385937608847096917727345855775553591030357412113149577223767616114965279143225722586613467906859923503193735327519126707222464368662981795760357162188857967783705466451457994449275228092167064613903596326057420193886499503343353353695244422653355192363393178447192499347641826132412910300852157954772056543802132605204431699984086262921224674013371741892477828054708465675598319875409485374766377030211439413792727643980363270643324989068812741377928231085453824611280622885866011855443151104603436923332619581738077784365254642374674247092020017929548487000401581420645971467184954173229255050917410563063981709795109190431630659714538116905928768562113985988250947594030702861724223519561499339356261095480340694313175940036745396506868473440380959595757534946778221052066927412881459895605388323893402246904657824421419330123383076051204324880029630624384140632154101172222771452232122520734703213231791434651423264526729567317525178594934465661227773160330188630881150597778650354749191358105924059432724422889420881870346510373443189587520995322068581751278399616325716590196682438658732418874314172691240854544265529882156066357706748338228344461833633858093562038553821886054779607983350221774698147753569658606694293060694768987993631440466136150898323051421523398449014324108818391269056772924883054445412414014225817269064635528056230247749331636889664700392837828818009917703234441289021110488439685760162584418465440673868709591114952723590216928478593551193487239402655406077770519290734044345865422110884187292399139422702611476063859808197402615715078717395487917938929748320055937749022232605735695288889827028791283142286373913867071211496861062797941090904147912324730345200487915404737795249397193886344177578108399335680153236910239061969339591600122908137829491865275166758039689173349448127306517846584063376218879912355283876712022716748222624505788987944992261084334225296268674654384252718484571281023035389890086707142874271605436282534011450233113133170021780747124947895400594042683441520326214440252760509729969325420340042743034620278842103595250510595892135967509330085907390866693986982304364715920531610767815173076659110308195702284752783536156315865972832403761479217715796973752182953154724473816219138618758991925601379810938470251474392111564777718704803145720730723029163710906981181171729907900075849898270954289859303550910614748315310646066695583652115229388062956662882969088438198899006838179913881263472123072292307284585349464655714889559767076283801757507794068057939611690597229849463018325685280017747898322189191187506176779854120254308196903935677311996965543556880714637714044204131866101399906841496808831835280200850798595026601464214511180166602066772504837778469662874408233011897424550823372534435608655524745040719183988862475818198334731846993363293957487339480160180694107854473102852795445500290645317345190780780127696217251576990237947814640794017884107011080115398249541604094001325221641318377781718970078082578186710670303764813477681928194129139990386349811805579205251565109834751205459522537334923677376148179383944009133669871038378798002638463519163853467968540601634727597545112248062108048198211648559310923045433495412712238047775736230036893076675533089065403967385631233204128038908056376273090796343915868423157256637885028883585815150398683067875032197014074296337529760830303894851811148237776930047080915765133721509597679612433219891712661369656757018916848825603275938174626497398636700462260981920854380628096814744041884909443211466735223832997082316972762700835881260563549160867272920112177871312256590502980674561747100907429396265493497834871921267539032044252725536164312353455193239802886716902723848134293059513937907498323065833134145126799113925836527617192319883980012988138643023599826157295021621758077553972464349460216479234920058729397146564990342629426378759933688137182207857748156058248507215663703559023825115483946084614111649267093922747432688534167197680274841926903972709533182348589797008246068807664718812252073007947940550756039280327187693088482362819397193486082618246709351808459768908679520992974785406968476111369040768006704059160706328520042646869425440639745264617671879602885284115256476909998803921219619245204848132136640952725602134775142503999389981695552731781422083057418393528448719422713655137154825502258856562094099843515717547590681801436225319365226028056108855771971343579207446578037024261052609654543013031026181465787888633547970767342778422216777630578656247709973758758748752259304348671917272032344976964844650012909402791639999455452776718035718337539962763315890199772601077290699672134114247838604806509565477517205669630096602742720049424569190517029833805641606358162012338485560417542083548404507355204124834788087970075372141645287586460499092513031342604701838183796388439827042419052996035634382296303545330449339138420876652128131991053471372311865643111512868328388747609577645745156134790186863899858232845124431421425293342912039654820545391791713257078637383538987409639957786575373511626427474406435335650284133613944162729413024366817124361905389966264086089447955433856105453632539866162647646828313691638053488537683049381956710663837292906213675136317240545980136499214942201712280866240069479564100947303338362632259982541506394689205088139337863979798810404247975447908575455813340457954294601693116640889645389226144184519465657630662535776225123833991186604042901475642370613325060006929774138621079300373643262320277164841808726954617461036635170798688248369990200364119541194072855189036476704155511160534139702250391786063663068028378966208141317570173874882703231588409057694982568008424070046742618342025946405046180967159475770713311308212431479604564232089271327038778465872183264205045766569590909135696427400136894176330504201951355454099261600502077026116382806636845163820820727951801020577773196253629628058224055714204765926460297214741592674983377168438543677492890580238492739750795190031118913342850853280170049313256015509362692121597131741200969042910923927369878525735118485755307444384891472997339589871935533971490019577352951208716703246955195397577395692608274321145109975058936799412450331974013194370279450925828232970067663330590285246008248988143377447002614471151117355310697612340799685408367635082464762579025520008618500002286404259564980810600444618670465568537252797681917701547260100178320659369772205999928284907459857958355251549312551202672845703153042450451274428567802569531794324611664289830626478211256190596738534867985135082107852281790957687436769578362494428349055846500821070011276019097344700423012110564187401899866352171476546148809119755696126469967923815489794913219628345589420307950388395144720697818244119704274120190267336597895766510564787872700266326424661292377615678316213823194068432810427845626935813320306103177977750619317876348792115771949313481693044084408663154045515969191691556878140448118136987410598478477107579610159743113599170091051918886915099784662309385976311591608229444003578198617244250394866401983113553369859942069952860924318104600994799448412253692842745009597962090234068204512490381159469427541164115504791852606076224838662756833311855317555296221550897351780012895561877303156672249130829102877861038723033452396140159115233602767441734313948919568950478996857945435104725245984859034919735235113772434147263488216415012408670845563824257832219521988638221737304437370608056280326793183160009441981386122061855311994252237469657572291587758698700901695351793304379094600750929049722312649770529154873528599438001103906862397278512213534084001343631300628860105579272152901898996326356286045135918905982577579352938198890963033908996640282772930220233468555071854192091033284689138734751406655972256841372358613200669219859388543942453006330616510162455945708806294166165212132052259795672501152576254629476728760951255457934629505036650187508222752121862653074253467626257553872275796900373810892591040363041572023001161517020222574617940301515535708820300283597212425142781972170190529417349607383563349807902192152610384617113320843006503229147465919377646563267788288795731234566798569719337317782905015503040659760210017174279767037833568857465967645948011838179738657555107844577264804615528516184377321562973439419608085411275026851164984943127257110348609682107409355032874089302483247329687466869834460246762587601188289114538439060980175513716977620698244078250091410717961982300126252704308939015340535954237950944477767916397386979492479492028545692314848896695734796619081850824691233979943212294906446186158781065526682788806295652119877692570950759572998034425631446782469747202289617701173632762416813925600007768023460534495018493964374938177644953703822970660895348201887286712374269445962456782341612319497564902921220091283879442267155981511498336512726765360795053196947906728339193058211529167160188176657416388325070242983486081969170001382442786612385223190715052427889715983428235762232758896107152455342715955334219911067255290307529049913905628545265551468132466057577584607896891984092392339753211391033994765020659162822654928524611000762729600531120380197691668034711817724747675190069110378649057435369923327327984719348502644030251586435333430408917482959210591210898283472064772072609526460410720717885501878321136090028488955135865499785434596060543709139292283576795385384340023339707300989972974927984885665193637334965468256198590269250310256218370238805413048748517506537329422478194976569807794823213735524434670205369544515821049626576751566322165776007439501089359008781930782486210604660113399897893465154112504925997267297217797066048721472250689261504216645724104106718981487616897982534856706615797709229135440819141078429703484861133829279225268823379866133338546998404063395922853291404475513623778204126962447637628488916339194556281149287408276781340532487098227871217376519621453347808460552310376437116729783849886554864385063479188291321126840537492511872460318239850565210285815384570804601424842292479785568384552189848192436715668625449023436945311117751755214492074996673194696216173150140733238384229810720979862592935051154681397020481222068831355907161627234216185840118153620579628055901929486160212385625184865426996040162783663186628818729153668799721173363586612795530636741519679660770594646830451822237173649304366421354602460592338881296656537548141970060016639253646596018075648657456210784639198125782830893817766362963729991872737035428118681909295349319529917327393818459082908275775130042131398251357613439876016474837861914151112923975347498463093430597136517810523510876285064864878640202837616206796575906594884411714877358614739545996658226002622593308218784017956064416587420239673418483180278101523353287099965375485489493130122506547690560008558723198531121240292754245847962552508985341801266175386381207878860740886029709040140981284068784937257663174220373360675603653448723297103757456527846357753642897674795927942555437358893162193496268286039419257416675293694769748606570742085515125148150840250368590046139052248518049943366969876732807147911430170387945856587290933549562124294391874647174639662405227145355331317631607109266049746643932724446510617830080840130188911867437016066242467953923871064555816586492088929088530119243468629835201738000164099289203897980435030143394008255277990028610310299483437937832931821587603697409306982970112608816188752528259621346934657961756371465030972029078379242360458275989930196652514810730257664577159681241593148258503178037882113224289656621172452982570457179490576172912357765953768681705784946582756496473283835342169407782472887316137051215071391834350029969956912012397551930003617350584568668115562578100899944792781244026760995102360713414244950120262286880155122782342913186669993293392650549945969472267680082430970712453406659530574023916788399750057561333136936526982341948930495078437825059036770890563020085980311788756566615619840621261383107465593863964018459532201044077132783491555639662403879022734724228645385264579568020464893496244404697953856849276395271154644941730307474759664934324539860700847256511550392994479028604874426876092345893777396890996604582905130454956109960816434429347804901960165087459788253465917653793355211322232958454616832862598725645619418605853054463058346705549545616454381478104684281556741403269919060286161643984457287051787022846804168345126938797023398950388894652832199991223915128478309257880754119230250704630653824696639103203886196150564086985629710631790582937929321534237388388358157169789481581927848962194957034916089199059656003238618484411671615767198038152518329854254001306744524514770448264035622276361925266710770071563322557592906222973158203595115859173259175912944818905588679238785927239135182962167741533124036858610649022153574090201539753943583678069101246899720667582404054030283120410825305076596768718627558608173088499185110064498339996875151645654412953494438750253252839208756029463741395391434537143851515879143982443949382388454055524340659859502888281240193812677682423775814434643151257669898557061571128126120381582999406661878377653802715881161507021888586266694209834770319302477627911780307277825565868624855656130195114703178935404242747511472815400573316980793843927568492532180064793244078544987992501844106150159718236443517267067334665942744363645335301827808779379497647646758742156095558656269534882692861511081538851105788495708800281739490610117212199902779056038058225254156085076070320276010146234147935118185209391147767539358249868441802335985463475148038362186017904585401180335495052033700240248803759285192009406076782700848677289268119014467598849657708229611091360991633277777608088520179219852010038966983937572430027335675759957313470927058500403485734625485115941970465715541891644287070241769140972681576635409383315261140479782844975587847199963989396624530540802625271132405679145176612032393774952240191597572276984019497251015768152035654400789234943592869917156804674037131116640919785046490164911757205955342007319934376269332024636456744106858483909627261402565356248339441429034586045195751247741968655841832822899443490045242656583989532925071193959025946399456973818574966574638462043864978921451397518943805606363012848259854858887679459338179633538251317043492477332440446224980153237140158041921188091392374994278961483200066684655494420245381091847727096553865329671488222768940873984549433192413721743480985572515865137895596787633909201712232626581379879757767395853236434976084882781909867421432460457975883187375892045548351679872404881652789183570075728049093752211095658676750217218083506448173470744939473531304495881790549854942015336200389967373812560746083411770269509900095092683468216982316518140381525693956917952793490528125534360600527951595646767311523719884119220260220338311832658259737668391519621918944227794492758867795580440816791510755395642481249437419929713075150225447052845208797247303610786808717881896814735526612682077670906761905632516714864932597110267752217204645841471569520298721506261550572874678181339520005690821289384593263543715570915555193902799038114647453342511682230833342133542811679866818877016948073991843799245669183795709515747765406986514563610406311407026507922761326620683100788648524603077713309940907533746379672852055654266338277969567940866102988811940346018390648315733727330408184477920028700772961549037758876764876554043970959291751133795138274341791510291446944977760336877045692597619856577758099317858599217010591010979402106112524614170829000532025355406858945553379823995257693734332301816859628988229144913260079486422626837843531723117824659160440275313151295342753320142983714464421714439276679535147704266644481029926092477326775317083170902907129436400353221562227594652764224135249221017300172522855965401243265897534336254327922584734262382293725032222354117062729908496408969050827284087923260580869802239911807461310941182968517346601148792461466887301278048152528637957672829294046838638674818823049681829331387902016211978785089065374647509333812227495557913078167813006943863360037298297108611898374752334522768714523638480466639785621334269140908975073690050040551625820710837775386292176929032218171370142647846591085043565193722359926868648464424124355490936208150373289569833774179743899897116668718631547524109022884870012116845128575465037776385630787814513343855149335761045453464250099233560054874002092862000828130834978570750171498198553502608280175889260357880935276090170093005867167666797794300040835125296474116652670971153739840241028026135853712429447553081953742149502699895980083853267697905180114213810371605958254677924919005204184197072884813569453062350797937228132368128272881430034736757066077684786521365541904743654790545909396889136940277955115944534157055913114792798178557862773917874781734657479572922584235007007362414665446386636096633691533898255056994275344025777295790497317075093463514752521557235170282454714809536398191084582853167289448222754109330849662971745796719539638932765621429158146805016124580293559587087663259837606770389480882575575663839470381371094439902342644565104078484528546940127736128670285784478941086201516911648152271435131867131872401040641512035778573890629151731398237278167967705114315601969004957919188362857428236087681798645849081040907643099111722989793392502329113276392929291705610276541737188257127915854132643729685994288045150923487056127326003919707041035025402788183440765519919223541030869230036106380290888619091370722967986018292352271854970526161602628120079182311012284260554573228016436827907076804299472544288825606968046030964365187217523858766615918533991032438093525262229343460282735797811319664306303452810286454188545654579873205962228918305554078709422942931189356723326059750061456303324459341674274068884158988519198619312597515491042171702705977487090334013063379810925061055454578343468893767855505962568551497932503810222309659242945409791805542369110045907353625240841596520552273659526966874940826492848401190231671600366075722679455837783143059262216194465305307276645522124577596061236802576813969065206665548502902211309333183224027777521813384354612885112761774922652128616317148646689010032255440119666951669545744002467618900163770441205473888476891275298293124539616551723818139463281991522412070646104872274304479185628859106673222440784163144584436677985105584056919675127407115225086653588942856270013209651530043214281106127861642155703735922950773651017543192534388684584948332399408730479467000283583391716350068477431480406584790212725377399391815131863823668183234922251058376159573473789250668602607230603163560054120343143337526224725217363730429037583958047894834909194953266902996067282995154228242069811830440356705405671628687440599541560047094807593966262627650488737418296308443500834162170222258488713176248394186657997916796060190421664401519459792925790826524347145650767773153575534581570810764530424942540634274980800079226515445697176735672365421719823141117603586998231435884504708325446873485675397370890132556092477061873873545514847430665909319321937461082044152743836385534871942821840164283811176715311942267113390239049894902756576370353936028841583261023124608223164814916108834611154936639396272100121758396941287857984129211633142734099192183081555664885521418298600620834960762184381252551372213322023266234811041441976434119530711834936749528574470371846448441290759171049303886319925176047470857574409857540061740228467596506546870805068531261670550833982098343762281097204832107870338187965675211495670833670001030839577285592627143518194494221903346708041211401317847632482227180527798074788886797480446742342284119599811944737652907228170825607835892950017305575733561549179956299157940169677558606252920167978139030727608000648632490994110503042526750507185329150278709605428353927465215120646045917250017796271532897868846639227787415404768229297549641243328645103004518106341461739292668389515650810876053525837670217862368127537524135434583789903724175177939282720834823946113050445727125522167150142800614681298130683007443397790435400010775925104575042862848007890305033791973481087546970143422950352428731275363672906667730311959578951381870009996479136405943218187961248812450155510794061710183947608079246224177878607764535468004981953347880157745302505363993466648851306054925961995170217921649799838655389647545145507001258667120613780276217874908151122243781294159076609120577166881036264488864439905973186941905049755955070524647507384451037300823469920924732656906130612005000734810067804169450162914476198949733647082755876184687411913597020361784313124735053308869183278861008601196780549500700918931458726144828429961925345534138087673871967712393088116419846710964862427723090719140102428237172488945481319975197038023700091654155195400502058894357924059610085037536396334234977572312960324920281219524113206908453874374951824159887453734599166111287026346429057067645343864101805461631661351883458763235654008861515303903727601476118525660456666954636291471919444488518147173062642927562769126329753319381766063197865189710669996487051508874954070929253300529455249608773909704751127609291187371008919363583532916061228837753733818246745450186193421317074188427511107037114693910436583296670384191094337704728128074878386318710871999700705793107322427155721431410141376645574201361626981053801024229735761049394429351051173397946353847942588294074240040242427593618513097913973350380939176723576825190828469767961087609979175040313008724264347316490991086396155757034216577766773682805845209287270286496079717080808232356624173060761578131377845948772195826373810226512203854184306911338656735258469423289881000061972221097124944834294100335403260262305008680722251189271452584386728941793939554051173711548613337199912125522053231080884793509656086146309051284138475871586032795647802886365401585211580169069671815802284815726494745002351800734211384905329534054414268323379444269088344408150725538415555765437700339481726635243004220572036077142274157314988668990385424668560668437593646592982701963049459819866977501861868338483499408392722948046657142540878973833781775987962511309131452605806652879536044138922919778760616906018379589592895417363776736363677293626790998424457267027891511213171427662849798820533148392429041644824448823201810044105472965158957643941299935042119423490799164242411920062413810167675742074490191461966677798517265446136086416973143402266825720816674880134432449723511188495626143688267364931225453622325203035308318450438753938741347319406100227045349554712490179428993946288155116454716188908623659639020657691474854901365167234209094265361302631471201138787372803399873602728787447994396570060456337174666819800927838747147404918925252072498793719301954240137574496563073136405460978952072315013096605598644681107624532492190871985444407927322313210935450884770288789724149628032597642207079661164703027437446846274418014513248921849435750846014576999784941758775625157455505459421820655355174280273689442960300896027866902056678280015830266474768446116150023274253449297592407166741221957880420390576026840010405074382617042668049672801871115749945428729735300147976915422960281022957169678051996954445594055471155021649781918377418443171215634762576152180760093349946545366529471000072119481288684384405499640882868419705237216853174233848264030751972676105872148534242721674167988054796760667560377626637339090445909257917427078625228016217188261437991510233501357936101127871210741025188278258880355203308399396981262212786333779280535638964586405509979428734735567876363395153233807330913834256829536238633218110649551715140173565537198794691140658145568930612647583149018443092517590886493891776055849745258037578115352682753986284933067040639131844663960220363571848192937757113943590184884276953217471379430359445857676183917311233606892509757160266714449947314475153399362170010666101446060364437290129767982792445152779764592768510350337110401511806322879906150306275221305305402403269810594805143670628869371628816892876141927079335420308966671785301985896845864463131910958143048256129877271315966926428981796537176327501841486006731793850349814211203967427817370135989063752828291300741571895339902281371372840766387737820894143145828281289535238214286176351569836126351717207437317696357436963372128695740888800176069269515527832031488877215089362595841337434184499691975853255010854142614257511999040770844379762941398025466299196865911753673331017060191922660412286871924437475628270507031378102789077211908264189145311302318397823046755623529058509184443125797942338135461493676324051128487059397035864853014257701571938839344991897376774974274942438282312476677890377726149044211279686128053654226920488196084725280861639518693725686833500720682447120725024817708662618800147080034696920893476670070282778851598638424851360438704464091392143803357193413170702532774165887430942167145098110833968386645600249389183939474884176904711331778962270170577534975510896014177801499681315721377931891750695232257513146183728005221970033207561332861599229523894329295450337754206758442530803763694427865499775199007653151658529472979257720661690955506449701228285727543006519411660880817520095659563796601623564985251741991608280222310907760916729045919718464607784285248980775827936141033655785682124302168219384671083106157708615510028393641373576894147976061548119342957451038209632458047827208029518130352673621736535267432945996952926589643408658150001923527608092152321383791054098671207010649740436950204068845407951373241178957665020411256697374010784521092751934690117630118360079803488471861617379498337006129836881903931815366188311027581450264074067660459992684712099926513233048270551744816270505887908570691933922650611464213809242363683387083850312125949696609094013075754553552320325168070290908863808043226852915283624368839368650871073588258154932703780113814119594956795081473877286545261745078959915792231287723387917889040012713365909067307481330765299389883488843840718474023317921538103494395798243215550406931657259105691816150019229094682697394524272586780385533405772573912264932373829860686732995786700383707484509425511183521181656625425865746867160398540927104207114111399842350027546217694487421362847866148414913743529806187440247867845463122880772666448638403228296703631220150257265630811812494255573398729858083528292948437342434304836580028024542260382069186100775910992217841929201432967442609442439825176657789436798336395883602811887667848421129768813558716236252619631990163396773433894203794546256222630378862766335115005017552935564443575204506708397664804522173861559421845765196156723696661470981858070092933373991010862330741882860858286108050244267020320192617674247803444281536657078310525232470881950374184193341496746257775716110801722786744424793486983479526101590235202941946927715080897446145258627557730524041538864402675227185972280041629844954402190854865484958960780341271486530836876099419958195808145269593475424943214725748728479788446244336357940987682393280485309670234850487616939650957826504115824260725517202347066452204307233998686823270366162117230017736736992271874625691209884473510516940122255937525228193489509809878155698507661828040735217628414675218439273412695002281345474231968585839200956073913317462473762945913246493112118825461193899874671970216509420331610781783070209661926630762556258317697806566809941032731832523959245584846610916732385543668643451700233910533446753112307615301557694066021976342357421407519881886346542816839623249913219553352618582974343345580431861072956328715827102953172257761724490106157031285862881264296526310510070243025053612714809649996743395653484921839288128604830081250454592315601290038618042973915188412477364349409214711278336325514665621230077954576781655242297087659414096609370810510992226547892240449253930297155689842495814048226789132022108291335205393647245924829043687253374399171196342886499509291148109677661514893172391126308333379335827736433190171382648701387521872832122520162743738940893701050584562814119131339933575778621783047904719042173954306322182053916481727560089555303272227592666232396887992591957574631348280858576730387619969854898363214154580662227368792090289775656497481902109736954566553717415346003313416726982544555196768082395741448449604647654926455989381494252225478096076097846673414038894780547407461785718835489522256835202749502168323140928196859202936221968521959953640009278271284223024297003357517501916707525671617849525193104970149136770865479418479640741515103800737579439758643199275743914190710318441517569360033832061710762899275230060117409989703252571938593307908650772568195835119504316203253470927701173999891287852972054879050195686922006208267829103750099608952975937128245210482445222560201306885121930702439824174639704035917190943731104266942878924253826659590718812638750302920544723524012848877434386976669634586489455858262085497288201714346765182732183634568842358393595782152281235800995325733129077132310331830206325672512584127236114515969497909027988265334059629607813634418498285629617227503632375978042481847946846296635553033812670690471466729812208258382560247025669209818299049392190215587631623608163224283718899189512593603367557446515446584349359425928231237456531844558217526464698282239394845567617728868136939540381801554544518877576590990804274747206242360609794918612113046489439074602384183560167600957598446816948048546687725319158172273788057897197406093577926630005913222665079766714001321745729708595750904011867712111301275558847939259492345394205438070333866307133628310368377194043006664297285187896957992539022021739557846805536662696052535144894594834481918203674864863461983242065480272913973828547370121536436478387507340076184775848903541109056723528669886944739507101569477134632050987665609109404323285729412876292645592668207231655161036070279374219315520274355360519250488383048611978601130225244500112335266373115270131023996207166358599848076012425725649837700395934359326019218020258326663317556707711975416793817775814924166133208563527944618257503145242111265774535242953935427460281949396342327089503803632952231401773051574437711103614767625595480106106006465643071284125250365862126723047532217796332907700890526105424639363870072490750639123171543419169864951712181808976209745900325630950903482733349276144660469412215018131431117127894872641321494486233317688073233207772501510907693026932407121012644579284561361930331399309990037831116961225771614689197299200794168446327512838600060337736872835909946341642777727641466571382709937529894014159705353731855394314438439111677436556866168768854702493597319808458294252911526229328777857713534936334188181340946122725035999521518624579402938122990361710373231714487200970007301951279692245112648863565542147979038214198955845712431028756562995409807880937326440715827480318781650405388000343097259501229710044226279764087114696363029155114466056663696133132996348996508512047419308573556477196736418332928674171577633448241383002352221957601245198635260682132184740564935932509394443985585400493458891399607860741629978144634503657771548605924126574307995952372907910794104522642705305406098402176360128402289476967795818549805486932357019206259120023783331298692946088523723641888829751057459795877312066873959552898699215581772543225489778761110903001835449137444600577477524019649728286857597045089005983447672298955989689020360527780069191662759714143759824475946940735319997684407945730826410310112494058949491889824714008549847823360271853641704167347744931060277854998268736006514334503108835191205332808163573565466973076655250305893160914178406478544649579240786231784721247374813795341252079558692024098649319161900675356663378077321332946133793179544522999167747926166280141814411348579396021346663085570787775471716675116342809972166672814565314339401522214866951800758200107216934559203628192447268421826695164291459227477940485713568956297000842109403227040185273894232424978284144243539802066924408795319900141864303536951880532741793037204760590979121174286606937947015510845292054678000357465966412582636251673773459032285170691380726024503826097329580851963238733468372660364897627261385654728193743230396215480154967730786883169790445661082434919308487016556505421855314876301566876918104380083563603223949154115182013214890309722255883261236713562256166661682477221699003717201423886246289890203726625836383452646944054087623559018546599184348983969816005266669886044516311171827638517023011559896579960213127082601085277260843557786177040167049097984253065207389530536037624987876511308720648293070232939090675721665722858375109063155914001312475493460299603641218683936758517373062813671919114646968616297541539674913776113206078296536479041255266429458196400372799918287374383753213367573384637659576994130408690467852121602779355660503272051217418142036586917215309429637858820442077525221977633480027974947665276937029566272844878915278367236959176121557462506524796439513061999636343549194446124792591135745006903318530697205644044044317040912258383664305890282042218850634178669538552385445373478574303253153706642080583591978599347939285941845260773004587757868007007282566193257869328079904839450121908423409105850974521465640094205916072928681901523480130509932900253273520473100212848650700387905394426005947934547168636039162442885164430033299480471623648910701454122934181107589978543508260863473492287842835818055194466415918508003560631673662725335644568366677877148596068765263705798633678080475564588193139410997313946157006988887276990648635537120998044466160683003293450455740211808898977604120916751868561055200058361848704290948386195527297409048573885509700220015407761621793135648856828681483695179597483077240500438136319833914015283687843669910974485734479836122847106651413563248425772192928140044785654046776469030012813108738115010942696521434673396812169770016904302306357291552985848000721290172026367546279052866905435306871970584887795224217208828249873000900911029783139299654794109937826409396568306797865633878869180818130045102059483345662268140749236698306550813222949991469464394041993722360192803309651921915744951506983933618232394830717368290666767668831090639179681698407387274874532727379284451073887554767946348895968623544910825325391629397886847408080884965461131033816872060735089568665407362090068434064598357277531673546072817380769603670928716502013494833716461514969105944124480696258770920057892402862751758036105642830884383304222332402612349250697162625877385169140105923619325708371130100146506342080017456994364379917189040409067598640218858097033694995304111229445631783124740367204955738287116741583681681451908533907231987275746991287359135889396131088458774027888461842913374908814267164364552040305181936427703189299980121864089292111550690918497535874790422040698722228856037326515202517648665798592602926693949891160778679527574409820726481689885183183087219718664731085446094343499215627076748219822870264425717738484165510160947520565571949421866111863719098428978409979648967344129170019528137450336401855018792677094774366862476222685071235815451416935880848781398437330047977629669688281227780116220852705599040292571156325096189458138928180773230430141728662784281087814980155845539233946919191643331629185741841831018628730091209708122227695008888844986303051847679682838910447779034995681267122330023732884492844148290346386462736577083101363605636710854002453917057788707005296067092883683373978383675094771354877006695731883037897814564623415019365934008165756524074556829270281524598149105468620157854484002568675252559500388507307115206108727963579216713895368651684579165879225344003207922866667106470759219209283489293738614200115870267686363515648415454354967436021582336798825923182007438005898201032403574650858495721088760829361684497309365421120485531141523973555964368043643186881531854180727767886502572539785168214246873593292512353233866534326928631346678712744014737677499658179649808905577534619330604584153228184855905306459837263825854343801329181246753224579086550765592543341955107699192018401459120137297657440771237197037767500425111413319649194156338647973884499434743946162078500018041525506654183757556642028828469636137411409612604518388624414717900630434144669884993315930899920393872769226112380920130110473196950100507472777919572985618082763942897811480022288762641255313051193957007214642867395355695505601329795739267512347273185316497011298474262943803110371752975459559193863711594202618935675286191041741081361032124728750487540390414023035152872061410575265363301230604168309829322426639385117838812608861080771728113196874214422425067380478854099241891413447659819940751394728653435629006250650136154770936879595727409967636202509698702509407639769414843767457904319014601866160114601960768364556157720194166776067474226491777229123152624765809846344469224696865844351666030757767700115215374455366133373771975019465522563093579955595972004902175683815406149321195732705844730422450933741235635529556187315776569709353750042300055313431275049861355481309997102638326077457510274643097838197804816861113172165079362570334270244019407209349293704212407701278230387760986892711339496844070317126609759375099694654811239116818344903039009479723196152468183133561687689267531488018451397701758909150539297263344443892908777609800526349061260640580211536120718767183521919470659491336716461705720374753288365542538085000567274081895497254971263789074622614897742993664004736104719066768246468095415399072346713545436385751272408807178953667780694143195260175541029422005494802003056966799160946260092704422248500278152537748276659018050836309721916330000861642038290740719967955227469375781484048847277591206010735460852938615365766037897003151982069368197758956646441716834228046871228281856866603709509183398801128883269763480419449440129192682048004116219849473164253864775173277219178739950606840045876410461329816906689180430258223558138465928069791970149868710531633471390349200805697947091539289465272193552873370422631058506054480771446071460042682567587806123885319971738164611759717590302620399364221888606995606671986485578997011899747281414210411376860763599725016003154323736144798011762608664847981571196096260273299772196362552844332835705406468256990525867016129772213452257117864981339266395409417085743103759545137689883347230203833647629715645115064679710464093814233607603269215243432757721936383720663471214717319072579981679575708311964002051432670917902329455435055974330731709322265408736456058500601288618059308478089326986668691201204754694566032161831071176851537522740746443262691498486407514795000872410337072816084956975133982016033887054994583075942601776366151407462290159186694544513110975882391935608347695069805124358727475226980612332140156428850620821837873228030093679124102423924380407181294262808329364685991261667272086335278778389788023473703085387860779535167760699400365542208805049922105357744596051009356514564192262391081240423951300475891661159989990200582417531056952358921842005974643533545505584422220254590061038548531880872052771760321323800843180256739332454872905163805583770729967843344282354886549332715310491794371482702048398501283532601102990626914507073704501766713120225165740798494623060753826014649368016316556942154137771593276342437664302834982478172210722015757334946296036672732162647567250212388513922084449213081270632615705311684306851884171767762581137182435741357396813003588899869679354389300552010576548260741816196073404339706554744404942615530760859540687472268019838749897783804269190241146528130422218246174967148070700132010591021561637367109354566148012832980397462513043092641618551011598233982297398115591042658919553817466564004432230288737408445980530566553935413468360012427250898709442924819239503474834377994797926735942213345467964452819489656216396663287898700434614736034088686775166474712230380883143813853290377795584188533305108005666656627418738559329393918942240821637535939209589596162674007470808694632509529721370492923368223846794364817033770977323006170252293657572407294222212990269028870132367764552790569852044091040572694509466210285380193143275004744763430288880501921367241900305410938597812084242726060046213339508993943769025899498171959094884496754131443860544560504609556088638549743379789458426539902753857481319312297309231881600110846912912643840614663615850280355702815774676631510319174451116082463697325940267565255142642278757843259687124764019276196686104091740764354873192999158218224518888296033797425248951128469121788748050055587670593526201040074048882397066206263622637265491469325920184829909294002032654197339639496801542344130056525189710252839570003450664866995631350266936673345808752143363139610352448407560946384888140373961446519825837155891516876467748623153726090519336834264500096310338144813813070170723100839660660887349235507886483134484311973972555994031065385254117593215280006071062237540819229390859242749393434110373176520037304201848516324271892052472485498223425782151572404775845952926702662984561996439029890065529537199280204583434197226458301504473201318704717980081255615226461378121492170611788225478476386736726114454135263151032612866283744699491472853507124748746070909800231541515821255799303008179483346594107023466248999852830711557780962859856699775478669888549517475876403484666297296753087170585523272899629101714395678171250802589902924982789052734428345532079673725950887690310518145509678691713496167357729146781542485665057817694539453706896762731864723116405597140510130377342791140934943683764949192979938432673105657675559491847357434852445170750869530479467538397323253578300729900536571281207984450880795758490047841741568597696999228624648888702792211548319937598268176534998586465031297838024948264771270378191307033903634864349407898725083530666892007789314723309513101219872570246881517033099953727042097228332175565762411043185078538456288746074538831695444452638795817171943979523566568644258858250605039094739185329667043326635958919999959642774877979152189859326879874382152369227950696573333237000901087587389132305493949797658897718052987305357370015904898087292209250565951408503779314598891118988746499351707908930262752127673515931957943045347055470698356348104048254077380150410832713173813627224793058037856703697779411506210252628839021578045110016165329426151374755523380483632782186620312131674674506106910498911363684729879980668322821596369166981298947342293640605226867588769523228151726993667369171709719217684057806130423743890079402681145527290437950463048171354873035456897813507980256437951539085680726726267906770577528293587459117847271194779472467593411455094230101976883632597033677947254222866023550910169973895394276880041659883855897920205433901614972383030804596207608942846843141099490143789715225001921423817554738836979261064201159594470229305345027992875377983749171709901894528381341885232436040757826452283244716923220875813079881115655013090612163991963051509551205377870628380418867345896950330876246410587863072382686578445500852540049395579782511458578794314197436208489428514461120820947439436630869019606876204061850855555022568712868821827150877382087269127556681075024416943922636526811982948258090846814595401374627697196851177306016357215252061132883633344101403415417752445311034120111410181452307241061442024053255723521624542007443161784286623348443874404091299763372929029149653970567255443882638710901676084487589391071705116924104532983950136224410748094297169054288963480250092645751497543359382274638453198356437967888056842976234353221649200418519562046902059794806511394785753211513689421007051004980857412483295355059037712624112025710101333820264981678986175238505351305991691750378113677238775803284751506540751558118071782658097110434170283986019704455497688098143030422605414370095342170837917439558273279729146999925589929769134400328867404356278861197140808844028526755294647472515405188920907253765012191858673740970872180813805611560128909340670126108985308313910899812552492893748136340754281872647958894474743237319197476418721361027213221247696715091995850147940295599542112857817030088164573295707596135589624389159272907327609193122721293386601492453070299135758032933019745189701984211167979137375272259791417862168241893881501557137652385693103967105992089966268643063205905635455253761042471483623826938994934274279710094759873439456323012217391048552512405924336235589005615315434718955063894565545715594580521965194096714316380482717245247845119774870593124820785576628121546577612865490844059824802533301380558001982071076687071245074861043406894966539164203998977673585416489661244978275664584509800003637103885753367056873163835203061855719817353856466737032813238155828247291483075326087777687940006146593445563536396206505967636103789161772314036851418075792105525774076589532712585897873772658517574376568205362625490884994789589582248630618088234172660268739691487305492265752839074714333252648452549903861674432501602953759848005846332396600592233754206252768575764793879554907867969048609205557032364281874557841886691951224571223294698291217964243878307368428814712007757722980841883961474672677064331110918253430218371090536443168815268028712396978010324309670138520593514830962876491239978332408022986287023990907921128522456214362928593983094020629369308364065481434926544964324606091050055224048598299057040521336385718533559804193917118783261448472919964346853240702001378541685442949000312047851029443966339862574163002845856177862785479425452459805911408811938407323883061311215023208902026621558114905472446904493583554473638809253858268409284410067774726421640232778752540067535529508692872181500884682815537382882061754260144600120445616351536699144456601182200918409944062054719316934581264033376844785664569625948203530063782890720012120985941634874608349784920813874506616492029111564974757269870911540337433350123921620589821557044859196777386296695280817240725597739562837196701773097985716200121880579011485681148784687429690643813246740097783467299825136761356151185352451351179253240311624018971711317938826860523410550916458562327104627117248422702819186790739791343225312151904383132813726087242595800468392647354892236276718098576238389318006340989137855773139967670557587054877322126941615425575697134021633209736821744760593403658845510760644239525940952942918307945177024833659223266783035610718429097410810378884230875560040498146021217984573994602819085236366280496067518023986184590034949331787393258014629568295275031565404124124262491199260513593262748561059971648926601838556158113997772874822898001333220637888182321968350636424829733317954622293665783059148553430841924606963046493029871102672099484282650142657512118724424432557955872185687842089864047407180337441747094064265725447411757368699924486665226210362189416744397991512229578792754589198534827248058659068430933135509898171602212296135841619682228905450157540066631590430419423054379839309983423719153946115892020978187624257483420653781561496716819577021189274939632624960974424045533191081303131510422971875237545664172697642289010681371863963451757774341860537865194984387861001864276843059282762151205359130798066572248328879566413343956973114410989141539272081352668430080317879482256381269348906856698287859628266586579893841030745003046966079026146122717603872771459855112158747949559131580609475627949310629455921097552488174109938806100156089582236304885623819520210624764698964368831960190168175852020824818398624445023242246597264089094298205687059177333387487011785951069532164500151431381581603294372179102080658588588661531756310803452039046447590020813789162598840068573574726016267961836446453665265781788941093812859789338463573326662057114089344329029386921340469026773410851308947535291817036416656904734023857554557044361346524388197590313971390786439895566992481824514819094585963912941133840512824950788710026231461502823933656780436042042179485480306326011172418904059357174625838222761755178920434416760900857616426770954355272234019284498712123181432589212721615249605553761271351311267026279097771552444272287475449065051879604101046449897846481839081229797815956079701859690057903051437926779028280317939967515269341594443235210720058273394257745093070682304267940760052207170304322720290367175558429274846541162267730943608296321859979440091617439483597587766822227380222731234044947688373357285454228670780771551520182833494650031640776852145378845644929312047799582331697289992446870197956398530252070855270591262638311733607008824319837571562056573225703670909250161553424711931546484775612812087886258068079809934172603899505488890163599611689399153354276643334518582983743255517256844206817939001664013610088622616171259886542370969148057900948092392020690566641358136172312057578959700027492582009823966246833500256128693030314374080349469119915534482158860355358294067976053613305206915829418920409507546716197977534294476624221629921479652855766774105986586255327415854998706555754863556498338560376444267728265632286795895005781880081500431137055536912729559697175850957428078362694161196582719509957757754945061833333529879490864187548102973917547748284210792221730841490003961555205905900491979862672622930174453640243508121451906499658293963528211716824007178202086488361894896083791456951458577612518906197664183034074357352383241270555846751017763361184277498461273738348709121629709429253531446760649945212954946164969896536616740288180459587022971101427165382890038091682647600502617286790253169028193675097353306514812633332671289985900940681478465341406574438436405452460460980244776350227005729266061919855829803020953419565504284373290738593276834019510267699105759647037278938295309766611244062564857284794607594975008380255602753992917066109108569638995494765819726545162845818167666314497774206793274079992356131940542094118665143558638419803760861676657913495189123270399647077029902935751406353758525125625586013328113728626943334482836033891212988390303452629510848805221227114183996216171609701640458703839919622831884336161790243722398647408154067620039465802860329238557186260162184460203616302851351786443625307317212150029990499291337851689921784665628882511455312441415082532630029221462698815185351758392812714505691309979903098765654994079797051961261828791746312592291926837031897667977052942016897543592379689789627964119326995673575655394883728700674346256998488943070736402745357435159406621147909159127480669841581892615840728032874630506228580550082618631374381127331056250681411812152008147785580846330877275550244204772385947617177286631157676929548404267811883406539930607341089737572346786262741595932570355660133311352601009158891440983315088065195368342826066568890656827965031644386257215747514489884542882792330760764267230624379649082654033302334494299524295265628811949256421190497945763730990110528164678575245100584870351351269645603254808290249625631619826132265656500811508922548562736343132037088952590745025628356776711200145508340533525018868820652189121580382439418817458341138677954513658516881876741464798018211654129212643058694410145047078208218799180023495200849976556603834205035406335671231696242632962559523816874724269238702490782286515430971746194746835571955751622120161499217557250195622420801106019817805259918699653917389049086751199660978427671368683292107414955817016200523226259015927465869380922340915356708698192170629573353427951515017587074490359597237536041831007987530403190726770808829657458615724635319940798120648658296215687898938143602886961632197053256186154471191918120166066560346443734039589425707884824801419089303891049795600850198158590018058611500384257788087425985735031384153835918007472207840852675586804954266980901363208565308105060118122672837212415980919494210386736423080764386049245782720129186564947326768307897169650943686241373666954051480716929333750948292975538027265199154026101730213600709754339864549602396137316394404301696562319927836015895508893771000319274016595146446270013720919898602648345144823433545157269645044560236938905648943068406451977600900950593417099609426115568757931427749728406631687262966600115768043255890089051087356149722670861403720827443763668767950642683707270555056373619459978721963449753941635032003756942652711928531960430079599467727528496962006913869378616677928262455165472573750594559897654376847035449866432484831949195774725182134013729477416647161589222979183461181165465191626634646271760329379362245190569507790228493656341868580366758570331061887745212858970338900790126817178717370199532374981947414481573847859849149143702146666626532065997904384198287589524443609351706379595512304265706080313360308245284627595309781988382023985876221772480130341695174917497335487777358285878388969857405719042194556209353343793873810890923638846377892715978494454201276610181690708066924150372723062538335006860939357452356838683223782696616252601728451410964774420085479227799313022893189982632260565705988603813861653253170979681493939836348444892886739368507724051438345327202097615985602940389637658440110740138609010403660106867036340595141806973046457917213658231912711934311047061366454323709846500424962884115460795021075774671615896075471301532544978415787276679203642135455301038753325873122541723260163514524138341362387071040050631833931238151261366841918675253845695369914160794122027274242862809465618555496352101344166868385661966082973486146001981360333341122787109214881256506870651910444292411340406019171782250453853502135313317295357454024776964774990915290914314071235276656589516890017818187744671043045840678735316898330199773282940372002475313937152110522588676131072330349097728733759646798598430536487100728211907956625610233860871025661664608439238120188685317947591670495120439542951056507971593981892065890957968373062688895916181756458355144123009556296481821364357729420530106450810915189291878506443219069982725411839117514464702682138076917586909195764258561203199266212979326958184765604050116093881182988175255530758805396922982234383455982148626219292401214494109723571224146994993552472203036363105851847292000155478320060191374003377925265818766207319692637527329052179615154761532247482963810029985719476115644367024726056643440788770070881348462164800780141269689849744256943198071053544638597100794857711096863924749271437687858346975156143827732898510359416173177406964498377973842098058192908335625981996749764299653412301049563500890266813552051473673044782625850133048262820957476191645147696680931941503172447937722846030842506940986681391123436202605544734533207965050956473099706043723016788090555265570327472995196269477862676147897969677406001815039174776303934306548753942613398238609608140664649199655145919819888985468840706662042852510328440396511075871923257678704652614352171115274460952006588832943679478721827680270354896778583505593294156944155119390207285572191070313495550486067356718444008188877577279945633153865921570208684566600385961535341491787867646965265377133768884289824125018897737688857088565152782564915872127371093197214782518042674532333928850123070794495511139089274349641421636647594468718447513629695751430459098173671683365858672943408769775577696097905829586711586571612954333042016165048958655964141975603089350792842218445209466509139058732659576843460418847399346906480641547231774090839424867847489373923467690337319800625591737241762353572689081015778562936926913607774040838928040510813224603492314975968816093023639477283951053892574484540049668283867471292259893258602065077429132430760818905247728599300608277253400011407837133659801490519727825560345043764163338370180873531376162281198619999806207475818942561584964543849343813424030684075111866512200661133681230756224471771818198237963962529753866602880801273823371533520897513967926263436911545138336262231312606613477058067341271888650669563693059315918584003727944219558782637655705353356587488512886502177269539477714844425425538675150454310231548696107612590857904578496110832521559819561585782339107519065458833790527925035587523730109399894396663534363434309865107687388971714932708072333177985233522252157496967195146942991891265666679569384156033141834174026522749618105296405467410835671686430427822759221060108218846354477770472432520385291119629759250606074011944819811655218122129314642121231297637494842428745093039048786155765837050909804437061794448887427131737318996573948678000748698315052718507361585488056203429923870498236146732850766250806984777177185018052080774488146192108067977216082500254419002728425560914946923643008322027100846089214871256795912700967141264792507326469485345330523652693529410034614711899588341158521814037629394089559583438532771040550496104206754021192467582990660278774005146516870533093005673110854324764366148613154228738997277584043529567486475398201087537276413710918865198929761716447817246190985456086839627396981420558477429148199131097914984766016680365109651257179267940486828168298957204621292605953394332490686158627166738212656579915199160705263674699618758286271647232565357452233928873013613719131411836816704175850839465162864818637721596125577122336729839280206457696226739826015389495770186660026217832217463542242505859907721435413179218200915418001120419624096099780435500613690475321401646657583684715043745394959565720151049097064764863997469016285652814822367790664483162591084236647791383330165621858902108733955885439686130027995897634251322141997286043041809923446824065107443511104519619915474956601617508637123752890615967250330992940670718048769475742221277061555214272943456233136223094852966472707656180102992894843030066282467452891443687782360623952598847432451324793037785790439224522869414595040400803363441021926742645133627183486540227465455136546389848636703638280644921566449557319993040637197849756122079085969342806135601264339541758126650756811447362191514151061500302584662763450946127015219401739580146230087284953097103126313941929493062504312752844164076886051105139500147170590122891401318993609378579715379473033269232424236867255679699894428864750716062019659647413439681793558503700443042766787297615240955095113185900312877901830032629300150111911184993242516927347852610379318224023892517328446357185040008576329511059912747518077647980485558158328134867075776951331263166597065946241618290565926846441557767678751306962585479975475499934399320855824812436841175442810639367381036711353659924090163173821379390063824308877930795411802792333876219840892406639187700526461626893075854807502727806496753284845991517463149048047753607477117576596030479586088292364910219680851898531464611234895876827276885831315911145674827784866410736112226550182721141512398716021840841016072971092586097854929638703204920114173908269154824586579283775522482420672213301731500338959079117792539961052548168486671617413969238483289011268900931390768618295016079077979828824485793751315901340895540319583311059275997841788142556610196763189822445479207591836357733463832375179317678431892688984558638602324765093089283899399405239445121793039472426994354202924405505378892231945208345557877019730693740097762991297410867863744523854101880451411006442838937149190979179705047311151993994100220229646311007675586619702813485681028651710126831515395007940747895946354603659159234846217035278174568917783205139039098348203733658204960787936175153434213705280070280801266299438768588985622449742403712890086881462753544856042487740851608576407106629613274327504860692904300225132351716883135696142617590543829600324612602002082991691110663120349887694407278859764110244995896640101307234790418279955816744699816796506152951631206861941593789777795251635069992615488366963030560744790932918450242281563445607508099132284880455479590703041302989175900495841339515064247831633711784982113954144568681598289416109332230318951324851976620963812386501673418031479824044384336043668111047764284198936309882792955231671878288886306726221796350270803160036278411781113156146031937236656415757185451465623006052264287572159623835740327833399805073558467591564976576170668776125319644563349039721797753720296430993619951058229567389968365217356102731460822059809426207521093350330924799859046366588895286653759466238968017658803246090123907849973883363389486411334035978740367606086777280330367127216347206475007867319980696226431368467690048429124860090973856316132025408523238759611221626123983793286737605493572459197490644227883486636172691849677953248695857618376751780380337931060893318220414821267841715108737501972005406977124381635450212894663766152037265309918810661074297156137608093202329314020984294812807525475252451535386200107716117521875754721271118656508974232968264602034743262079087959278889364545481426698479135729644538313511684277072758380213323339637724183528949037014778354450121104713453527991859614818980895285735121930493544654515719443739475510644179895040636089427954420456621452563766405299494867371444355848241768046808669053405297302413635166785350036062391696537161413430155414195176931988583361997380047967416085038138512395961634845350125197480018642616030079922173995974069767255047342001530781356851962419822701821192164711308067130962246444273390792229368503373246461078330027772300108010091166079618554326668178505118910091075692123584984115278727416467965679515342817381553581175206059279117401751021963280851515525178088782140039385277077961593711864809268401927953965610728697409174550841099502724529481199421758745108508451518941147944055623658542402032407232514193679076988937300925799656110329648265525397325917847927687879914868763031042939552077014960705046534242930567038812022453272173071004413443152176569847361125530572542952008243156459146846594127290067053906440987181834062485172749022906260805360233668707188019883279758842769758470421663276136086590650385814138535762424041268688246568355850055093806539518940342785597548111757014370527052458776110200149311376658282505074933753978551042178207628763399196614557209846138482943839863507276137093344865124963899305872464087057178779428665989653007598542566443628181152482730782508170779688176660811516301302968232559055910807262794016527581091252948488677437809993100027236968530970315636200979080394081187680303067997941363598628631992932218319497157093594643486165563852323035206613648147795259898777014890102828874302284266086737687073009918326703048714180859914514253066683058978969819376396459591316725301489771284371260416803431743260140977087279122117222161848628828281125207110187252451185785431349797116113668732902830921041855129264768163483941207259270402861729525322884218504378968207825930130202398565606732259628917115694984550619021177295019682152766218007483828618966141580495681197384013826102711260762275921638141732905249500865477841720459258740897477302565501874104700458366438259033924292224127392783501898550545670427959400816565444910011090226280608921426997790333734218331162638772554629775689343075231033986124902116318860914052185021847517546217722549380915629802891855107432186546235922475550313303408775308201429668092383939612168984575176208065308660589643014173295086057071829266170379341422184307425233486286750867052471621024764705863757085888384255756485347691880178356635001171389832635234342524634094730084057503490104254562050354813651546298560226897924630705482271566459753329302162516558228194177893428520247887232640562574954357597421635042613434013694594218214380997697080610699087492152244839425608170207037287603843554799683988878705738652026882941208147376003451074160481255605092955860775766800561156799016772520521366377709699704170914426068253711414150803096159302665465342902562254825529341755865466905253277403600723862198713534659807090405172263610332597498222433197481257559618323396535947496102556528256728673203228011793292057814187745688479506950566058362665023596670275548504189806265775328439399280142644863411582336581088147371281880475428061449895054773012732997094552838891574334306764583871243527751627847599553411649893046780402043960903691539474159037206887278313657722859671594652151485149634357461723436448018551238762127961561565918915551086377669033475277945872117699472312465790517481791916535360797407648453929882833494661870990052019542038490349531299836936411665869455030155637210019027621673477274550617816820673822400600876433662653957868245575828786721491590796653229914742369787953663234584772938290007382837436027191359146789140865621056328696274870512928956202090321907782536097852340225276730843555861524004368783051812329964955740174959014339879269350693799839160935342712464943002954542260462843898610911713392971814297098003050227267836761647206767632726782105130438152485828288195688084196484838311876638899790621166640610084780209285563526905433311814675805696350778225718920908129996544947531233879747724206244553889188747447688123854926722210322603566364602166444500015251464761827068543713599368883847568483160193117252930787889025184424119637443823453660937249602560796256015198466953841714171600379654449743319123761666283837649614341799906538989390373415528021058246119119565880360544359427277190230563463231431605499547086543675117886649387189787866126712397147421759661532207839419864957702659315082647659672038317849486612490630242229009358245088717415372646776219686235321813618039186683028215230977239402536359768602256232711905667962037657285632114822143829707150919341282154347415754847449024695919400130999042282057652293489101961609455088319308461651942395705035595096456836413184302746015867205335288053544244300191847707433979858710282240584592630282812981790286655850259466089570815927341643702624359184881493814243925772466408801824105374685093428037132605351062421565056149620336786114529663790888982884231378742913277828616197922961566256685703536239178103573077269105852611201980754920589352392713431148136740036706923230317330265844868830172815169967867425809566448055031886285715354238030280885601058850999607550157923823647166432712368655719071711271695093844949606516955822691792494190998567440374085448991046178940818977112555903857158059119451928342617965013385219923357596588694511864516057463327030522882317683624744427574100950263413789155585133457383660490499878841913657274246834383915140449031961589918348588133166791145828040384788183129584807288603714521400877297022240437505493767132663333658714799899302494376923169966599371205590259947103622898002251663432101050184148083957970856540246647489980627503985126235478230155909957151749955582329399061849042200289620144853844999073956177820746777756908381977594281518372694717499094460988509803400418220135015335231715583744341558978582947112427833013425446076999212204336898034095579246664974166379666796195411409992861065774955598330575836542195882438074108667369910376574752298327166384941888088892794330286247450360490697439503269057696797895306330038336498420738319037623863944671535575878925906408464548747774548703279726195156910353342484579322661667420439690633670794749427676037446051964673365077016036957598737815371675184750855419190017744055811514449874165160462876432236651912271601891437577402226302247202157245986960490958717549051295727620308232600143934147320610536357043689376001538689771565008463927294127641259964783848253715243921644107208729902765308918026132425172472967832042229805663929978969379368737695183897908001763484765368792960060810814232810301856886763551189612687662857630841159680956263624506430219545708847946613232428853520624174571888380199631350409805854908059117060470292316778005493590130653052805035383876722898529804434322592761010707400475421766844210446606198973476139641927623206981839176720108749974935138958169925842539021177018501956107177177757122248150074599488024844283467801767899228068048536849734143234835417714138875500325785281608884085652555823338602432710869358585707133893442096329243124715817637948933820947152963602422655636567901534829484623539808752571629058859620710563118117970531806705084627827132548507450914794073036001786657284274720370427887851923240192717194290052816629065258868663097884256734531159612895452214006670437850708470469147897013101826568473664881971543403629050829590037683645266994880718551848308074014516026858355604741306251486696979982347418563934314550539745004796553631314809758079157057945296083169963818567944287730619904583671543611719733461286113048674281329994148828548244296043724964105065560301195887431706464237325909185017133787782697967685707549895219075535232895441313187177410183973073817086111493226964154747921730408255249481733852533858251838663010755298199580628863164519622365869506317725149637922116143820274909857526951970379301954969034972063185387052735066817695260406167386262710620919192467528558479820883588494545055205975918445965065125282897992819140817515985750304592865613575032683778979164176689741854000713388696124376348379963805311958944913023032967814799203692976186911300793421043302639377389299771801642767800318038915801485379550430680203052126354077642471272539868037063308998931324998301783353241417340405667462524468464453723757585868614576113150085814599508793732736918593548204825916455462006891500234342364230382746892276187481125293930268094263479742876644249727065230559703311132422349111686204894120666934231469384140177402814912513326566560885775051384158037747584140720217003157778450643426922636058746086137236703128578671062668532691318391715447226877358592890662041504500544143476980561545723502705851964963013166917074725996984193497580952743747310316391708682730613211059699255734691351502852375811735514508120145114948677370049372900661070137118886519070338273859425134780340498174633346494629244464119700981281202013675394919369617747926909567012807560076154752774117174677799945378591650373115184771137404882438816108503590576723682202682036658574629286691305053272344518595125955123879115049024934548418494444952083225053027516475964795869537878070358755726813812170506812433978850750279936191364645142247022533185954553159463559329804904134576462135628951038785522440844289603201852970211616464914941134340360393754087291776854313603698923290043916789272853771059209751503341889931343873936183656882361724793073267718102335401940729612875376977841859527914884447848600329498738400848055719908511004102041858037238185897616924805718641406589050977528789704911589995556312929038700736119165050637049849712552178845156253654333767740464177587130922620639336125677411655838635248177052657360532928402836477676073918277071229549868754890167973922953761291726466953517561471893305823745924737055933654797008159967216861696572793656203402221795364129253062206392149714243426821348118366987068553174200478251657099230963073666861185657452389903628626345583259317179297199787188368875178715529307828153063528005680451141489134940582841938190956060184134274928781639092572443483730092826758304664629068796278890734337167459042532744056908233869273760142624543044905415840156936248774106283053279204899387204646312032931927755512809867065177010321833394371249491102756181356122478188917006615584145226326734951268100471323173185618163253009165166644815361492273057328576050723880251099535957799571371659985076375440850513823316565949973710727238608913034450800966415427284922733345870384433315615802815926133901552832804104569916840106277142910606986395788817367331357294197138834939336187697453330657176899790766781149149825930213644277294634054776058496363791761051425714079783133325846772926744024446515921351498616215325258042672326245595484661473273148643085151420643462297530523304973820475944850484193382009056858720714432683334665565198384964368525436589955288768225835298917121415881121332980524451448995548866893926012784254065548149467648534366884027798410708817177724502838613978266539751501885174324584058922207115880012280137236682484520398736240109345743180823895611950299918491092386798685314514836333619279602867256937253636217185235211242932618435612833179977924723449778665557014087457156835708747954363364426545654666337610479525102412033148316966837305716130803821402334506403341947386212520603304553570017149610295895397692510209934055337598516969311123998945616891885083693931924962149515514240652509294970774771844770224174651713062012902496711685828464354392106580210842457804087915624179080253003056009857069209091715956664428895674343680117883753701996845558389601060072991077593211788147048759149701395440032459316541339416348420153238803360483139012451354557368529143076962117153962927820296851287102209810011555510072647880501582641002175256574410584186934841015902489401566221828981258512120249675313393049055625126827778587268325428686070596367533982726211030981338339014565291268402386004952130101133624694857081229414692533980346248218765437702758563675050073152858428141445568203075484135446641814366670993061060979969189307210718394307185471717084926128008644378488110684791205435216390966178839771310563550329942830624123467841933903081654228512807038076180815866439949692558996528680911265781508211319289099333604335962630445645412414277816496044609031216490068941239202028880241086597848711434838961032909389121221765152747305362883823361923421518992973488763409201452844218134586985282444282308454163474853122066892941451024311142642177766955362416130672879519647702158595772737604478576573403294507513601624520936573963449285364587458539566414513677687092122735117621021846622333611224225529743148731752194256156166946743509888973670990057873932660854402461738694411326954615538835823339240772898516300282151187891798430458399667237256054232023232924997023377302504139937465559192132502415384410695427388722649437072838330125153942740202550910489973148485622190660841989954394555068532522906473773704103758841842871556644891400388171047413279905762662317025334647747375970634679865035586953662512522690590025741656908813959045729365053023937527885604609498256656076926045534752288674005638681868250289905399968430433141741524596205720165539581171983611994571045952716174860761722540145850967141928628706216998995699358028622916024546289727794842270031704375219387706813522856667859335468737562825473366580021358793708145000592330773917070249961292010253048883479380426176909145032459351648195335757110392544781182778354992428160457734014141511585242335510207214871143659041097568900492092207551359004019944511444556283044152173823670953229905139261710437570793958918326177569957531817944416437369420371226527734187897480966404130654145102947851566129315952737200159256821794376965821591464542434363742143033464881454997688481363117945357898886535725116125865743080963334684354821079285032509634261605847650123241317717389863176119706728979730168523375004101407708340492933402203452109894728708980611810461340423908766259001947082444738873677823594021583810508910421531641629019863895551481970603123074938080579980031415570723668047723921167852122965516821662336878955540235909280226073432691454479413222683428921929379279910862010320373921568350017820786352910943913803040166706631042786930428718749649296786303035745449064085847677008527674153896332159802468085071313818724700030565645723055403016354621328979632315418707319200117631870202551126442104606254240672971181990985137157518838597123826458537233758167374061831381256542204264064952968212579599915726262149356330150993548686899477726759296599438387380996515916319993459044105918963893194191831176876376625465990534557999707291877280030974756684531598300286060694086344114805433835361986957885627792626580036733221984157278572921002351863023271398507102204146895805276386644077523608210322770444634200665794591210626106277573300552067085771699609650245244634827379523543179137269854131896496335694006351760098995351074247005349628285157981865863017529474186135207943784605537953674698840677340978144219002476153643461227468825569387154089646047454427207093751563202516520384303961891432930325117369603717123969831508436746408258529655494977398420930092301944980947885731041863262559241564033521205193646240096920161431710109538521005559010332887400768515697111387485234359454189610186443522373275814629284768928725275484689470355828081446357761387318615295761440055676574126649231335412317190744457232200560090576165312344761728851583947016811782905223723653332280669624029545024987620744316935415328324198896013660551109567884034593869564021645109763491067713766552734384585330381048254823243983745919493796689846702622233665809869999977936141833349414385069721358040249962121589082069637549044771608595698134732757873108690880610337458734746871526459644431336780770746265939639696761799155124400038708070771536525317886368517519398603110660224830927979947647109921551574087345152511607309995677409122304719597669754936166101488764857558680005000144902406700801962911571936327909159549859791822576096797179175901509890554766926013073194848281510453309664768369168700738867860921178139952948944316615957956141047501413074145618701919210768028002054285343361957370883652062888437679433386108613626091697066569452288098400801953737681640701162356079935280073886996195300344741267786142998177021846865069042901756523593017268733313669116124394644149276930007508448695741840382267713395225231322385004902961529072811001669011865402000459592563184379770934418974453902836971907964549777884258334525391725580109698760685615717777352955147599248616746015522205947259671838047685536105399658640913606696919317517752707008275344084316351748998987366671016901874065408128391238779873251954887822986488087417478931066661301949292064926952906348158949799998909327412015895274922297485842746125056647645291111598878159564450420004472539615224766207575846508710107149848923712667039433306459324995342267015367799331694201306756452775409279428403690335227334556496837570955046100431810955342300822472337290187261660918308652271791343612780014267219236985521054831002892113826544217949116487371597744450048767137799703910276864222004913339147299736794636016604178098209217778129912625560413254508751139828648154060158479906414256393270754784732104935144601187752604848666991294471680561180249439693345398627712796620766408336091745521851555058447067142445021803320535084205678266469360532613280310546354572604589944400854846762722310132085599956832089411328140183962196192537692858432531134422765032713537493697245467608099577906009099600419369513000030521139477302277848995247691311950278149214049114468121037735870476973325501282015859397114697061519589551012662511375018787959908413995296616271136378533898234500476441195356396434304187989341328187999328808742382916481871482486751427098915051226879157029991694428758919364854903990448766418928241424436592434143182788683777392103751570371990509159115246093664187872955074698580103537421137953677046714629916462274777550927679926475523597572211750078419888789266018732941334591157899577987187666355462889216792091373407923558700772294166424005957703799097455983371123743676867967247494053373357334326882053001263699275394886916423221984053753635263082917709795032332784253986720234389653494185378965676670854572416006797944345816148853505750974462155521645590885744981181780042705000934533299846361269124752595458337570590020249411831154196665052089321676237624946396370874794511920867855838056161951523300681051400714103883442009870255671431382596304679427384726027605465460799738323626047631703709443874830067431180804102383323516668711752478202270647714816290905343497363209877807475082480164691942079060065165672209689564124818339768415645784099196902008293590983277696422840557053574818537354828938315297071970298989186850121934768129660424608703295674228563544535421834796915645616584784245974886726607400286879292532753271385885303091407347554243213161688159534310649270681618802212325914511954468406617268780867564163420799735584203435317221407460207948562649985257384766247151986427694184108760848910101493131850243286761662220600695341793834723177684664738181903092634799719419878897118106712703174282211435086266575151157892499380945368317036639049677340257613650235382041713581475519545798832639374266497946417460367091708091877705614467833440598280606959990359601357921990208091587656667473043436926143986343300019552794143515944025259574235619833837865712970799525666753163135692472798419194105016208115332789279508599857798315679819695348220986122836920943566706395976803054358273079305596439967129488979339275476238081453929366254638446668314319769764115208652827685210463805190790903522110991397407798384603258665807438323574834852043188521393694820901498797792518338854353249745855727876548648530099120863415205040349984273083501264330897597385987425583808667185170807080126153831343894329247808954036062836656788117141150134850670326030996052309820742754409626094410816191502991287157711514944687648301898823618697319476966044474241916281486520107067090000457616035787928997868078406705449667677324311837953774921525242948282554881887049453653805890528002808907183052688142657217200456936566015780159424763024772581264181913126722600956760164230735533456765896508023724673760439294346245065100173939809550711267827346657657596335437638230496810425956222205951308506910068216050830267159298610692003748951423321359187669087476347202343589646786257992536974750378590249085595074932713515793753443402511601465821005694962328701043096515017265854406471862032375835926219643677188193606095031691139441418661463331146555615096959087988259456542257596564566974324796955003454825681710671829619532438813223403793118376157046674816045646750346243336526877746031800861193853613583186186288132522648359077755934497907268191093218416206705211208833563117628199665301804887260770743715425536830756974619944312991203492868948439940804771811991778398882748755081756920480654353187566089962743048258058855198415644426293465901198368572134849299180241601199813276668536742602026990609581691141874485585128384855177089659831986864008293454023395115213313827016698587421092161938553663173200504426507507307366142349451792414197360756000238812906497279682877506840567396331037491576495750662010108017650747395524251652936088273869539229777350899169297948342387231240999231023347486523719049940320522995596299693601941239017020051110931294339612010262245460633927119780230362412413740176308330192464150846979606839258801281267190762304776820420459326950417131341557810213214650751841798282103002979535881335746078012624325547921442042344327950875561057469642717362981910988049842111675542102822001959428386137705981509291109927723629535933223776217043794773726406682184590623821976544123840163747964007114911927687725097772651155134661759984953832491277566910990153655683646400080888133593253350364997730376476672135134503663383502734255177830049563974972792667006737440924841520692088145199072151500929703268428433766365341288539821196356836275549643144597730498278950297104013053893415727454134823998093849347887543505040909054460174699205426713321370869233424311189819222324259263939051248548090616499505833425264131685052720592545440348774066776551713091943699534573249684816408010146345490242723711127431494364663417467142819611681731200418034556288127424916332278306716357378221990228960287521444193730743601039196994008001709062492726184110847591660208166878540410184685989561943188778471108204022149531791682865487159880665435364709514915112199975777194845572427945415974174663614803427600798313784055957949440266644758813707523286014057408891321661204563172879056966102228178704032230957157249650008695335152866122988342728725632839678356041070796331985382636836122655192924039294747622980991998794472541452130443862976032159616359250992943061384260068865304937743127734240720110949972722388779648412466491905324879763961528197241040405872439281213663657621149122543761815446581509253801693966952881205565250751310995339449499825227932442593372500121648627729461600391378009745376461843545038476793035176355020726843495737068298149060322533263533311982413780596723102073016031878820558762963944049169878039119415047756133066058274523025639996368331287315667966575822725271224357929215010691752430044055562883868339353333840975964101254019328338819935864539152293555323681923662507803192890556200584596656948912935204865386063024246113461364728697552979623151001823474685538874513937065275753304292897263425226734567468122556190512153077832006063057304627488832562023887666315629836407189429574549160539840991688651866214311711779531557137590574045999786296513866872435276386110893795165554417347749301290191256752304423167355864338308465525330838662105678357325597811298647031269682113764501495719605353055956988934106314193954308166277379102064294253945646631673153785431978549661483735041951760496603584555719224529067847486726691076513998797329808474180443633899153966168168315391867380141122991139781776617989439252858801913224212598593210944167514436530093198704102775470799450538099820544896428207435474746960348903624372884156149071756886431111523214459374866895514319217287144300601702757349215418959070799072306295619540339220408285691821075382535790235217844862307232065888532898621421002056383962523216007275323215601662210756053275107887204987694546176618750454559162800531253332498661040543730504130201831731020630878891576139423789732875061139118663516529182372119669923968411569764927996112645530839169689354796284219456742639676868226676559396554429083252579216616332179796892230055139245967286314401679339057167682169719484022177197293335401070514562949116938572247930666818386638950114286569823416817603649507675546014419805089535096548044409370862426957712757770304909928939356608135705446994682753394189922260834882762714505453291641533798992874971283130426793677388793056776718239876394606581777673629266685633152451223640347242657770708194715368829831820598657991094730082391659372107516773998933342006242782425186562726972575432070686106415721417622434395264295667488892823729840332180274403558557994543721551586075771564416327319967039388699458683574219204442236956043171643208791734759872468087171785796425944167760770514658935811867509935188043112091267041666682243021581283966834666724806270456644579948477748319661681753825918542572915032186550180281586402668989559523759640643281581449370675030487657195645705939762004283035647949236970307506290655344886131643314426023581725675681512884325178681636398633976015052792215586875838582259739220993520864394351369859432896934107359874449029285742406354047990467762942714679631011562591566634614701452610232619367368481486781672623483340372145603037723651898562758875107878647790206410579145433052277593697314290167992692479526725760658546128760775983207894761495566794737334910244439821920183698282603971138519467138553170680728462141819948347596883469541829230519543046580137826232660756370041638044275425040380755093510189515043307187367726154002258717611661233584642220908784390455853375580118251358528461982882592542822095488339569776231641496401243435494279739876158483014673449717038293357445590034120800756654339575202989906328649640624149458453646772206660866354421350800940502241155091059223095072015817640964489344202719314795710215206020098228003676394079054766770175934759242647021128077712314790664825620577085024651651985669897420626179017414646923435009841262097587473188879478364615927327529873845341728986247372556062832205399052420663039334713352572650086203182315937375549184012937055990916611498601648901287510631779208960809116251712941930174686785531418814508202399266902468153572153219525060327607959147907594435199147764408987767995827094220432791589493373857150165387994293289143982019933467489385938683235039478354185175103977399401519292293950437002447515800105367320048940402210498632241240165975380414075298643014854579609216044699751859325032592340781549422206659498658185564119408565824857383975704373419582382586922000523397879633798032753595662355387872313548514885496007029677959405470320374722091564233178640530673132244459687074549130797859007554231864043238903567495261070908548577614349851260769071058442470664961806748870501741794857103460291113003166918213305776367137040576926199557631292997176996384131297636519020876857931237804676921784649766718899036969907585231044956641398681338541700085486202553693879527594824403734337963793784997304254921450204248329207257722827013989485735726982526756657141631566863321793371506279414859986262614396780004450330534329326595413208860461214775752773721489753728907386515115822411601399497037922363193036355637945757991297263112823648201158318065412926124088228721230141452690401517787606331532613522235827161226979683748362272837213799851344520788651257124503972481111370739235930273887053493904023617589653712178003202839976930055553811419336512090009302372401082297174978382231758428245411061862590304010226684278525777949699096631190754847807983905749397767345390051194844490478438987468092842561830516253985890346007424181618767411459512030699039046759151415133261032425875025886843516600592048100647041366574926504382747881875998722019870030656125618431807751849240613014294298492489266267542270432139887485943884519178676040196945512138236113041464282315385317614034340661308264321733433960684935048773204613099532161249240023439544643354957894497569597647708737716603107324591419248004736888746625804638443010920083633367799571530942683671039677003601530507423808573931349521063837723651219400375090314196058275390321401396705726447115508465549324828566418380979572144436946604496661522524268821077250665719910804099991815022928465606536281779807650790632336240980392340926267176770842932360540690451869095005872365344275523893220969558528861135829665981758411319714296837469040171634434317356175022743022373271025927656525643620289719070942082528336097532820374885069815405757141286911861391640679898445314443045708632650208114809022875395844803712980352876486155823996371299531308102040947134995806130694829578605447361708291642208973720162186748201619551598819164330910451459005844074735550649971177599764496164722960676828588709265364533429666484408522617957576709916916220471553808805314011148028139901044793640895842511501302193228327402253425788418591252060178116825731684007577578439262588094396637282892568071156831921719709294120824629312914705056129219100682765323981629464708334525788917673663747149075763805207590126642073352370028128200561965132286962142394945713417995179862621940128862986073890644933588369511889080322415690051627858776721817868162724982613094657155566335338002571730887189029046030180872379239446061293311265629964218785658193151355256431774980939009777375703264742923858775294079363116626876974991371570989530673237858655744233039161283597267130031938077267931879701513204676791454841872764803092057665715824870236501489118556338990093981228305415171386851544041256063038853166801281270993168830971437550720187251680930372517069994032909279212776568255836782035494465131417708584179933840732342107032329357659896422831927395538310504866188791244211026699639120579078338982167749739947209817272779818199681185821204427287730150651701836218832818181257036942735046503103304393834937696577954042581939091279785060455404711511395278030073800985621480144844695487424347474592442767274435343773555588580824783586139883167733196231342921950881171918053711984992681348864601593430950742728946318608758695155403456382805748358945303736736456609060989532159108624429575119374700587002374510685174550611202889019192090796490769725941359766425748134698939695907647587374133716704399915585587368577274324356028524625853085802303766078238370545944335625909446063209645054332698387289647186366014876159529907421326769838373214621695745628178427425552079278165946518372877859286701505854314453427951299988469771098496455656412278467942433638858222556854666275738841407431058739879090236360050801706084212608330551724661719450579631783297205438945210679279040948953609504860912944680607926237831352890061406377043402139937461792938720367756339378908028598148990094707509020472707313543602319120054304787663491376986365859279095322147947775573990504669488329608864468536503936371013153767028927746674684178805389768865621955131214261131115345257611842234139368426147964596794471140102725054215262732835861506848652993798132892740005135591717015253722379312412865983199352372369407383236317345365524111247838903172998552172495813827367808055939411803882034884785713124163203277749970313048130670667411466746546018819938334209603058097788502137030798856023205562203627320944924770292832034239820859171452357037163147820262928811507959487160364923123545375811346374884380625518421927181601930688968542639518903161919952785620090457930317382092496107917366848135490539554190089965632469201278444404816689380824444259896317868938804994179981368041664480291133552877562035703895702266221853270066858281922084064983036904872206068740975336433670383141412969806633082782216550214804327459559256675066900949948725402120647258734111306852844680859133872956359739700509821515337095011779616168523106856821837030046473983546883597742561605204811361247876004721683066419658755998498817998982742891919436328423654567226071230182033044131058533182105130348409403245569056712400403404651901044770671852549737582904202993106458861243299182825142441627797548280451426550331237007328919853896573024823060333261347614820122333329716443553927134358014660559537450660541111609325717181413530245675812384124249777751553089211637865421137336276143528702625765162596007207260375757260636124285963631971764429610695220103325707266316109651406554173057263741651949220962374669902001562351670050204317927304007789423145537942750870064014208124710894919233924839449695009910339483947692309439080990665234825075492158078244663292040111338770755795707678664845761401888332045200659583024514662091800723093724523844096145987080883929034611696364767547986576516895828885233369561517523505040450884610321468378650409177765138302598392216115716014603115987353566151056108528433152497446337836722505562167771990361417838131043781259489353021990713711046115289942644178335032773234554022901130128526304181635762842858705034075147479299478017986335164936088491164323303596979916570283051267061483042666589836737167530655808129389124343610764513693445115877923207797863453227021929536135118070599428215582386749007246992721765729630742204436387706774780343886341948540018721178326548937240162967766194703232991295092459088695328329654712471351405859983860166279950146063693231791743394644245634154280210275373362229874640803218801369913508992648857730318141876903229807045191950265322065668526972861004126894716776127333561327356474585737667590341771168664556078038813381619272688305613464386113038799350924448025817774799798300740135962064900631669854381220880466207737296963643814667134249770280403471263140079848422599428603578480005364284847654377549127602599403290369547885315412396683100921502458798140434307586877072284561430576675161971626720178557073938073877506522920572015940682289257952142916386234227766739689387313470146963606099988277255151173542723690448598705058959893891709975433323693667615310714208563652722421764938429461213329006709600788068030418183276579838113390705222807770203764857782995621052984629246431256085161275128623559903540421412267617341466056743501757308017562237880574594335277253068858530375308395480022434813872131503201662508051212397249904928687960171286242813821508798805933593816186400544884457633172150545022638334922846298878801033530615241412607345612297925293928499991494433984184817935485674714030018211808963763625851120068006907692180516621335629184197195451216444735337356748009220352816768332891710460772797609864067956604899929473515522200568795138373404592013050589357357591616532142108393248111510463968251309101498847244726328576171584180087572870433166078331884533556783262300157372468277344260884369589228812860999848872542649644998670748076028290640661321511514901315345552965040656554223696401422751278101440100377487710532865990902994585429694145515696239598908370497598712196974389883827079987359198066930668272431804435107129979002094499548574683368192064520276015452639963374718970635136896712843132809826907236852766942842548692975577576517662344865276583181953189064470750901578717679779030026214848907327094202182213390626262254618308618755877609198901199085367880445244803691456921439216779944582074017952170069511845649125356110591337711790403475016794147715852568979531975050657962735772073648997407414836331684584986178376291945116804332990236784773099782093238531727882339677330109416971447240055750892707231598096301218172793743316490895187188114991062308377461724058681573963870515090071364438720149519795611027850978293872529644226046008599488457385176597634973956312171046298428088283782064382077122226104381273104716729896867470924631318029607108184164715156777776250039220188580087753620050705490111201617625193556680734608171688138607450270020925537263757392194053050762824121337146076829291202418972648825408894207339307040181629682500244620771732736147814752769288983940379777493700253093022797370226093259275207867739643016823368617401780549531124095373252024990790282333101756057019356501943462378749150454366415199755066218650461208236252573971940848179052651148653164506124283151752258611727607507714314080936386774977876443739590582724552398117099832306511627591823227507139624567858440367741926620256717218522972061536567375538495907905747715248102818618518272656639579375593192915461323793886067989419945584863380104057738866084188380269988108995298600779845509430560982718614308580118184765537500689129200322495277867362241825096167706524819669378447383100264044324757078075452697214648241179718776049714985474743765399278069963316167576050224210523906825350061744736114477168107937247703538538552051388806293883785880623547600877853811336468798531418102679018599155245767184535922785987898778336369071843126006537164034265493198228293251108937995915772836099596770771066790266942881838887230446255750040807638059178991740369957651909980406151603296253145638864731103438921038761113490295460055878494372904564011453934152562234455202051695936238233362187850965300336704833689324817157908505526088869516496822580149325717612127661232686253413793325411734764474577994197783453629977151604386665130794744534599559906056227878853247154156498778258767133627153752327241117801586488956444546341570447304644164486764716288538051204995985463416634828372130916611044796141840259314953029928668753847903676832309847133162581912196883320955081425629768882731847790945275545727628826313488544963451187009690445398724363629253247343339765739744580819106323220188024293032217907874001396524990177663079992636808201099368732373905558627652806721783100371671997692238129578700513762710483071497024782550694340157558674658769854229895601174504733605989610007338124212170628434108221637224673391869237809562265577786972862700485255024771929518260609232260343058010218479015186489916363890679953044785525925518664117512883316806758175793937303336556803502845760946764643643794362684612992967169834191302400651827354603585574888908521050165711792639334456441030353980652929691881337051231317239314745250504825141204602062796558896172543972290885147696300399213808236218984846456872748005213251562195405610347189537183132909016214280152730847575155795549591117055384644130991895807897477725999531160958881544901524676974839415457093394623789350518742708540737820834852398364988656482054501690101658460319494231244238193507420309996434495240702412656488950126839650692628856767504373863404327298337845033234208326626261904993172604576166947551637472193430138722167545069462246584363837049138025982492067093588294417267804737545560480573409436824816386781720678354845610505351366430297629239758987545788436797286554368566592263366151803389088607926902509233783663382724535068476944546044544945332882880347568758615025289140264761732656341785856098315530919476576493177682884260095302933952200565955528216218284322764807922561157457382231668927108006027067498045374059867376239250859020145065909285418626985061665269802490049920097133476229377563148079900933499966966194740979481188985726343697835030936964411789622328316251109941146085990331635542005681375027777496652212032410359400185416875047087294205825995161713135597717356748254185375365830691606158887288473137831981831830688203474625306837010560300605287594842821400358990264341399669342391050813211758686623467518422054439012840688230364220594912629117378819686825024902386827263331491375475087632360969162690138542558719326142557374672658994436354788248329691052247144535843833153936098996016982683235722250974553463858223836854420085039102576272155122557817294587123174618768009577241049161295864303696507738371673267752837585766229950356019758731128007383706001831347239257832835172559237513125039097458566639106864198841578409727535199568203869381586887182804325302330186906519108764867313892911677766323935318728238524829622739292076374286538700974017026682827341608248724460725133732723789066915816957342316511569916933096970006078839321221721850647095484461698867649388057007013205891046509325578562484692255742728866097063750724303152996120379924793512872579613614865648399953790574550627995420599259209428435789917245757922928282525580655158021383739897366600193691033222082549738115932902496579954737166623318763079873485140581598053307904465450867895177316106549593026926482391737629951556259018697494510716778844105860838463462917591862614247163903594957855627307773994898246408320386122946799986005271239134477765813628461042612785844847130576145106533015905392242406495490226347863317101776886720051660435275465688205126822726868560378589914403625124862749421981838394004530808387969449836242245271299964446148541478838645331940915726934190344333071890035691334017968068755423668015168950425149424119715942426382985793312960860599799384622510995511178938794454964293620204051005030273194040092223106682393774023921225250274291197360808579519170567177994824444521644509024855616578333186141727763764545594139129817141074426116963829635742257695973928907202331584466293446753303762283314885561201213606670843735688233299460065552660294697575295356363826427277069509623281071043362197270670733740875176668169871454529719924281337409663800751378193411740583793433172521261800530754971371118144943324254725716989607474527551496769648005208199005249737715086766438845237535817719570590746053668014158241583959476983020763799146923432844333501121544917845785157955844758654373975792039290611348479246351650124282384785358392771668398512732942883994073330301845028655967611072942148578561376486534225204806510519752290024155027072017132076424237883354463379307543450599320446290087648624467283917870628117588222026872210481822938583693958288602270595117480404446335404566719404373456523467681922127268298100355296306875033724079953437075969882897753245269332780971509020360768751597938923732099922648188396626995821526902092022716860003204240306118523759865026267887130947738798434227343636912218577895795482616584410829607332933401411273352480972838445214117573758958932716476330171351920980074235906958071641168838685412818648514209127564835748324932053744912513827433368743909778723167351878059594163393716209801963519662606586405014944819749873577453347910581117719117678420177941787169368363950570446647580189396611797815549921675226079220876341932664115873514792998892052893787938050805415444117020642944991672336485790676114198223757194683942723987015700131292338640295132406600793342003202091114044326011932025104127944432194306593516369607197860231951332648368900175620956391372396562670338314543105681538402089516012062624097669908818136826623362239825578329258863215831425996496204636260197989518992465293334179166646019069253506281071817766682056465768095115702501045871124044280303006130677796684322184871770457300206551743801010523932029840015134836801738567800081404696096778384664917180540319063021770313378934781844925246357611202319251040804185913853659138891256020939932779942564798295094127035472405716360762921341174976357454461018441481526050061449279950595903540276341085310704175286496009608557612426188903353734144819080774563435899294134962905184208506091933155633902974552582005874540010547563747912321738938295292556306728980832273229883024432582015403202446482327261857810507689688311104815683397372019235239492975794789200216042549201564849658570281594656302508802116730183486019948590598732418124161610643894810882709764937527299659940471973190990250501873535296155755072731695565338250673175647798226964606844980563060451762960406860830159507952395810272848777477964010206949275472540177590789015952701470946413143109446477093261098372459419968862920455062858697238355929377952918977014944353911314883130906678287946676939766663679346110912939427786839907069763806872241022769182040967021552988525162603861085998346742815250158649086912371646845951817225500979162660312830736931316805039115240009827976609356999632607107817345524078239335560730023165717229211443955272501191870139295877897076021158287920724065801552453875802943507025269401867824064810551249667312425176533365417236416123170259959959747624642267767319067446187270826510401657663419817904557878689549637595430056833924323640373965081515725214386868826658606962812538100211633868436745754718020549804696688976654031737164854207088147566002124389148822299822201374262950553955984673448485980930904673551702686686004703966586682935826123584569171578554112771702057162934182114102487767927177700285583277445956417411567166013923958181678326071713535794605614543334228019490522028179804493789635193985014843000000486467852478230405674321680405308021747497005397801849643500000481985397778867850031300066957462260843445133645163973070562087447359828712394310741758237512228906625251579104320613406344757324550844666221926100537707821885258176247778226000770737525654300365826882710831562741899954644829285533418976074281545201592031645047408326659883240613599854054104827115521365217316414085282817452583157765645427409633669821274023904065769320678177649597769526209068727370338792854339859109494171603094885754317772901327375764337050679325821287507639475724239449516183226982464342302752312935991324284329735439069999766121433776818868704177034582473499417867406612958566994594644427552208061883381178206946011475984100014489076001465938889485317192775887682934807318328828315052922012209908823371701481497986932502639267817291746516369480161085034831092722653372498509430932999151893749846080182635362779149577042301734161814294327789563052492554863173403106699740028127712888444276709967899052917365237387234138424774217007791686863911715208675207128010848093903850746060943692378877429521215334535988757611213808452772964540033392833750344764559901680430816966173580737355038944274771367131170057065588886380235065907827495373689076340322025331724464559193886963580403253000575161390909837809725837449790038478819701659481084950814707798271398855084993262359491049636664502829297982453695127619536834970834585208829622763288411013351821568792875719988910719273289325204825446968529185329913187297747801930448141562698402728090807240405463450150709660257439520397006748046842599799385442676924423628079292617218902623908525451520001907720787350661529064741062731501568483520954055369736062121580065475318876147857831684409854795697826614664834902482809741939397347532786892265175698174320194297482811448246767590514478153021944735212936053485608400242188205301089016123286254093442267916517918471173311866717248561117818203751134054052740379801924680164217876009640723949688929527258729008557193291430273111931270282154675251353514278841929062277507962528042402705711665283479968353770893777754224233508539852532381768546245594091156871606746606603154424725310418067403563830886909148215289609995457232941293883276967517077865846287694131052218777574839760396656817717449261904961225506029673205715282640518746789317776324441324381033068382324095879071388064958153710498363505940790118533932014163058948815805076914893120700732421992848953251823202143479048479907233230211820441561540284858978047882639501088103682278283943353324571577388891946006490470537837582602744818070189771444044756778726950491757840440360161079189940141963797213395677116985659391847096413871227985618973155483851229445635190043612456134045816066924165157884192850266296193440621894305693249049620974682283576508808819191794563602678347031304914103058326585104621500312705564041763855845982300036969644686923403776016532795894784267213193934320786829029240553504218133027789562830615395895079665950450118686879699936754280547315182900477805704193373371274849889194842161378075805907557259154340271278570572709558380010593870523389270376033321641008082664550649536927372615643954080451960577903362134576504284604610734254899982435840329753559564352010709148700702811647166455374526913820086020412127047458536306521432861279496852166374265892566104692899059547095836794401154953991223339724226246625838991611726279744145730628119049810479078312433648359300874316184456476694804787126114648696486850487479111154459290917552025985158786948821584808995752735158102021167760541573498438731068001101858122164740673717043785979030245095267071536276306443721119272304117010533928862447190115776880814288826573026772656651842628522941696330016843828571881096075486822282291688686016066677211972579281643670397758977385545919696854548686577902119101828750121496159023827045030205054412441504791127874522608186935883132288951257587635909804987277778013894307863925722604786885763378819443743249230596874920009637563509345248128822908287185224289898621044107452170992714465088763027417730470298248582239491217651292866841679114905432564205626039714293242755747367923690156843056251674036928473135061903942988893937262791502303320890658187738861973886909139972097988376772262970484440895823040885670830065602362275026743017940654062329284188463139516114169697872496197442730715483527708707463108955874508894669719053385372972697353981429093017828527958226029846311414986623265324668903401630066238900421434905268812840847123570589719327220089082751486089527492621480864690603692222702179449740808349634241206075455979235352757071909418098002659707166256132163849449522905847828172685289366309720260093731095066730974562846857780456489514736990616737248247768481421601383263821005472653086286411225511828492916891730255087508614428072683958240296259612788884353888962884112402796216890591718316121623952505037653064508331662057184530177309859446251048020911158343980552098220646110416452306353834923224680788095026924294287704209279399720926759477952382331503608529986319364740992869304474386027162635970441615787879841437180207634172415458437598755877859586064531112234243777580402399192031349554038768573105384941480782202827670823246814410410366968463689333271579979092832631576688236001641937427121255495187072484938099127163637584605113536871586060301901649282283840120982200181239280475170095781699086351133504734504294697396849892764312199716127772251200953532873647851701031859054924936830649983016382584263870600785516431468849096568191806905924629362793607282067738506327314214153786812628227796561324495583218619845051572163824016403014866406515531597711077954268046692269294730338280917570216894406959017833555861613600921233864252036781314620261015457505441008996234094857282778385336286898902510054931517839357320524745873234417466550931669937061598809388402777575844992216704934144642255913779786391750169828425135456914878361694646599186995254012466437616692805506509494305010303424596837774910579629107182607325280411024411860158801836664134055056599850368554923232927305326748388743190462300655540710197098122843281857947966920931167696978623036871049267406215991343653149550854284046456686306609813486439949931138287892303318367653583018599595126235216761198512500305327098688248562226589700875410802402569710447249308723464113489286507889386440475000795229413737256294507063483003246501161019976338399969808981297159233346718050542486685562411710498616849352951162726488208080583092757632143137668871900603388563982230445017089701491403516210271959638220547451488991763667880757866055934953705623997793792395981012913477795816882505498509182796681991739192713395620632721952480317855608231862292621002469182093275120288613522334757723826515387430475493246106853419140089165310219220621724570488944643765400840847490539093347357129467787766169139617223425182987220741330852501252372070580391747574510233770526608192776503706797370280172533903916766449859683797892731349471955540225085825664430891868140535674736531436286395011193996398313846796047907607145364873899676182737295495017148863408372397289695118171539368208967771373738742622624005982774782266531694752578690185730841287387998143629578666823225421129927866602266330486789454773625088296896608918979143728017051453133961708475955457107627555073454074635735210607288032159558321479742405431868379694761846830711574283675399123124970001339489310539810914110046844188237041892742540244116687001941168882973694217679564125257281286012111159013278866850461748216673844088842404257066186378878047253435644430537981293442624428771467751421758857990816257100701530896070183814509690157475587019858485043516330858240664437283375789917391864356309563473757262144689205805664316797749388934953428251344857774561970856187636595058244887400892938605794068085717416566472355472750556484610622547183815867235021022887483670251604021844906128453463616190922723382095423943238744852276178922940960307804582157400203224186504559544230730070801039428412728025391177279419406413944515202935189336078076940520130570669757179416235441420421519178314616711766991769428257974661974377635806219217066230382439412435364423617587039510570118325247770683066040922628910467910807115529140357654730627978109710499803797972912434067157023235460878538885602293300356440085834711318150507711885101475937360690396659448074137111738221242391369303156976048518123100562721846278480227647863466593374857583292404284126003495548683332709856199794498378362309275035285052872394532553381592880376344137721393014315483371777508099103853556475660984973471818682905308510685885433119229736688279807504473021542235447369138657497994738913157211059933278721850937940182510794602810629775576340867666604775854990255383089024211425404909201772189201589870764769674854696588543406902527863651451264838907365179567828392901878278931514869436293083568760106329128001370812157185253064998919690962193327615796783761326092834488919731984193383411557699496680024773581537779967403936585228360369371954463238686694477948216111496903860177492370208892271170418806782946832123373334582876814464202087281272248807801489083530540870080143205616992602012058650232288427286846216061260087134503032511846582788321452213623595493122083301917369633785568766041940766706651544386719441740979522460983089784850072892686565190442280958014496726436585865974619300978828999115375743405725745753536854805397641263461890105816030782359818948137034508379775570831193555185010715350528590594532396488646926756293637386376139705954758601748950082110998932096366154595551226999515964662429571299990601431479228407461998284497412908071924441337720374683619708201301450482589100469163539066210736792211467980300859361669887532830255901447979670473108484889203426249785140907275792241316355251611963249123287021688590871873621170830112841697040292935146919706504200287597511186673864755048627894285061875125070410627122231105811882975116599306002657197233856588274868411657276889486690698035962353965557972314172734645032382079378437034812761256775400852318709991147613330671310570793544482407387849861859216832952168261702686805336525634054480294748194618806435528336108914899689044049334399664650557653204565664371687238312357327393357355994651498039830605090775538099633834743420647566409016239093870705780700350356685192182132916905301991754719792009789373771447562561226641845214119125029503469756175855226640967029512861626575896683679972422401268895926616468687733832230825272992005731258249489941505870064696804512798686520417143780327242324070057448430331342476172134892361659742610966002010963824184743358729372437619489996956076149982572286657618413060592538091503046043024533191065156853087621034289179694028364333800468594888188180996498252541908187149551590749039163480875182866601819245332526570507152539672443110222805236350232821476664707021941131777555848234372063933813828523906515094537627252102789761270388263191837126011480037711270026298575439928635831930489545280492134925491143350366799590068186869850765847680621130084204428996988324748617383118523006262910183293733331286710677256878177284545520764783048827075252898718440094625277532815105245663808775870347171287314154142416906885471604136511497910763742231517607897728062450688920900550019225042911605571970892532720651615253482273795829011059439906847478286605557402956130325859181701895237110736199032982163901479562479600828750968281380916608714323159571562110966600784082510939738181983052030316504722579888863119119808098812156527748762260329020750192432108988119181281315243889797266062402942008157966367668372472246263803818342066549667876177923539341338482623034371432291468186286424348425246683034597957560683766161041295471274987859433518457524596723401609557966705376912092598601251236399868232820237098124870821697959204068990603632876161146919035152452466293889781465131844612611984859305175271181474108198672398493947664506662260892725971841042928689811826667567090803986683674320037610108336444829672209816396275588647858320472050931158345063128815230690011431632102383924634876958201106928646723289390606572912644455905535237393965014629783762821815061492394273242869105510278658464751273972595983898256979379090176795022978405945324376203101251706475953888034065492269262324189147879711687752426339798970752177853186076777045869764432052757201170889615571594573518146942660401588143998204398628709785165062287645814081725660537749720348870703900184134965219393862627448165912666727424428556850420984651487156224200305534523353638808764500826775270206151020994258760270862485163468227852067744419092045699578522734195095742367924894347508753309779287046835749760031943246197654319126885289063507965011380866960928246588184525836373850577447496826130423076436083515872950582849798464210692030926177479298564410130796044657111339367692641181898328998972790600436123388197242190043721349687152056112402928953596509935181376134165232420909138514082404153620511092595631770464036376147266963082078320378578935536571237584843964257404067144857431430980138552481260180522628872608768954910760295586496162178297546158576981779573681784856573749863778181833892952226666582912352211145419611007634199083951165016521357349486743153907588901352443972490125730823132632495035266939001947460035430324067602408760082192352847219685198005270877430809828208588030793567255173826499435166373527669034746567054028400186937183850896309505401325704833573101877078477877940362169764517075801681939557530491342848009234527442268165861273006942959519025409646605838686453134585969433480363455187901731403661240902485631331846952796720536939578808159714504374984238078375770834982821005451636851511453639714995129767935585431517787085017739654040516043440498070000889524793521062372668117558783290345580643571244822665794079852889562347971329338593975788754204077335668793579617430726940949926573155816186048242542626381556521772939739480245820186399841275988121465036788142309632024920338908259929350749069705797471624238021523068594728602670954235031089090736667307777152978936798571089571504162315137992177158982836972867055935766999222621403967999024951816699619441415337739119839403008041301647498147781999451683298070519653793429075077013190092103142665468057841846767380641717560027097104629371931236714303904576719376328570477018509806201982672914532335212114770927548731140436653992056453238594454269013693358265972740353014019385722904197897938928289732224605844751327546773852998853386504568878388590322029495741735410802080745418583670624039348003667929304363547411412694416674461306603460533950789383034838255616137448024644540592319030859735501261751103638736080535652448606491242689243723864555870218603792402744390195273959497199031778032226294543624695513726925725377579051576217243322093807172991204449692230564155458164905472345436597023583391626954787771995578008701873383112190444431022930660386720354988320773015362337059338094446570556896513245430355867959719406905838569685586237556596624374010860804828608810502336425635974386757998470369385604887204124487994520692646251318287964356266385227187199551400554900656367462386917274756104856763727478865716070976623821560452586306816160292567637745923232678526500646513700977349614008555565959798867755127488385709525156168746073350585114644804149254780934455180407510563639134849370884253996769424606195610986579067333254858129426786268697925130885833865437097311659743189448407368211672482747295511404601644642897015753093415131673387333709312450433054908505180810822479938631389709855490580849417001568875378297968192841758579074611625855739646261830727934552889272423190663132086738928607629377364925689349659752174625650100770133204204681726250986136572274799147226572214077347567634125109667885456020241763126983790683221983633590823515667588868333283666783497236152459051624055806871948971416363799481514200272933761624646305607668681503764750336382686335983459959635567505495713220554956411466078500303954045779424321034394184317883494997568247797119427417753381605899301163468104955450815158386034628186136765019558711540994060892212097877244371770613786380274712310416743671350099490535836799613038402765820971251277985203118126319787173138881206248113728864957224185679503635364349515176927748150047222133986896485039890276284046115831218768106467634126069974353233252168103222905566083073415231845507519132352454758630416144552200320176968917013864822711178422111560405412472748049185833579497024471814395625987359896295652791061839302493640932863882256651827656679309961231664246656919412718439704071497272089564498327398453715773731042800492643447680663380570428989691066531161950610730927801942424008113195490555411921530951143146323179549720736503209090618132827905737041529458471126698915827025204018455326590479122484486746817841791913284073680401249172530608168375542940902111830048271077062891255146022564797032995570680889777742049753176978244627676995860593090195705600597306454359788289229110405929443152850992029014656237055707985785646732147669181575365678520391633762679544136565428738359714521834249753509732423304399871620770752547782417788225123715250593002147791138393169423079648113996892300870277986800739559711581765913829467927646838287426978646213464195108509841603793764541870002883072413041414932130261187559945228642257699143695363045596644428756756856950049091271809307718519777450616272983196470879877032289175251087041644223941743496223732040358780269216790470651773067440530016333840986057608530657514283391795880641642271487539125830012681560504987570767319775752847921192198780800023243691621621899075814571036808019551722951608734059583139141791372833124901866924203452461818825405439738408647043385498368949974420277830964320984262675568332837447897327962852216299139308320078547629926692206862326467353338674721148720885386097476191634127278851510751589841762470794647421128780998517881146659285074777338443077578769974209178798131232462718046927282371382901370334838004475622073110190282263716532857130745212322247337464087378934043394089172292870906036536919898823668772517696243186364769841701886613435655744779962327021763023837135028218468201698503646310404060915916294843815203192723367421273511198909192523222190073914855642559626037938279370972484879867627889461238513494096801099184458981174009772018250208111082550139008114828120147300430402646919353510044277150265174387417438424727466970387484839579828157066281760844191624099322006605562304007673398483289940111199667880181674141776320813234164487520683467546350775494946231515015208023587143630196211118865539644349829969012583116578657926144996549038073631198356607926921958728225127053615605148049136476820695792627628840054419337819417519678204229584349418272274710726503908095906711125345349442403594774072544264354030336275538335890764839337396878054455046856995860324492493655571811609090178439856370532288085033281998662192900098136079555415569624212166528126060694304043845312392999455184377247546080921207436202656536931031512971775782805604995292742097024959084110019523609197939495146743724216072798892054759043903351608891264901723870351919952199668407304054401718910386242728624918914706494816201455574452528987342187058478113212937063402352814178380461450772713546892742014746821748216241765050972776810488150227346235770602173527592490094196128223844885081460383616827728325577880578449891182723972036674035404140200598816233032483492479544928274052483666998396801815320695712995895286602672974204523678274690233916503738867875747450899526444223655772155085789650558057435111380859557964111631509367792563283985359055858057045383563111506180652824291254996726179482190996784710068200738098044292619072145227510744934166809658635019244077676422049082870795862535905944178466455359730069592270881835399567316920700077016411533126678243865219329125959940573327597955746664679105873283208168237477568497402740010293568306614005905645374479259545111190546634948384136631858231210876087016385602392905331841260307506450883413201679334559333402225273596475172480775238256059375868590011098107660991912500748691438298818352722008623721824573140146072955759505018568112716053423666157486136626703119244696822968107649357040692247613333339325300909163692020903904730725203219877458030418270083944839219648219244934763922479540098348438828410380380146153195015852024034837949961786130450703851559347253272207442774832211439379596101085827030425738479424816944935724680655329749759147017140508606484477327630760509396142982971614273968808435479191590178069734551744860476457308339418411111257322596400273802997823132547671930651053872631532034102796530391100824891297489028114813574082133449674157945005289238003209352383837276668818806417326644248461388397502489989580435774559250820091094132606266813098112807754878279118738108747818633670708534812071165875718440361569841176661256762521798034517084186776111385210636610701375664865037026948352866414583935564374778515309818555633101122262735190713921538575539150032624547125749524735531179017960818141962411238666437331847563668311277852002151850372432493029972371430130224336812068109580141059471219329892975065173807449936370489925098029468466586447722277636665917869662973350280851793268752446796020158680249651016872304269624742035673218512924861146773483557318436401327090671568268705293033176483784003362722915221567381116630169992301976674799700100455889757496810865273855015076258124215902632451694439842724116703496615010883193972695920189399952846426310735102786341661643039739086274034817290494213286384729121606479049340780953990031081524208224123340639346238364017918409592571756851968755223698074947018657949861516597678665310139122160588841925903957728403682954232231951078524662633673519160528032650613204933367639044900672589464822750336679417046513363703800860874659766814215849254897674271825199460649233465365020220507531454466009875324191606360545395321652530235324184264785920691923274420987320972129157374434381656973711518645060184491867180196804890921560478927528677976933588808871127177325288823102661033763098447454441185014605841817452769122224268443966834549870310017995513474077146362213429850209386178072482984699814175294702953498788011760128035186863394679124804995315569566690338006202816714964348111059090064741613707248643963969145408412135907551081384250217708166892414624836196795841755796759111702392569859928044256607134829297381632964022631617933536304604976314255442785958952266004162083130634224915750130303205965028109027652281696551206132722580092649730403205862784673828647873497957930697230064465463786395545030989355639461163323253741471700402958988511445109055610384038123602920656765199545430359303453636847450422503535751460396304897465333835058697890165899744825153770068450086511408082046184246092217138006043218846647438723298000032904667799923340920131300888961716936376572840052507422028035333291317850062541110328411601657223404879755718999188865739236208670637183830857214872348654347649114251693996122217883278192036370955720550335457623696366554071885798231715455555441080012920249122173097765244097866583406936952010193436470915293629139467074720239338513302760743925780097033921206149934273358446201335318274815599159128920131111663419099035689065924207551929663447278772595603767008748285766513021311947426196675705582119385624319058088169241307257140695959998697595886523294402642413318791512166314437130865730500740634823017359090501704997192691743158363947583635971455422544529431171541917157102959639896141681671209579900641383330122726427550937366816419854736318296635357321788890210274210335276020681697691648916957610382959531607464964530233333737490656951522683406582433950335870343810347285933886485968114324566973566177409436266015185981755054824820974291323809527416136367400801628977587287153814912454605957343651851637009238155376367279807574528534687491128550619065766577218286853463357130638825375152325049563301708226020049825653341150523236706052073829331753030811031804742033975435416130268364141420554762113702097270510347291915594759488183753069912432447118409394453212469102874720332937891358744191571275397772549182126096959078872294296171108933645755875825655216187624527440765511576290676923097918302632525983838182863353156016967140523717798587860306108059755715910248088978961545642931618407901915501805151616059938118834008733228227887670102224191847925840333735604201178918881402222169457069385663922028574979997620703599363929154381313017102973446315011241493834733210824598833460404381522935101853572462452360645779357601523941179366052166355740609981569383693447165869368151756697625007131276183946808522996915822451878644280433747306149310288170691370486977054091500693758374840082725463228956810262172122047045092660610185595009942225705611981955830784642483806224740515546178314873774867116760997757045263726241449253304435148901758704687667498715972789631234083946568739602350982507648156311178581221776908049821515051186694318016568947795288885043367563807069329161339636238795140415472830280474609980404807239137533222995017792963355746155505166939160962783056774877502981188386116299511485294959066850365367717140482779110275746978865916268347057011032358591840635007121428360913916271349004773553259435614882192499511084695302932258585716467503619303257891822670183502319110983940321876178472867024681170269364423544610130664776277711496559508801907041881620278904684043364225648137489430990599103594759091926952271484423369055794164937534074964232362732592055563076709677619461693552579189572533928127821528676759336381750078927874507088406674049089746508707782495384143317067023781541951114219074854738501807164306675969565123236569000693468112622865535767877356029608235531505684709636285423039091601072960402891164582462310967331091222442788264946832996788932065450004828484915594226203243948762644191559546960720676284422029972540775917301447478141617848084275785250151100718752482386500190805281208047973932950433310826377770043049468979275729183940955745317239439603478240781516982039002623204540445931033733832050081793029487970800504667027649426131852972352294778905322245807861004462533140691262974174246493975485113313062425941801143695200821365179536626587390231949415352758127637307727262709967225508767693000922699671812303647993086913173106819216577395317964080127873855603648284381107532916236779606128056288187760001916460694546934754917979958321221384564131224480275114957345527678025714374526794730181840528262233157185757633631508381333248545801876001913092697736835866141147255615856881737237502600456585201597589600144417810697609527863742573953371410156948499878930029054517980104272078770729696105772468058386958987433660940876342935049370447134366837486200039918161109695689921249466475714876014503026173770033999169674829495292427609647501603950676880217612236198074356612959145315528433289429396173631596393031917597588570083977681771258640558556283854630597938714135155921442714814878423806632304137380551370954559996941414811192670632541645563840695592124712759685283961946268895084978390084008297736135861588725724919554263669929154416809626188160086943734159747166225680905220239122846228369969898022699102435533719061812852753171085484875197581998014567054015570807201115762599407413783143332750060152795531102147111517593746498521592817582527609505807141377345710251831065118138348954158733416344124849622730541362244082894981032649118639392196754446265998609098881111322297254159495165324828260194198165047064591395107028827950656357078446822758447571301957569756985069691673802134759100010259647572167585463814252196002903534400813088008263391792647709731361209238102546965086807957130517645557198003580466150487092221062905369095410232980023954572679052886269687259459586299255109279634810626255106515609020313568253252020057326230743879854573851525473203294830540820090837665910847742401297520274261641894326900494796706908727503024003147977383553914149300907757041311295664824025855300882647753798481489981783197483424827390044480123401660485486532674954755905058690092062598261868177587709152180382689986291383153384202142559886241543786945163462381647489533813938309232189799746521979527410604429874573481582834676153374944484179225202569807118371965526321598191871314136237166435545651824605241609921586924942527067511529371436389295934289673844017413036994320719068783686732656786159926458997896244335450453427448125841199366320728200073702784108027649044594659095518756407912996781866233045862122939913775947792426051016941583982916863611970852326339796238942951779739491250114937679460125578133414767791928162786394673744040015647694037610616237116576915775117743759142634196608981438691851638326122132157399694789582082897004508243567627356594419337942825477450051624100623373315375172678760728762536578229544029802762545917323810791504043459519914306591714990018205362735986668807756891408418152324850172710195817250740081015171530675896414189723482481153898363412458997061596565614718989223106348685728499569379658137789063968056735118409843196480147146706995672952371661476214326974386462531416272597248124597888539513174932474639950386707730822247121210919116032220776590848579403786918655065948820188345030743600598263289520289482562723672550151425484283941036968304367500374614781747212506901927696064962993732949867569066355194855722790297911409835531000950399702706225316787394042576289650207682003339460492690740616506077669445652064157244068995563293470471880886098759684346123862150527131922500165887732739077148968715364338431240159359174424203341567206080121839918709129914549381295766163652087659997725716166946237627810225148506120525320954780934482908303287855509973419343428781429498504532979405002058688102286184812953255572739150093955556581399825175393110975600655721575692797150699537634308777214421722643202102598828934449556346242348996196462203208745232450702410974601177493706945710938685418455421381691833207084970107554109068571863239745892408887177127535877384495442261298077128147340430031538272284092530716590888561254786038140133370812487229470166737520146198472713484728144690385349061589489393906987404112475586076716961879271436692038832170167970356641448394441195926935324331658820548418978596468976871139092489731348655225997058277018599625513907802944565069398869930650918708805370708427512184256193583368552472008228938541830528217918786660768838328723661187663784064104308447346584042269390445430952912301811295917297462857087626903009702967833527670187768110645801453162692451519727842340799072235366392664244003756213079922829686053657831473288657880351221476434113246700383657404229103087141387580576752880541017476582508590878526543836907358897502494605973193678266346343002302154964219678336905530467924643732992254519755847263980735947389166215018034245756389518635997272187098965886609703730951732826358856155737368628646171000591978616890989533627636822831713992056000809550688238583015435392575140967712293366342987529538964658136346921742401369558018820382395485147706353679629124262560489018504375713008000423122094574483059859592202693947278573170099524839223672472583837749987066243303673430551077057945449157732141467169444115255838226315330530966029409852866326768139998837263742796204593029677274349826882870203714150017989810386066102541298843431504800621144582729911416685394487111006496820246159180125958787137619080608621926206656519466187093049279972820845114827788667479261791261273482291693045324578096053706208177084441150167333783796839040153360308339504112707199660589442879005095893799071258032985320126899787671963217127548754727855956332661659855370905429513164775155588070107855147484325572591172878794044725565668927648799805621177858191647663945640606638395220857260390910431169120310943565534547357959885951732895608158174757619401383700918882570977973189486159158765785542029188940190517873008293613461042998755644477865821316070431407204251200391310037906025908402244124724325579388205501753970866624651423444791735512242340608671746815014933322509058793320719362809894078415146819470622674780659296197907540006634106152645536038161770512513447224425495730868505456865450388872777699265574018518771953336877942993593827208239002218265553771861810421588601793284826074364992071199689308781600506813845707457484570608330563990121241083956001131049105569500818204187504422294897775958593484313603522318746209035068471090285434187964454711575080227646200872057865168653112916756101079222828677455628619212355913910165592963143371346930860134417886747339000101140608199928415701680133593407798221348041694795122192295252888741815163132945473705740443950840084678157772290068981304418671232067353086931804634888099807832916448721639088989911105217113480918466342589492407962343869834163267103248662649350478059190949296758232332722736308824589865268813993043881004530313867922364909481504330990040281418685456972912697492823278477805390917380392738305289003797020226288519588439330489738053683920249350920116267983539895637606098092370082752425917881570028776446360228254028712585856331288213602069983443264263649762963501159347142927256373306276225544452316509212930936733078546415315960665604054839482215701203039540799290603154000489596942000384721965379375686728682138103348670805414892945791478713611716640969006671585937763165667603187388644787395458485583747365214422983285146038020338463240035139719111351396714075210360561546367910710723104750064848561399139873281944879613605789576715336013458455544839679771500012207784026050287420008593250962832090054154454798100431431401890196131404901423322650944279691758187726509257955160192399613424750562675550596490859719560519744817990364035161890534636895478181627608610998867327842454181184045991514942537473067350540640417250254943549481610415747563176785907120905405679209748997860069860988574028471712092007960881357558658030847351335800687198239979870375933078422083878956708979505827494880410946446442251041093180808620111593682031119956516802571517715147934020114250643979581334276695168477669447330087353342123112297838890810555783092166378224093651970846618895268327858425748106655046330443600004833296827714947225389060352478100954728357166022578081513335236143793342730818659490956465931319692727967031589922076379358772303114542241759198119375124492207469510267132862867993129532090339294660683921875926397278909455580918033188411483523458488984710183091296038033849433144269220350017215941859962203337559395855549076283678632960969385392047801466601317356725560369478328217618287900560048037851195508033595025942819033825792288506070246813466879671877227573459114418314656413473637978070027822731502302056342781598151442164062171943302325499753443124014499028578855392266807276414130111726477831139657571355305110070713280963144840639395158393013878983614852533240483070119190573395956087161114751133335808661802621361713788267559973058042013045680645733344770018488453798987065359340681911615001947210295779412496078030664120363039651862359520480195535227762854177131417039127309055953125661350356720695213463847393927416095277019122631127538043605655904300931833540066436785922340105931175139242533163032185504342701758015161114567946550107995794817108695239099932528549062755733964825441024979319047670801710397836680150842475691716449604223039885557811130965569532809313621404861685651209546111566899362565996533098711300904443886023071492137934060297128271851005037010156076987438168331159791990327794803220504084441100474569688013703335091006596358299925241185066429104939456553358262892249545207347945453541564433288787161412339693723322963520197007704171415091545279004291403022406148867000159152749027763904695960253869248911979144999362073873449599732473250549647068614549848735565552037232079515840263642093751667845257588562444540987948696981475289715534363925810155482508594847182848274134580799758454293466164088089250121866263864005252796950797515366699068141019476315987680555733299242497274215122929401611175378930522075226936345881257333529528082071092092294476149713821251060042928675802258631284255237281755092155712096799026166186933134139962527686976629076631463862182780385488539884609935821196541661286978299256868566463032847210791427240848193204316942293864887255758145449144225959550052596915805032576735468030128043871973231576516681426576219342213658489036435164793900537538887555812721104783104036044690275361979761230208500869859271913700364176498714868223603894478712359937511472181331895319929500620650811246742661727641547068792533009780523288790156430063143651622355840183747753940594693713262040202979586461951805017064447271982195053833860019340895192794867525297553464609369144387768710452693286041065789162801873669907711352463492001547744021549580445839079813664063161246377233663937586347694952698279573641840229431261685112556590911173012919144788928428965207711843897560017968953853469166013112045327222515998291919382874686158946791439826870338035161138875393460456065560720468950192273575490230291085302207774489591655738655740120908949063452586777668629725294745816528171315689090634260689969231192136772035327200204582453860241624131217872828929142090456230226918478232540890893865597982422993922280078229782072164971181345957942617245090327668543187626598028847455798825250210741310787534428989880507731997229553347901361306565840598659799798895319861557119551809372034055947962044339756405322591043217374823488630276616430550526779012860770257549775289095611490780719015703275769185066540242300636616309170646549706514590858368352701677172485587437980706233814894072167839244076365335467141187960047169704110045147834204568749573381067562678965188971253601628019839144308420823351710041339742513547424657792551713713830664485017265650880280331413581894584794989875821136828531324297103955921865583007937761437296942823235803013582055608134805062196923998533407282309708088735306539571899681895464914507477529640396843323245018448261298275204239842189086645408429547895661786670261605798987176589131446157980646322635418692399339768164242678104497434734455860686876245659247159686286917016663323086039105139943214234603844566525238186069505844117168415721863623579689141774840928381561839997443859995197691564459050909724058595419604355373369813142793844324159684936288522791022396325144392330688594979692557009363431620541087986411985076674482704348973037654619101629457971622762526054759360074924118183471053420977459481686129932075973565256310959045177241714235561856281962060946518704681858625104229195371629127276521430633878047669286586802879740570311449772188171343620126000585429928207934490032905306398681320580076248012988804194638548527540125414698204610610857203123618827200904006805196762424220617095823619234825499945954129708213001018254667325832232161034644387017639678694762983744741114005590742439771957131895510623374932919972500339404969453867690453465156477170211018741899941401996691680306755632966780083361615499459898842181349373585127002582851953886388190268577480085981062539801505046746586214584144696030453755991446425157834917749561085627033134028181680401542940383128273231515307066608581676804769954012072932415720701799176486127347492202728035512476016218715847535924112739787544627384939674357085905667093916946459953489147269966754442049669393152630893078794654914997592426121999882033820191193554276664099275920188341708973855127374973929753504710503075156296066297119859122735939836404730968612677706455007881816846742121808456435257912179805790801011257254515663144581387209800399192432654267389934273671357074236985013047389185215400871366949472667582772751643602629630267315241407962968180326920242258905995379100138470472493450320196562468704793054681899417090735300723449256343017765874026025997691075729936137158584608651082926680459420721952715243630990478438034620434292196402342695306630210359721622233309012225528046800935935823722714688566517507670739301789011852716671632349903751376590434408389804945453248440464116010017298823820297379143242160041042636981779665715683280216838111947036531450490929357545538821982525957685297994441410250955983144308401577289412072415275183876241522992302082710573026402762509159953995868021359391629348086507817913569125453331376066644181506415815275618724850357845568502700987966103949050239400182704997881518407074472200350122941760561969385353977735231020906026095707519157061213466971963240532229532294946133234588781855984428754265007636278146165406196570504872189644034267002289817370149303805227913111006231974568674356494187037172425605213588700241193727476227012323480206621410754686312712872168003158423318385411605240397663778485630723314477469494614697167872930375304836962258363052995736553927076594468650528481407300777954911888810854295528971897191978719654616357276851721474172221332749330180801646232190029711487248397689416654083701926949241281480257469600974436041942225640149477657766128503759991305827041242916223257838550945908593296594762573860508201409489593089406189882444033186534357382776855687031977799781787917099203075822048044253826799268155652468367963542888222216607880702244758428249379189262157256243699534485300573783946516635668216072105798778865541922020851199323260584428671054929631545512527205943562769345123154745667375214382529370317028524782753484377073629317058312098901656195241517760025261420259831271310589722821702754488694718725423786642847628959223943788361584052823211214099753114343045720242568951569748404716499255248078108694362603090685365925026532874866751267744888805485749566242251175394358148693275437350455837760690986930933768905542178161364347685739363518857000473477769820675178292524152747413156182803190095632279545672113537666388424189134984698758968939082497264645694699585766759757503353391457851735553454141044576440267661912727698117332713658845618333989853196237179547634404419511270257696950418682185751412202841517542366682928164755880853389396466783967862626904166075905216882585788711606210562145400276002429631115564146255276200887071582725709543954080566631725792917871565701654739095090875180571740037626352711971468408868922294163423438828476057699698633596568475744259026422673069645818282556736480905474992014830369701847164646461365868896876937524706622057488914793621143283246871351074314503645964291926634285099792259035686482833420518486262290432067269513216460549471455313490332764844052606892049041073674167801979623399397426324929675016125702000210319620882809862649549651109511786441291719571691408435792933445170690121306721317242710027908386895000347435434703416775576619707980818491574756303978709203669359705320693992929076961437739108068136735929396984082826769388584250830751307713733297890449788362869453847153459283199061326894059111409703960686200734661585965303807478720523677614770686058432637213736165523807995901331237425036585449619127124221539812492967854725944164311826887333122326035516717816424217962157121426229295427869998457614591555138291887526302488211274572820715074816293025956698822450055694452557680557049956199720857053867598353097530361932794335321416349199737021927258700608043636889705517904139844174725308940114327038792683143713866223997621743500796459966751460243653003847634302895643405115931299653784442956747817065131045152427703267157239292293521980810129387618448216433599071600972906739150416006607075637700744357202225523590713554590119837915179580470534686870273353077497939048026575857325329044203983800242685436314069686134241763184875638333450469650964499940792344027705253232322778667361169793996736443994786772313885436020005759371022220624652544732579631995917899601982755477676465381911846497352606573304775632461531707810774040438579587378213542146159995664962727674609676235413004034327966606025832979156027341023554776744866762989226217969080002448416609215755392308612961034071362637791895201642823282009866482504019059043102615202334171381442452714054743735631177627520658308976493695523494804825685159207609741057015957451479279919285302281137703714240466163921976613680727665778856382957702834395734147009540454009035362895922612466523371588952952732611639690655522102756730141857472089758246672337124001801584071454531455579446607658085194477755964614518378802374145941099238396402091497784332515150268917802482886664303648985730765871661852070400867466107520458910222840642316418682860426844078340124222521273994888067289589646629083807805651206817613288849175891779988946403020385904407234036003134593308831652550883310878301873329050083223977027407483500080628837651128536798246965616863036643773130600594567732849990162557170917544708086808759212594695726364397019249555901089054291592464240015656561693699456223120036444727838446668230480555354618173999255943924921272046558477227176140682178806026069033407218135342614742488709103776409715381373328708907056258283971504449199888290566585975469386130769286174168088924374168374125856494444317573651940346749014880288609088229817705726954062632506776849476311559812114323669975752081071517331045413579134202995157673475690978313225240043113108119886301850864715409813099871363753855266972364468245735390487707671236171062034066426824231313672573410765103634772345743971854628655995290349234365394611772253928486730696044096814361850635739021944772602151836065086689105137521198534583399258636283763031893210541837640054185629726062442364988063785284664644846483521554378532879340948752743333821669850051796743360885834861954239012068954263736640904934766027992304586165634812946767444155715866739515494166420358734030167633140356955298580623281222338410871810629867172479026199532717814936239904672102126266042400254688914844302974347223528670623446691935234269444091866598673680166310720770531619028624862835853729359253722903600464031135041553257260050592443035789299656857982085930483877710717829670578302944012939675386811698425842796551799666460095334933000681122805908983656558441288634387313046212727373892160436254631103932147091343614808758108433307884879167080931621349580927270569829771119301947303698298347551898143005754890436096456635363058548400667228859952448275530946787232382207719537062810223346366229051454642770179149353299668834373442577000447127401698338985526789907668017782462381860534176301256105811977452767026351637240099716841388342667102801395132226363383225304668670088974705134978358487673375847707152361116757324856472374589910487572427934136331341470677513525182547317347033662250999349714368870214180288274016598296343025929009592279534982858091299827389040392887914673611535694219466410581316368218859587616769741039587556166143029814245880411247135631509689129596244459243828195601370710730396879255745686518924534820917380966200061598659761728400540688762657025943921784636407741660520611869798156716796517545855237703505421216208002864824115763371244369303369397697819371644936909769689795039385922243768625980658342715111537466392057407632004590039400503713399975657494624425845396582436965105626936192806425245395428460593893914931498803649078632323335289429225784051259812881317015883423050928673033751242303275944421728856236340717847242843350731632783307788740566650785730924758024445434004807126936185265059475580119965501693234848870505776743717653154367035316718232709712233946616725192008816220386195044271451876036292666094199623977891489744157397893092254985398903675970513628741934892337279608221526710185598445775948898282661347679221816318695717295374893593523262794888635303269258667641424578732708564673978386220332200155759571500602443494682965873925068618641172652135741264961977744269594929535067569721602022273734804573391004794903522719765971850357978918469403816392488518035979881626278394342557201027501208374249167723107071931101600411684147366432083683440935289325217778347421006051085509597207893786207463631938194122900174065477952161671478686368858322835714840989603382164763559754902471891626415680733070609802660224106789820830541223952608012464365510382025518721403692528196250193221981277531771067347051986446445074873870277191027380885967851504042309780255173455284284768683381520607875504248064130108507811007345298845637129007800109391729715137218407448980517273059826447645582520608139333906200892268744996255381924905853282560137600747769614094620233162259665461961767510161483058544022302158927417656298447678192911211761469281761389361105702337478890014472016046642238145984473235065563140697626604753321780744361954356946401049173698286420284569228282095355244255384265685840891863168864221647427910039201496750682501837629697811106066979673939741601659358838730189886278402644307229784900342808357794317074833021374964036498574129420043076880893951841030847259308921299014603273793509916498566861814758118004019783894224491683016076638500590876708348966737115337559944369295845819629103548896280477630198497801609765771640025268191758952354509166053744709468361877838803531930720485520946711963674998091355962229644412765779583995399461707943016587308880860234079392052408335458129104465466050687753233672711155269635538350618842239415396064144962956788722528799922013432003348749290734770898101213296480521858374655901269222218082345490561982000240966631450842550648582414699024380532142261531324298069984403438361882302295365218792374455441683148237808728283813420978059462978562955120710085546871710751155888676109982965343321861913809247111357306300147118176320601912542988538389655882295964632010962593001830389130437101629315168217854862940715883816349882952380475308625030900055764954185095860031213397493495034723759588412048995405478677137568096329569395986944683450083073123336587395965049466251059189733636609135335225326724886802905151966507687774972638912144102251368069139999177424928914025162786775427717447943781492848247505543265909189099814553588933276426917393483543859381329485077024302474364223156222661870929330398350787993620133807396941939667847536242397964978455621033713211678504350072209009835265530406244705865625124900703293052731276187786539894717175305334576343957895139119048513474670890301975560273780258387703794622621799138457828055009489561086176662905867762366234440143372775860050359628865775016831064447809145850514375325107729149118525684498232802014622063697135076118003674043999059873817872279777639478709624327841507489234175726639690660769789483032978999614845806819485641880390632733732582841175317086781633829310632203481411891961518399356352186788233646694349554274625521325385614246754359006774203090001687251933028245692963819358378231465278772956644663016650505441161805300202185875211125267948827285389096229511821675276839129116339503502316138511655750530059677690303462820664542746386367963146686902052137561514524562292139040181663349989599005464773779016496788169706244505993187523595326532604275160349558474487069653663170348010858740107595204591424545424445352887863010389578576304915621300144012056804368334086289226286959426700091288658213974241223458995603971608443451228105776315193615642059901128785876630408698203923908329348775178937566243434419307673622994510828677082123716937723839335597868226514794366968049870594318769736217945915447817667641971119642915435401006551105853852484722161224368999186318511608002555956515800720187734916246682225039502912221237773078668874454892531172767371663335913747134776387103530079505588503555292523743038159630766467778143370541694413591881943550507720859486860831560151934264969667719967574650803965484898650799260711306296912494078214753237227523460435962769119142193476913743855133197559007706083064024185272724639849631295470057244352580757739097407772547069328796574692043509272326285682979310548146735619690824429548279394305432777971558930179194264286132577348986234536081916652260420275413766511855512348460098016213556902947325312581137686051483936103101280724500581643425994541964094392580212323470877186401776347242536508191151553884072165104688106327037415545862602361407534661469096013937067745185991702322876624209785584796858773889857976239418058648259660015202662768845284573017963819687564776325309013935159993834215796880519540954254118488031537890683163080600961461321929655987909078994034731076997198385686209273442491736991647867737177682226479019292162484623400894102426163018274262081805328011508851978103268129045194933496608084876934197225422969047153441523963161011101410453212937040094347805929680054008410834422624499218266036617616947698151658539351081367376258101834841642958984141453523657927973063178816609946506454641684252996181998713114981365765408378463083505652850915612357517911606038029940767981550771359622346062841412638033270336472514719014687838031511076903384150845218963027604847835871679470167161938271220656904133304492182538798281078719317189310734245493506398436740422176392796729265529291137965079776760560983893300730454851099039252382859665909955341378203282979966037770838808425354205747980766207404951813041801827238513091111553875307367619257018002352977221611954547824983929935243018750690072273367973699340310008801087498509374860177275325321617207095098623618479622797432661232398977178183844934403435635855137067127111316113173391758338708550170265449471133427525870359051558828385241684821958666577652026238858322751695622234133738688941427803129114167456483579212588477561335868144396324726292966443112338408782289120833057255936217149624808964719219542092814893351209834759924502931208614624338742921706619333656033326738080193857831509911574576856821538090860908038653877050600097809146665430848438950988634678631058119885923483122505725447548530462585312054907538191615687490324362992592500579416622692239606230170347363336325066589946111897447181825794845140176932484798539611604275958561402668962630363215188182274231898497133845627480861881318920815188320209572673880434005674809687171989356850447111478638220239528255354749131778706626816218646225322148797956156757638185400334204553962433801516472405463528337272274819807351988025978434907539984004440994307145182804375987344479466816126962770276626899174004522791953179845778252699890482764346472309608619095680832443518721156182692073977962977985352498948820449692061703606811173325197538568831161023770249548645560780926153564159796308009321931624118188264378994327425435225226735809569941076247425718112875681667741826696776288142389742587195370670531124009319346869316350709513511660513314793765453903239192584077413955408204839709537414326391888671345347415359748635982811027564328194108207410555844671349954726957866663089994917351507800309664023142404677202310718716954105991907916815081358308910803491867874926077710291008188148576047951049972880601349676620366100337133348300537497999435898585052248743854925965097355991163839904942743524093702152366177898732947399476981691455396633414009886250643749073303272491291906192775719733405735689063317691483802764650662385978445210260454576525649109410980537018046590876935722535020962807418560127088011255392826778020626696696100222548059127058757836486894129441925023508679966738374617292198476760599542728999751590224216331226217236610163762574750424607131338953380938338954027459001523628062215585383546923931154241375107694188846308483781344563668941028618384727280493137467080787719385477456724681364394506180526578225533090857658576191013105116587015947960052455644626558496293676555204401862745579046087000003612453806781089618132803364710582515147996646046255833557065287020560147310926159450187124392577697930617911843923511531607697735855156859003822379315800124133672093956661848178566088220219055513805147262513772331268555684176292604356861819001142735054798431137405258065557066491592956531033324990505314592171424603777007743070189721723371638213485142827494593982555768762769406621669428341256172239316581837966310907624658415525133974456943216997052056317250725512965471859723848032189427580635324363955131318506267608498669239949622981986194283992750603702146775640919107781758915303418086758856772955749136578882585404395837753705513287338989061631549889931961546376460214415906148321017581690215321575341004061228680426169255292160616213607934328411896132758595431589806875457102802944608137210226366122077215162192168219536200705485386942576969921250719091498216986346664055298036547038491118081891888771575139005628058817102375014940899811640837221754781944221790084145578052188786325990346195768860411657153006111658711952725484580794735569029419195409711656794429799003743481054778417773740710548373980167568285733224431180897180773698235377341969404872266681576876740859065537054977508720325535929755285373221264887389270982045124774719922405605530965787738830201159721792681903129758461426667381936902739635088408212726089527673353398525510725971955013180913937693255013218775229246124152706480647284169797585312928771680359801238568990316378289804291072930190557082699169440920978994401317824622546915634302686034376464282190631630447003718402667582179696622214325596690240220795066130669984354308286186768739785841382531101931681385521729102570843362353662771936605640316937816148091086370343413630436423678737552015176238142720794169318389717065817995106479003170753835548984985623888612510930813483423656201566265003909442187737228594680970215780572586547953406863821274946509404332165486524065584663402336967356746432249945478958254279983246073244380126507830733582169061027506076108264884105714891557633285947690072884919175929764338378934234900542571887955524936747227737603942160108261950546801332169540052536880218181071982746192205080812471405607290244195823815748232236725311881352099699882498962049167910817478234595971743415624093913331804896600838892568039539563257274777206076028857932564837322708507278649388534628957649160206331633662895823256600349452859327416706479626861309860851355972923073225828496555455085874325941768327271462756699934579264163626054488092789294568476304992035550325028564663389515890268927467492035498252404420091626682842593292054718593327569672483314957995917314996275068001227457533744018123638486946935008772595185462959981389012852558317215338096715304680118980462868378407964777720800126891893308171464735315545209703032459565260566857875336704201870074266004712817248677082008144984503048515922245305224943137142400529159822250299583069369372313141741713947937225878997450900537647274579226189444386034870544131327600659461688592649677236812687849221291201900473430884989912659595358084080810143377173294073788068597069025005173976330805568421352207866379844296962173200197392994148207446036100693473622547991041006405981889471130704165918915229801756369729553702067738107034401352827494928697217789396831519539423106258296974140793277994823499691301363915647327663476188611931499087360170642355364386037934919263286448195324497505043315017294476717356826830070979123475440696415926701554103819067104089851986597209728026425017328916546228953828093107209905946119764190135887517639670727208226809021722315930725856317156399418076784236330541083778768179318138012261926871932417715278708533903631636330851833265476676189409421838981654865561111791388832207444139826039992284201505259400583876346365555003679396589949208793905600181664458261577445830305790071278873296589642995016468612157206680360339476629612385075630919709423640783502600279530089653170324132644397725380209841756840052407840971987302075545064475331132689269077144196648901162420677909056116117031385345193822338392146269061690903546549499100799480127816936021039484165271255821139989857989138916841060788218509782155024528386687404194283910173345098808515897210898101745960461888205271231903325199153902201099394521306652591858912736360813577861625831283702567753007511865304615287144851483561959458970647569827302248645651078630519888974911636706162826227600336289630528835743101678095174705323277718663051698766725811224285062642691229120310431091527160842342007551609856149674163368947995801938127301119080572805077605607232643155571979390362435445771735347330257621156374686767793386747074582954624174531503967843764516319421910519617198332692239644879320301904824230461758741846739316131308748824487166088421523494155582917187076057042472010842135687033363817574641105201869624104999830231223088138589794671159720119254101515163577097986981107004973527126043423231686751683086444951969970453410339349316838993574517700664767969577766415020125210062815584473067058604455151711590581936519846550518548405666756309447162217805922137444440645158233215904822824579608439609559889226817875922522200344617215924566895657701549365752957271649384602201698705683124941267703397489544453808832347837569749228559117415907627930989700570478719812524226920257840311842419365415086850014383801373680546219274165401532174014989795494973082559918514320932139322167437451256511889397083373267198900066026677096688230669948560592019808215758708142806129318519296772974620628126552343646414196889864036698003856789109977592808497077861539872931901465960883201761972626618178522106283633607646649647605343402879626213610132458774447401821929175399833858693428400431756823228969907702993582227987217438957554558052221437265705471388932472668198198202940885834224265720433653454725418776702852389976123884466242074944102076286046992740667638159870624006243962883148555714140020081246236309923267980449327200710724269933609155614396176999673972400480676655956036395073733148917442071543449086377688590589711993021090204396922384859757483102090606221337045898719272818152595879794939292400131721232382714025975184095288354201695446546814122676800343149543995758238048751663120312660854729127918073827181938238585264077132866615374096271433712393314441229485019484038318807167969997983607360641766659040257884276184370345603700245687200205523154027139166988809261569511949807632407240245558579500871030986922029626651459157308959945749299850295328132107493969489196450611943082630141376631950330357067200158310952785380635076323800902425903725934652709191964802368043032641782171643601961209031051757243135642306085502285964143298222444367777829525343703849195660664541649754506228650811789275380668297438870995137610403776854184547963496972769548028064796202194923736600007892631515380918562331084621177258104694682038402305051804075560117401529503003399437399758031320953211468058208214578779536227912980435758482820093209193481082658940031691031919627016718235203746299597815839138472577632716429303782132952643083155876546095162211528990426445520252996798323354142687941251973899502955821257547777094540544138739513164364906727579342757667905680257044392577120042966773082967354003524025277531587418941648851355490960878105554241844725779928937098015524187221849908680179034133244540852046798733100040225773867277791626275878470605058473850324172382122626921430303307068126623440613806628387697551204247829906783376401347789557437271485960461130968013453393721285817832004321530697384262424524447115698531229749262248698462906919840133930520120661248837372586266226901205334061269019315398997707835596989262206127361081675782971280405881124417297388517258289448532351135224813938051248300720295359198468929478489509033283155121504812570016257582651068369315974350978210586264037610992010022213118875010460900603752836729087334057429207922186356229662475369907067096532746004263459902699268231822687206299007113981592302961748146717086552063377884243245410442094414424648721001616824484772920906037307561359127754448351352193898020069855207202056846123939110319803168751521647023307659912367680762322483168926123589864994129472686447219700387849221301155493204842093590264364957793381960443992743021104076201058212130472625657633587851547729817084373244417563863744250386895914360153732694920254479095209257051408069490299382274091821434132357729254463856608823122638422676509225333065661107636922540399134469655668754767387037884803229180216093574291325974767720267427184352045708940139779472571049847443606554507332860874411008023237777871613326890995975851595998023521323941602719953827095338573105938602754072050484321607068141299871521337431072552593550356199314605713879914569803646649410004658731171011084467702749949311508354923812473123948628912647575561012755950512572118492124711897452269160271238254216931119535022732720800819203292102534383705350054313237307939593997888253484917752805311302909278049430127169049881153308948322427892276505314381570226705809200924308235047099604742405205661511103716202669784634682004443348891179441876441692777436761315522988671938467649205326645837743516505677723358623499657461896785536808377912107676501974735299749290230380309360503516440909853825502703262602482584425579121568063539019656280982631030924010496073671168848204232899523935414124216384919279916036237315316606231986159937430633224676391447957840345573816889750161582364179774578995088546010385828690527885821150517068498765050209485693933468527516029348931708155499102813774324822201280701827326679270621627006905980916039362946702038033378953920107633405860118989114145281244814866816501960179851943920314126511408723606062423817899210852115400293516619708716494237535648859596875871093818986058527961050901801915731536758856371216958648383404915421537166034735764131651210117083947298864619198697196613716095084273837521468581614677663993264193687063668749233321451317794804729512566456533113428911010548634284417592016035786048377840890365842265814331265333442904630267048264010482648857413759152166301390091372963271426487427740866622355157651135512461152377707712773539252361140638664181832364861827107787286188739627884299373780035369092704611679725801197026174926210403122701016997940365693340485292104726298480182468970291421593632344567823268265848716444540752212573323378738901266947190951654694432867646379447910878421449977322116944462729135107365167909921421677676813012020446016839086373609714154330936583880978472006165057389634956316436934221437192178696129950505423062017335480575037198103127128859436323049734901073687446808614359024341648639334111707454964596371445830574973838171467144739557516227865095073384665961612788794556611596169263288032667577800333802470784931510359715523092734388309793470204794023852697057863751369955745874697389320389170658154553871637904337268033049796684401600989135795754589482716565427818608833826198192505919869490645754347701851334460013641688427309786217813967685771719860031724390848284655159786988418262659061049161100742126894052772752146568237471357048879299224568683487825168580475421575661508382746660400897553792035008543747261389803232677889611072276103561089347741750536609483865816947343779985683205592582395124988882302955191474849370198170808450320925139799352547975180981676608972498284525931023615786093475512307409547335994822252890840691349118975495049467316856161142218025168807510043784703378223672307677540238048037338982254108409295281423056688374793317423641370448597451592637453941063819287420258262948856888862910364665581761744867294772128578627089771560997075640182147459440681633826434186527904309309738719397241870899107258999554760849781391894879715886955716774514992289916100300409228133054206055157701056039865451691762328404600013732928857284880749847053024237953452062452340723727041119847020858479496953820199940890633674004925831455484661786874160929696337925782932741961014683995714320310584444799592220222275182555095118810521212651530942851237404840761894958361579080058996608718512603378249875091946331732572834478588447530067154658398021208333323478566630788937164531624187543945091322691254205272874216935449308375612832529955221099964442545151114038852452686890219519751779708423855411513673302986667305908718203470799168272784485909149909475309775054768199229373705126465023035368750839055412444738375598692920759536206550922473130264098560885135357917031405921734550262297770796161244193167927042831886944224697058144816212079116114984306582896746288813971747363921602724362259615787851377849149612589471950680284926122300562999079092282848475823570128340287675526166120315920544481081729065060201092492616164735156445356726941357872996299795696496882976678967143310960945473257413695422204590010286771240784605239387194090657545244125283193486636072245377075477334640033872764837169603757442268132724847486127896881193892462293699059328740972903014598512476900042465076153521844899393254493058247910429106012457577248653013621064206467968660086068341499820431711481536941412669026604645145774306682483067000525375903227028717838562315081369901422280185033827332746764199853071502755176466797178014300918334150479325063379961527583131549909926992605633504257942104078015489119747398157913355611169076411152946621928114771719270137821473359582855101637364186599546121449530675246493233117013436371662828709913990898570049845255710997414920160455295931120828961419500519101605877918014557762299301526155987837430522902760465851454856616805565332883592602230827592594416941634553501577313284182483404311942992079181817712780902194782420649222538685441469565899795904219175395025673559771344624588559435473982662884118026015646194539424889613338913526782247704564979525143180152563500145370334739154956487115982305389886531616775372567401323228593013111783812957173576985195827749294677798806462193921626032060303408252857911046018833341170781087480118706342787503869244884881091532492675055117797041723135908116979573741132156823960986863361179856118021888086231491740317542125681778896432778407962167467953408767197660827649380891177789021230409582134504397656376702698526911707242564246261971273093055875664016941133970317894841957250640345130298722749829891565380588619985615736871457371338927825252993918688116304935072490499541357077980718321814588281176364111073226166990708270726473723794352028617838934711413198920536923074224287423630922734468682037944231270059259624104963575564274422650223147485727631988304597881732040096866435292784731738613537227597263803556331450082026772091181630987272674997542187266399252859082469557237446480011454225862178183662205395115994077247273595071291176382892497390793099214180465245633323251538213073251214447868135693821135763269066965910757268663728009474233919864485176058009235931013803798616210284843386906396494068509150245920870156048240662817542571507158169090561557342126744483835496196499545246374253220922164232246791469438541349261472478480541302735401198960792436919958297602100289454751537089078609295563280306620793176195122183156850788692876253936205534757118781274013327385793704031090483559056320543249745547460934326635327754042130799496661558794219292135929452240692642556683746654906484088779013480558139387776808077305956948279231231798624242232270141754664517168998725384658023218483381639388305318167875399647130952376784048441983602701751573378671145215844970551029588508060537973806420378473923484267426249652094684548655030590733834744565682682031386250968439373411026258660554562098550004308993909484856175247552314484846415228635644240507269685110805863624768369641384050456371222299203017269904256419688510080994051536736608661194460207906814131069931420687135204840944861389410787702500909373063779303812812504724244000539155743697228592652260863454847510916175389516970740466002789886733473707498994773863180167014682953087148204573412103604387018004121914850270929130428527652086715274731955175779680902969511258871767041072325215741225640147688241442575207993687701288593668498396450203897339545990362247812442147733589437900337801817378353361678905491092045822967714283795594949497883160633015062957329749513515889439164666110322544552793470836023151162195810916882955625949380264727935921125433048091389542931454756833034460907078747246878908099964143887734253975844129431533717857293174978127182506646217332810104312440851520909142358189268741467055519014361282465330503300715989850292092286964743594873727643673012486194115775237336808320331418257869290572427626275729547254368093734772070475074439418473962763160568288980630850623098739553144907927400847326206153050768824588525178210635418208732235915313167980347085455817154859847918821446317014245502766222947384329727357545123915968310505620892801869506015156494806520782299749988779140451086443705657661456979885197735950641703583454109618999718983270022883675797391507603422424351260935961865639621445318971799681143337165700455106720255371145374735483055258655091237117128904848591303405064116705987235417758238421675422696264135459376565985278952975873441235097574755541926941189018618319424764045862759569637960637915059962686398235923385951451004248927677192089458804337244062629423469171815876779092296619901651642317716674522854854397369800922384003873390180079470151195523092416149562946655800196163236862044593135280709095669678159097847091641549159955298124554854967186657642009469131562355151442367616996794638466594109053764359378256893891271289451282815426806158065664637154081881274477130063801139650016329416261334426805292038780673751160703173889984614729708343812230106786068904702924038431750970017503493266493354592923825804200666071165371979606651694358576303543528778668013523355206645123501955763423027663280897342335605040523309339637447683802028217967300786523974503846570330239790626463543449963404932330317031649709209148522727513580494424418744152766527899708105233099758312655882890712077937629318398139911821640606127577069196862660433769929320362126556950602645648542034395957750310394411724525340780833059193921754962837270683950904815671200575251641747564409417801376427855041527691441872599524447058552945186583036747603178989188959602734861095188536713915611256853484159725414602013622565954490203123848397937153913698763008651880163427890092225051747537896156705026582067873600697624607633414481484942021841244153937588058042399683212678370310200010794404066584392247144895118032282123077271871608932979483703936237581155888181497493102457442910325132954024365900443425024144823281358027115918622601837128905306090291308937287777776388017768786274116508209726013436400546605493556135011286333955867901422028358229402701295759194015608135331492514156765696158220371517826405053734109892094693637934338234914014139519909128757522821110633972505553868794017072632941938314540896258418423078517499194646504965483160735950180219305586936824952680997820327891859787182289524705378200217981195426879959038798275017255021282233379970576068859756155873654913793667826726583253844709166769307262468270900050467716267988689901799336485310114578512409583072251313187609705660083916546136756137567931990913593315461857736472906786290485014589633838184451937083119365163500151772776702831832380624681179527646721405018630312110775012390465173346714258019184388780523239613808369035360902202426418479396702720682370639861199257298847041417449475810223103593907647648807805407475892869059701158589175069018645033892687151877566513586546513649630872538085168245685764664840219867770528014901276304681779888190287122365004130247596258352422163306604173911229080644395862046314743314614832316546960275899704085591160190301938604262385615478076525724637645508013495470650683558470586394088807277857972586252702113134619627257638550482202616841337252070317709787625781349586527745246832111416057289259127720236300575000899942332469876412592017676558148436386256866261444365337509709915890452367994688317674985943206202775887193560010283513751146726594991890865703656248051942087839871451304619957443961236477805490446779604544178492270302625986990994090294268319828497085720655171965955346593653508022955092089083336035151478092973986590807462259893792483907167750623224730481042414076329348995850658209739023420860613854446825186800397920763262278416432205682269419957410329869700260832211376966282354007750602841031812881585257010369908212695227298889844057192551347521896348283412837624253304706858336741990339527057915924420888631415232681927495388873653771194684579547406669095614925128717108694356377241270135766923573769966772742094222335700754565621354141855821293866001492339951213311740276020178834259778120291309508337495825918397183256635672205163629322893850023758571148933736997196887377189600858709703409436254193764176499742442755841499122157100396354127215795866051399104068319120726935491259619851417962923958689002061688948905144601636794896983969995430066234572182063907956623019108077477817514700210678850411696804389751418674088587126421873512578610127812581210695465461216219563474878116665329341315002354683698635368309705588896600644054049364236343456024012364582157192982004593221290974381675900332616282696715671406741323317217275414214796167536425493782978248061509773657908770779104682453278667495513101828795101355308579708443358146096454505734460233182375983492594316102687283048233940163577843697372808566118655815449891311340633244371001588929347950843273261832205125748096777391489163775112382271843348409998869182771308605956256288187788037395722084778441696063773039683566101287915474834701529385887992260199848682273994148545983010249259408645199587343115156151959908254656688125192936845661667180524871788702848927998111573001134089323422906987594123680704499910203165062573561796789603562457307354062003404106041995751419768141582101385587807348319253996343616439498282523792633188636673365752031757142462259768038581273740015073642697117256189174118320307612474529612499525864992734023577850329167689050330362071212989599774798242773956527701290328168298036490300631789193961405568644590488099124345374946218140998963838340891041442827784095982484502092301140449943236288702423794402111216010590640042670525314805328645730138058029314424523660659993404685131224560130405529947374810698640026109627470176816446535777590997045363897345091421114150364478249868542785600321379718737872325339618054525563029008019158472239870568871756584545804771815259713422559707608548733913715433770170285773151407555230313223646776098912628617264021539831357085066782182346428989914921493596046881819784367471133572655863649715640919080651478352899681968975349459117068552288094446970849338455615648263357427306764745665541307524711686077483266558446180087681375338331408968129298998248929117791051423629136363179771064816353147937420280858191508798212300675896386614662543944671051354775217988115808100259425336345864423049874994593495388625751491799240275180552219534215806138568049561083141653117224236154850048609833910016133033994730844114581654892966249265300178903775404576197949692540802716202023214313619329239628434523795570148611054299341460496586856611015999437606047633454743763763656497034031247641602504441467863342174835052348319628835375919240654637063684090313298321518114867738599914668352073544874825785290186465221645957579575464393314250224065534126053456221548830898248416749791579944594026840556832856914700084249267002317837229567726650024183011184449545820601296918299795377857097309905030907218816724933144823861903160489181732303225756853707472471422179016107591427827996577796655223476649419376821902574109209369903746695360206146643536043541537857291423669162148128867064463503033092635238534439787864278102457058158389496310684185868998528271828425974060110093182388673111215941888192570057048716351347886332737797194066594129332558054494516733951017355370818235593552136974377471998376158388637971847835155658780574254625929568685376893195202672624311841715548247932859409982118014396337556497426650454467331884183189265967690087596990884942738002617948874986827857035006473561174816743599292032381967767047186215427075010327165720603646932420010283905589344232815463991113822268719016073883312111889263520569249977064250664695058272861397384718848349437704211089155272900144981587650666971681436812618995874402065937096786855526293494654669295996900256933919280578271077541867812274303131100812190298659974891674189868427569840781808064698534296277589774662522942414109426285864618157050158440406993659583690525448833238016357538864390315335155298358343111741684203280213914111317852590447441170865263608149963688834048835140987817709755197533128029671390587403220394685875865704552606170726059384431785730945728675049397819631348810520709691241510334593779185830994594948815992277108198247380159242162469513379650275099814241273352170449262562749203291498960492456215230618652089265868586423695944987572911260280883426405298224567183810233692188706731615037247163903127704110343756913077700204940241633570428860942517106271615055205048535865047916690008265787579239945076793412432336730447621517803286048330946563711800876529811170134329970751874589924741102894089533361925739776127417532959881734496069302560782608787663346415071016816550924537595018714493099582679747839841921610701730801599491286227358372075503408717235192895393775829461676894450325637020606944403722399697582048023679234249785769404988451804395706047063138318000376534577888986126225631689122670635499630235685149631618997766756984870886571643060018426967313125245594246057905475530269002293845957191296449669453904464900868855373467713689096025938782821262767689769323242565297272141793714607048786068006421233162463095830290310852946182543758663386197721931384631318107884459236938569058094308367906592963617494181938947089719770890953196535797461310087782495404281782445890360574129952846654816020173562229325571415965768735066748629570588758688777895215606602797405379821213138031905628192288686416836284461453253495713068194807313195449528015462820425004371142282284115624438039926368602579877072331988167262488088722641699995640946600236512358766085369514795048798768311074374343847723796366250272627685133894752714731060682790592274704739473731046610707800812457336777166876866901532229008746263290543426423317605115534192815541092112753148268326810214302274855667062168095170284364841204552499051084481068808553542509559958611405173060393575405430145291381635369308219559425861892699425488012055247917698416397537399322663268400800357435725198384940794295119230072993743819514364265658964718284802650570956849994325265407945230238284030672522932596842568219650509259977254442299527747121572834022203588985956636233054602370976606685751040358215553082771104171146507507271338035388509935770773284930048729153807570377101365817933668246852716765873468772469996499595092940486265371918553962990099119235909964268957105135305835551259118497625418112779898596890730219517235021356290803781383943134541170024133160083576893917218681556401162708224804920256745163413824859681564109254453460735180491294071266301984913099711530345813741548074735028440446130382457789562224639640027476127510351981895678355580555834616051507827621651381622131695284047380563457775183777566474960842451275149823445319589239478379433501874182584264643615004157979742537571842818176131508689515093693560319096812078124251638752857209967815281989837486794548995550205849485988355994054610619363475969040649035906801303450653565486549714406753867105641392231710916404389939786590887841538923339312272416553146968202704613580104538084597495288504712863615037986266580045656493929479111883031925420346892082127630668796457371670663736803488207406341853836060105493350203843062719953235458001785222725382685332461479895522771378374179629672197685553818457133104139779947869488056645737579637696627379617514417402545289083552990086663611812447965950400476329177066147926646970912757668422004529804326544137082128320020969278241480013827960533734308894626205064178614117872336651863523016764020116058381085729532796555860212720057716589509664205223896001138417714426238743708695870745500673635346017919887340381353454839873468990461686429243812132148651096989789269119948085591633903140101799402202891590700341658999482038276582665082092030140014385368974091358246642180297046347859402923429816300209747448073225563398706431680129842612861356058909977299106953043236289286273631543538399520355043120312595671587982839452420873681460332696138080760358667584091698412190232874899030365432879192862334863808075079657477896539643572091687487962151209997808386642931830736565565921552102051613950747078818209393206274336081643579938019138196171621420666953272635640559083257625305910823765451839642220886312103495194713601855850504225250927859260229376791118534538434100068115240815068026518538632367759558896400597636075480669492000218994828632395836948415946799752078869922785646540174721501824113041421753681415031559802609421105370355953842845069053473776976577576874804182580240819410648989744845737927613917156152851280315388268297428707549215735112268809736848548214046785496852373856928718178628991084862715482777503191249696299321592340756697959905847570926944633037498808003201283064054117326667184956185415779726934497422521068874786186873548659963826978501703059963936093926355011725834447407377732031175348560022861122548569734752094407210776746241127816426558872625907392755593578586948519554955580965206720454627985617647285679263366883234163664672650053321859807084759605091670688193631278561849547145328470795546565593292324260767831400845237631287027539989502821664714888461121343473719100227419712230438359868737122943423286231996374217437709891243235138434765320557209933718490029236505785947214731721967426807871703972648503705944698772739111380993362200046137184815223673674415076570910053961000019983112791740887709293184332277083851345353913296916230628719164838417033862219190613177545481128533925021140370686888773076409142818491575118428513782646536482481897608441126242393464839843360419586563031422516472380444832927194562812018606407277522232701351882517597632659512949785826074646264118347380401297230523024323250747942850915585349728782942180464038077362546259776759407572120355754297188932335253565941172455062542197515436283273895499337725920090030256551407196969712492496487299230083698786801682861416691398981598595288824962343162437320272850620485771092315618458421550840384527897852313468216034621115018493978212988000045236554598237471012439597323017092289612548246185353465314786374699263893763641274921557463382252225495021388141151770243232099049191220079211139759417053930254054137476370922954589600453064496310433127945192537045199216440723748647042397293547707027358545909480541727761220564591503186944919573716182723383504950388029111616442023267001070212592640020150755508938665930359110507554177128469370439706573749963153430838319452124899117749849401546101368642567124072102594209221981129346453103788450135027978361373425238340001127847182484062120267046998729067451752301822584344368796209407055479053690930866508576607740630227307519132505568886690068962635365166726521260303101555197335654590368218684262299245060501446562327781677393081947275649803459999554041859473789045379927136345911027730191816180570060828523866533698745887238783305712783055580105026358566443355761862602489758477847030311722674622911722484165104867776955675819026968737405864251882454232986804684029879405349267352443653615832081898680422449091002458749964948786964669279373408319734861350423356129417275146602665468560783494118495730186872787371128940626857284082427109861885384873752058490697744571166680723240201158197583576347775567009249478120890021373415534359193589954363566013043809881611255736618797317003473446620043099577974106175744806450828389014736285895375325259993084363505111308549530121706077106506255509772163393150729218646756254395696000936716729366884915354773500875508732537572238991640883821735714973106903612125522483717684062471884616708178551814689930625700823958622752009744464656557569105096436633124686763351088365392909577958122020423632639553914316924975715296655536792610435315145600892256010032095552347385962587328852013565898127922156753792483049308219069795908748617783038094409498610502164012761712385924644004117154447776321530809011257686266741658408930776540845098987262155322509521337532246486533761205961997446517856512535118473426456336585312432537321507797570325158459660554439658156223910697328994040608888915617639920972642445628969781712992677432616162601300218669932683415164544290602963098915095430046556774333543450348612027309234110189179172861995504446792118074550221065418876295431211941052287014076129570217737122720620765288273355448946336752122469117281984793628214523588416426271031611494700987725598376941780197557485770528565826066402510763508702382563329933280682680341688328092295580060009474750439378182700425506863846110547298757334121404170390641791389384747622690910590067163361894679444434783011398658651299833971289955138272121462120311884938793764775221241357541076027235824295480278123066676322602649685037251420667671957831498196039019376587705348273873334622612599664666047591771514548555932153683831387766331139516152379422763402952407503422238197411387478905525091534483846132000985042568880814774008942818822613705411300548850793992283205184546404715137414910103829275977512666862235698759634365833286897612715289288144759217593237670818843986601231920115627564742740752435319452635662897047797971163828564588583074739258024730089780052553869162726573059251386875578417557269672576653057774776124439249362243008730808378625277467834043392096494563831860170439882812983022558252641999110802429089572891574300698161315688527772193351213878684203261482544546393546167881199087813912782710549035034758811072639980042113626263057510235482194274539314777078761549921120956842211672043364649503533895289689929857902634064389008284499670165868360064555028383674897375854911452618861553386579411322746216063462552426785037861081518312501955780930475527029899697134042097820341282414668668808869529405068887430409653108448754851029042612686332692121767843558931390043917485780190261556702693647759849652766936384218170691536657148266393932440162255235950128665575360904551593366319262213729376600257796786350423458682403271383007545535676042291136387268122652682489762838569751904850122286309927313342277831918755611971513822399787226970666699496738002306703905190807062590053943369629235302911203302924495353506311458823896242374050608540365865422123401426356776861319089428563140074386926862694625614872640723012434538427045329768740072135933063502306071916773630867433992975899552290582549502462505789876473070219534395141816599335844510843957432388718963712768168999993051903689847092716492271452701842640219689990829821671855198907633273932145055018617951758276193899649016886954708017760775870063648347524777489497173464869021010257166403429386407693652544169015883627275737516790675000208734330673634467397177745602370738203042444056567061058687857630181517479487369575733292338474351615305652799111910034478187573372534050896881675864049948090599260062537446309476917661826040400119006304182199589908416641012917597127210462007030286772661704532018875534054637386927015213135030026435625534626750253740822639989512422154159079547866344464692157704286330010697406674817613284223023141917358304150444784812483061989565277178159736610679605580964889135694448742002937589979610280321788006180767573112041184451107835141490501248140551937686457802309988623450030799606131489715329875913194563552319045722484976384984055366682616240036849120844384103704946704118920557732936741730780487701866221699888719683601979363570142666081914330040377406954800961096512845228817051523614069745259572657833895089564294004693547199351927552515409564896309919403708506045003182238695558040270310818612718968324713636836547254203454967806615099490607017913794598000203535034964093130556688595818684324441891370726773876947690731544355163817915548897796447889633942037414834519194572045543308948250778387489784849896094652687324001048460151694784915662075918568011768339529865876934528027000681603942166532213037945592945899703716377708579045675493625558934754435538113803979625417572979668555332884795457656657256800915402279198646218586859244978678628688117612566193117828393610345204062219693736094471296039031570195563311576616903539964852132689274416367670598796038393774768551856529892349431821464040360599250121816926253520183332745119007407384333242333211541351504197020670218584249215316488968917697426420351178171345379413677599527099307593608247829493971276946688132462383844417926671215450910739929278770961015131893107424476834342491314049823391222398084754487533832265285342798223304203461957479367056756374990613007469465531240243921407035370813739629278582443737052551338004724711733647587888213310746783464649421372407827181857757796179745954426139961032214615468999096503728643291144185016764747701243560656220488624352403342826384724633114141915911263468337853423745546121811591517985983426473098238745605809228297901161903234511393101408763515665614039979067758443480355801665535929315570557333381779576885974477495372194461703302692637598202802901777294717918357681093342650782702537640992201704587337327386924488600482507426761416984301504391333973346973227760781534799529694972904564556868247968576124373338777778560052627634522708004138615253294339063142289247611404398167954134751174501785487854711271395755025078451834458587013100890553742604482752864892583813457368814889300667257716868166284627300793077104764552634422264977192628550187389496249046635921028288033768156916166301973593743092880215808676077232230714422037430853121228363550927803139054050681414228898436430882052637204115200017136993047901998020320908002693156579756110851410128967108740667813617581385467791681955344705709088898341567242791738949600175323784162118308914569788409691456368913921763309580175591208272781086447996794736571092866773484717124428610846611198658761490152738691700042598944159376721691495137384553985287958633713587720478460220981687724230152585564308938697533424239104957602376215861171166808140408102670368053707850146894609804634212038548879188092086203268339848093733536433313905747623337773502247307688521360894830102753365484603195912743428528179882179651235734769112517009819647788091383651571012849475378566852561371823238693904555488589188805860153432897863502190966038505284900829465850515888022976430780761211357236643389038302891683477208735866962992477149330268059884665672277419319408510534591076324208389792303809265100288122597092368662145791689788674019348524784210653803696272610738056518981909024371296085911877518392005116278792823644898447962231929341445706967932320144699475784846634276093101334568995936631144788514492141504187837061267921055993848277933883213760919313240973923486567677520205574490669489932497794003355632615404211354804357396525075830679405222868046825574020278798280861173948310709226669620924644455063643660728744926624798946787375537598739896945399728832142858426666182060502239839130345659300845179299733555000211721131892531743720565732397616240507783982417534337122991904775890890026716335641576798473524394320590885728344129825822618742661962982349410574372873473738801022825364728189834156828973731975516093965642126346300042856127248751243694497266204128983214938140833315597393017636323761139967887087833952385313398413104338616715026859215130128326565533781388079574732390756051579643914863736561938676241540442669513927721540845322601883689641720205957881698298226298911234983164370345693553925918172512701607712150794545740693841890702935274085866076553672717149088189326978185325647665869234561737133809605759808359795838705781193709505395649531757325391915613602343939740746782221210483071187085384092695173930149785115350609586739849195321907470348040617720797016892170041455430165215371602068999504292550738251704866732889764689879971960865912136950321707854847391765016457487318142900642715376015086395322371600302181968838145753508816522153591489363011488717189286741416313735595815934048956596116255149192214395486375406655834168634237367502039293290334076256921715371341679396263794076948648973991184301202655923572455961915545310939080191733009741601385386719736807396143753423918079763680899048635957946884337953786933161590605886480585129446616036739631740356553192466300403437477706769146660775662393839935576698841618193931823406819890832774343876622862106148678822458825104003006434330930075296917537918513638068111295711242239541301526786218227889301424773312805333485606011411230341259449266402952818740136560269606991935702257841897735817730259234187342779754939092026497796843608151508623304613998582369861083441203469786235609767019607092479113956137614998659977334246399372275284305220503372996029574249705274521273436242905386890342055158829333893491132935314699061925827807076031502748469945131660579737202008422852606030812792559567251057523012313223965747222582041466780575416007621937676733648928641636645445743168196077965760288992502073362122327338114324683014233734578797290742089368073553283996676725361593464830110423990287255337478719744720217249943216475920407517272188927528825818323703432679779277995390628163501280544543013255926353757898767635295627462420941266168797692675734468001173703177874236118431160547412188822272325021769337739902289897665936088160117459513438616391790641020410096606783148616688424113098832173308004456828530562706757704148117617226424008020263738060413358686031660919182307754977646524928035385018279769616066218773443666062534963104053610149692010228869651181806641701364689074432086684470650340825678983196959455869231240714551782300779715143868032300993914160181575559582268977602094642311396293644100481267278259666799099351816891740833647531489408076978442691434174930024796385642692631539025705294158290319123550836433930467989175440287206538964130307945295446440147810712561228748101290605377995886377012181969908156905455794822900547082377679597522324426090693668600386873001592961985422124589097605841559084329184438472129416013959570148922577357293803900396809153066034062209746960025472934407275537036910026490287672355318219316920863315987272311199103543856060857477831132071947403460079801187760555625999957498801047653936031821547461845582128082554395624042386901024150760841917005007296123564405652982256994590371466414365896558998820767015835285123533835200745487825072246511120028021331904714464376830730061728664851868946056519437668264434812433984983524890311234106210033039007256837824278336404300522177579520447696824539664152909423495817794161493631148997777738646582746735321567450553769280237971050849642990925037397198062985264111885105135136684626366637730526091531191985223677325339062546038510478433400899082914383049757554481671476833351395438811296274271695307691815925025587864446411482631162846056570210942537480880833319499189995794586509609340862333969355162793960666559329829956932435965654397407268518143648389900943300218153175442332173153107020949550147008996357349105162930683541685780936752240241082153150515085762213896635731678879109135445802872154426511303126568165247572157397448862939925184137313703553686480818731706550485702399686977742970780378370974411747703017913339366809774689064443310219058934312792801968376392516822629489170834856613197190167376652148831863418096429938302345287378520591335339471387691006317081446779562408725717360019272131147157452231991697572804398122213942194887816241862465006206764443331666652994898425079558330806008611399751274075752777927972872799864327621211778001238208416679579407922588202249642084747700894687968065659576566732492261912687026625841993676599697426060831482326080757801280449068484123492087804802549895964774936558165088591180302855887635180838563229826412733621935566490951965476484665188455516477622792586151339822615500060076731078659143230289134310705802752211785918783294616226138834223632159884612497400978838007230658396974840032790647193921200544567745840608783188200312724009031495702648010312227689571081081254137566445869905564686071984492331086041500684452235984475742605588325308708230626761728963550202289522174572184486687675288246923138537323379877330590288047532403953367041047861688535706060593078671884991231757866826163503199654100819380682765392421472349950840092953607158763596574125192985149109100540374073922647889824150284652064768676320639834935603910288792605967159020682331496961436514144306166339724974661498276662872161681264733673788951517936434275621505817548384737068501769959158941568719800423838116165699682313643201074306553952183638115473794031701171984844794030321085910907135385827315513738820460225099364860338711200028854650083050403249872365602680922479033945925497058150924126839046397834286868878508415549428705073268070293170687529404735060514623886525443166646086660145431161099755414901964169013442357787843129417192652175285998399740922387448113181348392256650962277456766160337777723545639130644712343757597108181422952651432778438993945520789750796105651842966748752021277547184968181952628667807286349546986285241854178390146672138991468993002041832187193395604522332134637011447585287118718970898744113067691799223252411798314965414795627236816754774867914670297072639303263717883400865826248047451101891664344787769556672526543608738814956630992010687815306594096990249486925397652577645937323070048489017242590186885014169705333038731677790221692951450328779749955764799012336215912267768787176688435035006779910267776546145526678520578806510776907794444066500351161556444165032800896753358960773294647875662421682397385944978820540321532904256958135893322031209982506036707311650527249511772073850736707971731196378265641516288633055735096016619674660804927878623236393773197228972495195709974553675339038621349412761307794565735634284168771923573558303770582432491152567754479404513516096652532355342039617331054256833929626198944811258586660309023854381454388915273696370097888363783597298753378849545990003384391763442165879896404740753768462229062132798066091644481743219781283367468088080552977354717984235392415094651765110527060187060663212195517373069196677637668392497094626134202879009314494470681135672685863686309299295236243729904049727365905253241103134167877605582085585094680115327877572272747699777314641903975575134073454737047566877028140381660045016292027888112747429978851971893316119029677101319059585655907473785574589079518239618501991906127758277877242058740100668200492001824266306711325247796082580621029291568049935339763761066778399033435305505214201482799619558207098697932815252627402593069330484830220834312679765062088763503081277541598039427029205337971799789011934559970143345552220119121956570020423672409986124922339313682029242150825034540328835113962179145708802035255017120555317505673925873225808785727297980449288631212178068603573855927874353392059173913622853163651017456791385723545340878182793419091243172021494468079271268698784329811880201269240208302920157259875899590504098659985411731792755616271523452140496974283845413105932935884609504500693797473247009713153292649036140798114648320811609371708154156497113213122568435532481698473079667163392092682791585193748432577209785345997075488228920115658448687914936902671277486501408788839984329597199081508533147334037433204787821737217176386961752438851192425953431756228145856483645573921251577104933421055448332563897286576818247033990597550530580063118750945479832800669903385365775788728001965324723607972528335066459904122032009906049805497836245689516811356548774925893877709786776129744654747252979671481968149980654931771013695337486704492346372488927124994993068320253935529113237313978131717895817846093210316184508535493414670537730386659314684683376754798383241276248488759808298291897355106192474086242008654569495974966870787355483006372904145954804713163160057513163185294768936532295934186031353139168486138008367505760207739375865995183776707684288071519330315764687234610036684328452946275796387240396504249102466811905795881137549683135793507210317547107269304454787342546740427172525972079095466744250634299402313449041203334169020618759549680778385720155352789464798162569599905867777829113018885211463887502943613441223898155110983883387105539491219293845008519846329731167513194574761348166993888816670319810094880416521769483031864740016448649155770431644546311326217138368843502066141088858158033412537075112036340979087133675944004430542258397938902706562925862526082030034651398232499475085025427628584594275162121149247969598974786847262369646213657381037286657759330291131217250103140708272196354485489394613002736014380529880286541492809602209771809029773004818071297219418349765592599878171372785926303381214413890207117988064469659756575880763629295746392970256724198674999030982477544058606023507870102443273470929524377185282177406949581090053615221766681356600020340001004120322990478915343265270682875880223451523115653836836355356428394419917512000947946084715959435129265226915346576075062555177299617840465745896273965919332741761510194688198042725303473470179559829815875790221517744274997532252209677592461165740167099484661635149285209829136231756229773794318940427649187845785390981647389454376620559591631694126833635392515593024311218528137054260381661032633604253042434069887789348655974367256004485687283476798152994024813534900358659447251981700557422567646025929636212252981105317252097237513266079838341171334453314027234372000943558753142573529875149913013401494128510209025984913916533729749098660918770930026722793756293657456881558434543232098415428652133325290957268871771965992508980678949601694205874922760155467952841077622334366453612696009480475495481681439587542190528061866568689465868506367683653070519593932209788493385618281713077382352132473981642791273529075711311179123956040901563634327880468848916252295205262816236928840055698245059248310219141586230050456538056001363225185096956307055463244862486253117613660406953738140069420381006611873934697740663560643839777525556842660036055790469791741924496420908470193414628702086335546425720703043832367504822629563963419894040189464190028200699036817477953339206915008929716607214016375487252974528193460029760237484956386482693793938287321342241070456149179351823699757579049370772228786506335491847811700122652528966071056826166714547592417074744977808191154165038033168265459747540090946334366628243656317188179120051876888104583573149643019183936076026545088666440355630898217598950282785978393139360445463659181155078930332554089137685890429426532869382173143166917080367843965157185850501493872722477932302217056219748148950270850586104237980112775512608381403434156580380693200899085865800259392941383509233044123341793628535292140780033690769395650841681771303130150888791535816976768812914452863826539247339827854477376456363399707740851025866633553313574324238699104856024335342588691152242423178685234012905162835591841795649206043723868393058672485176575790862361456356843994638276630727742509152889874204435644990774738801796202673149325133732254990466263816359381385633154829173980345695081655062774873076424941840371890193415809063164857366118179942784752689887813252895982306597853173008453471489487236695165366335150210745415485703181104282097449231138635976159109595901765058539618165646981389995511698992733262787977951495592398293784205104854069983886522626607461678900738566197336720696978044721914845623399208386323601959138158404933075685953275189017490935121912618961475456926263978454678029079634512319165813480044886911596088085863819696828612489433665965641315271046962351125027184182375282241023993165470386872349640965400955743983889815931410735287837233764507696638980598906305911552997332647623818234601195512581493786246721877362421013333918893220322992792203283192781409979589617523299829291315667237248819582044558984279874823274047899648657349181604408407512391703976352279393991101949205156019625670025896434040181961780805700618940570498058882297839118090243776759314543471709633722573703205493503265307987666310026398860235695852352460586028110972702073714085292430350954088776006530467376817857639709031157354503908560445041082960428174168856071237118212018681764586583370447257066557555799199315754841810479280970315515186097199077100978871034390678166838483847322070453397414538550609021100785498906968870462610188729775449440594630511121488220767873711180394664958920139976721269531493899359328879813792459224761433627700238024864175123036333153187707785838814990457553847854391775873215812734379143894882991387536914627136172121852232655138741897501728703371070719188432958942162441734389958303927119869765558870569949529255116657344706499323289256442838782183217992634670018765526166283173543589659427206309831557293014500466243032175859963163931321008604118711181392985669629960138498623072690885396721528248671714103500972791995767296457049856754704764101336578490787594300512167214064836933595723483048572890038357676986169500337401639218923283568102083358302936358034801350480753052380564634303104832011970118278925912735255773465737480110676295884980136711945668706893040258692695870206042910106924901959890183959669756378446256263395652314747119074278058962530064601143695215888971705651212995659480036812150520839194117242944742468144666689720015540989668334259969999377177021269676595838258897686694760987181281763832628961544316792556888999130960818706476790971501659767443413398108703350569640215618633682395411087276186440976799991345159085416256266208771534137842980496206402965532617450605875428194287154698675167789268845988239282536125927197358219643088512647168759515948912188911396843925448650302164123105309011096201846172297139502384592003566934477324176018280460013003172693776229157001789961009052633383697893035929750944212845612050691318646492987108201113731117120062390325612376649745267962007147038768479532921249715250511675238121225021848521451624980149389023707052430931586543419896959578143865787207538523628982551130261635293503762704388372489228220749276271758499244582429273402094660704736357720176871866423595021742633066191557860808577418445273786110417185058111873521606483236230298050437155081103641007640827232639561700727194333831702754665510745270096795391207579567196824556102015434873014403288463874478396662725031945256615320474575413402939150095412701552018361072300725570096470998393466506429827044070154882907756294353825306080499385354874499998635810936930046253644692242694218108303641915660438227824226097335182462937908678255916271176353494133400870836966368223445731812167151026159027115213969884129333085293554015105214662629252008971639294408913233023052392119643165110464392075421244170637161564532798921023966119210220423103185601322716082799382116620183936067181513131835550404315002368329206383270724330340007751799427341785179554333617868825269946402671991600791927072419314098254526339091130677554670499994342449232826544050911598378928450888887082654735665373313076728446756319910621963930606252059457913525954037971697964099867991401921793423218959067860991403340582331486500266588722819259952057477101990345884843116103098624601898251857658668350008754290651381590232165656909751785559879853582338563017269433097386009727294904757320316842380710419116006758530050334569414465898801845956131459951748528297017747203119706702220452921740437945542959052853545019401543413581765324134974003311307032973045324167186191390103211469921866282333407948744013355931624248777194650618942532159148247424940003985299348116281098410762608168192700169138648786547669060700823437832167813153406406423547974996568948611341608593284217990417675156475035480161747632068127167803650961363711727996407053876263765702340470615373357405322629213311476214332122683585230702132058446652401802040035096987424792800838469155999757102209106083093424808811720091057203167325672716653349417393487369593912385236280237974855988184815007581263332194942874563906046780945154806436612141122081862788097541071731428836096304244036264290151238963394617018001326645148183972936480071932163906116098272310461551273534189578354888408522500511395367045554427319790501512613368044498700999347145372974870969522552785688332726783331188882298715375720102739184711387869904898970917669461082243472471913611256661943299000721517230201459186518609062550343841343266515803243703462262264215388413066454284088287814795030620990230608669415556121369864034681372049744491240210881391375138036894884456120122613723703145939058329351264428826620577186718942181709285007512520824590116347669313029145613604851657840986756318150672610412295146434772481845529991829476702151704148992992725923250700446657281615790229285081831804747884777454465914675661415083201356175714104841528341471931710317967505055357821268317277897665060714686061909917876490332966051443063479171779469250797684859257737019830210332001993824424702210558008213172028250931538795443841568691526799511324721004589710115222179502433619482638203437315683544498116635362545736263559418564921010343771447504547414965558318047772195914132415141397849423067111829120966377176621188315204643247269498814249918696477299403854513845537119327257624548733008567019896637106653941298119224790868424412762810160415961477085618777853260068023681125219358470031577855289172982400303158240393366231808399760853251668798031191773334492774437089058704151326280965313237677395857232939668328743760503019315173424326838798695992580880128874469201033258009604130089562359196992816160191202913745139954481910433287610571228923712415795189928569810308462311146654234846056413126200888358249707096445315247233642866687799662560616036391046746145042972830106030184359471742181248751815690905733773635472059888082980513846051071052009253295623411573986263309834590539209574200514927461493949134545870868668872878650290456636634391503357777143270992274231273087198196972107129212473825191239488068980734138257072534850194646757060092995658511443440986990746877157704965409585872393202167178386287236678776029507960884185208430025345154063608590233163525935784534656946898684231537781550848750401155832266989827380774516668035495282567848963829875952779049422505923176730885061433348958761903047318142581752476981501343275102493031342240052782736046749568692662441049388044318819784549164787053490620434366128855056256313547638261807625502270373540845116220272276143477688333019853256099867865049576342781709762082665173033460394764906318144503361729537230053992220845048608468938233377859436509872705973576960756962756104974929110339449693255822441420753214672184944541971589142643831045810916197842768911502726388903847259910105680883044865669956759870645538455381688579764570320785304341124837892590994790784419622521814156494516655486491152262704269105613272376794515450179545107012697463491577056663341816058433082206121144559139638046500809878462909303330353360521760776319466519116471516735465476521222962886036315542827802524203546894364828671680455914459530755133317753597255162329287031271710365511278566222216965959186335170272047825994509001745473111215389889217993556931942053809650468382677630667113626420827735861225980597784001013626461316869448246745586600489495144123152164349185716389966144001756168654603581848044684183107497987834310915502484838577432076791618065035636358871244151381957390300962007900002865246642374691016591557109941115522367797856586916631487635505288517642480605570992303371021254981357941742567721335898296053936272252631682874503437898786624803613764178583043482822260186117921426886441962029191103957039339945092070867123239448268683837571856405766785216014010948362628855421786440772265571646595328511657387293226987859750353007281667187556991491602551327294135970780886316472918464790106908190390424193743997677794181620193313974857869580102269788053036884905757991206879115302936509564725714719834202683217850269139508513395680059433866982184792880337307198435460452564980479157507425076145053981275142064478964183027556777163343168706427499376324928472180195882386137572177877222276254632466023812956122494365517322145567785550914765420757559092772617650271606655343619878421282956531088396104568089757333948942634366058713526799692957513003007573513528127343720129039322604580386247126747734709030649526819691934802003448117552711187643024297212958576581894155449376734766291504395984612847016893868645461736969091078464162188928655586309405581606504562545414155813098565800406062770195614613803575469209673577917623665883394310116540040481337415711876654092805747328243918289891185195815453278631797161693912499732427560579613119462241282678592032673069302094129858989304107598431396526968799027267823750621520201519836285863924770048622065830038381378615091146693429733572346463947612239582475332048111434457601125355462674280895144746171381632004158668243524847684228546692521157809929098054238441768331852414899594354548635162465942388619226040496809418541216637103667664540632292228080616927072839796767409921197216734103560152152428015978090744931733360760968402282608617582132827833323503083755664963308004834680970647552929079129540707388181882216347070326598053927438198289994559885682723398711339372160996800983779106090590073236995280301845083558966151156161551414221546835932512127924629703320349405840592386969860725673520945923228158884926394450131725528424335151284663170261478316943478410713183957684228688777530997910279373261531810523997177352443982013462645425878696260459573447061787906297359521567157299549870315472620662848716880890513551583789492261423854048061968248504886885617033756098187526053407579439449630838990474361171961499110418214513096388482228937581899210676180555775623777499037102985235955268036338871045740768261831911006016644002484582599427979159613281062962850113823011326079821377540466569973466192315112619334195811410110926054635238717573864873057815062802894426248632731916744228053322811496198096102823348817765782137398985562939563209521396661898615206059952825190370760659320546936616498874733302328944900883175917284725343569976263116331684673940228463564305732284316156530460958581096510693574252836583748398971904234187546809915953121549115223111133921060381062169062584841121720409149978904693360972429909091025166234500317215317822339961983349822874571494297053331235794542612346150769622723960371152507152028693904932478962181575219882761181675906962697640386882991962395555101064438497193096045548102147887623023925276328747771107186655857427276475603702572646892184308026241833437449037280281935410903239524219620850123383715548892672692508497339665163450675144924136298530044003635855738812902382629545332447790153948827611990040087913333092042212519070000631844410173402765128856532235804699083613901137508722743068048818628491307672578905592762992247846030236324467758212295193484804525640916616041936065621125987290553910002385069368285845521970284652921634216817736811976994132421496892889082106652053445340854015179502632428554266185889065529533561987508774826079843591688931393087404353789407326065965888759787224608682913022734240742918008776157414164546613645754597436723086935636203600190461754102709322184844981949650638390006103354064589652931635740777300975428425825612002551183113147622206372235163278813150153216229002940991729080671634410421512916049551995638130961066441304459988291885378796558019856236637192961798198312677726449877632864646351519731420274942725740812135459494223462198339183762236441000453621370994390922820920223858510030672736162173633412532439375034181255670626308126842259165151105274750077900064998903619108953840027904864730438312178562878602575674288089231278808499981955356940889429810298948703322883601096941480602117022050404311630321017202218743772242320788123925071221360935627764310109732065579537716704946627229858543081860780727544455131116288502038662941828973884483523709675890165955049865978765600917575255785740639957174605744422375001347351950449380127957700922107994183468854465186765676062383977534977365569919463189792667557166011859290327427943797469207326004882296644022093317665252326425280458705328709331795934873062308434995956359815848091709158267234328790976939617692123677394148250766216987223444635634522118249398541544799865432604107257106640113244882354944004318372627601705790784379208506624977610228926816890869338765812874123961685421715671425435613276715835032055400773851350799292210928975323286760239699875110133975329981126758343163897091137663543157355304460707137158136338357847763197156096788569424017227058952125782700438699353193712156906277977134509101346885083070754228516111523839980569982733136726412558877918024674637730616656948590131976519771765741689981114435736124906789705903073734968490223436479299146425011365113373396419086507800622089865986693677766423280627868063830929402497776548858211145794429757941700100981210780614187062163765325580427549142483876622315018042715761644858726959742627230888164915856710398762625275440979238490442661837116115843920710506754872794224179228146625753252954235458915787225703609420773885358334345956639050720193012375074108405475725924005289265835514159086137691890853840986842644662265154740272088904327748967290161199494353026460333463741120590025668395713750854507278172821893477883973458833668439289167437277463904050638815992450804813954565232562778245784956902900276424956210774772886112712607543909723001783119782237871597987449923421533379307989209535390514237653312432211129757293097504543536005045310870645360924801595414395476974489771886692487162803814367179520983508852943717391648126064709368804729191727094339561030341895462374072409898584640502520304798855996106507994946998973553826998106272819035572009792306650065211955322858082089995248668147274405044738453557216396256378376568090075659613695779078190566513358583584883059207628204555347897212771844458568571436790818309624011750330780094861578973624610946089263416635075150435171260140710950249658514745163706073823283296450002320417903583138245614650356228083116336450137024745534410909474806820102205380326751721739352056764474252786005241963776798144775419127405003064263913901070958107194275291340335622099581172471524295490733278264345285001990608391619718751892976127843271408881614157715721271125222703230240651973169560769514262950443666259640841403624274260957514100093414418134447939601440924091636164172283619344254835942476259769498951423979619176540403571874840379104294572932148993128977436631288968479813558220334158432714520112094885980544277528122569614396586284782005283126554513855848628091184031096726644256681310745116508147117341689939038394962746831948454464805858570065172439669665242515750870061827942245661151020831360365414766440139591693078079811461487330032799309741793998136607354307755251142943582610762996758790924314557383481377161537029248687798966794075101857756310148924997708724879730003099907918806153349492697496219182296920467420573735907565855541112479985158447555108949039590637907618707886981401939833993831929177065107838579659654928411617235041201419414855286552719359713979890877231595365132620530796708330544209484893646920359563281835975083273755939820572499173545085669595183664898668264658782792495935483717462664685688356222803090421147244808039525770799488613809029602042575311023227396781420937238321561892584234572264342133401062784300606696117004067257337783290574045485533735689986466546578235951297527771050552465109051777817268446092766428020396302413041151945529621926546211682619836862908329539794415066910503457115540543952605613935027262292718667264725252511417972903169927452505653624445474920958860977634890790087550082092701527654391461865798699857670491158240545283038099549108689539177201034962299936327712924943433050607474087294861922924915563226601516779191777234728895732844341156214106967394737452307971492997637228499298203589567752005022868110479834969294948242666961830943617641173357202492049189744945620894412433346936997129939691980611165471421395010421141510481206803501676574536514507246891023860759422640594019171237215280251873624900001543607819637930354021481636429703778687019177070117147881726858006377972006490941602391060090368309169322164840020282283385652388489713407897508323593132246082324733296118610344180491996241196423631721201316701945282033730404272302519936957866031989227470679258474961625137714792391671902152528228930806715606353873632129138773497304243312834220580739309810265002925583449491642453544490157652086537624171899877009316277528725685876936830555165362098867743734238778930654100300422367198301896265016478879815827165585172153019705504568816931885556231530926805236399505205083447594797544899479568877458686968033067586813685850611238113029179275518646241317382268830780684577980882631069499056523869378100213882594278589066982499465199389639885735088308069276715926048165727262145851131602537386906793593395611898051559746712119818736410969129328556056618522943566627674792765804509747962680786166018067393840252614452911036601127907763595742391506369536672896954377875082918869831184497511995684509700218871378627225223643867107799035078432172814535170990104348035733072301573687660286226574664500842808454474203839955205461669258326799679860490181628767300411091280020142626557382769255677365160489055979192466667107426298118001891677034802209899771416440146059138493005851645409688847915228025005681636757306010795635135938296174910405660097860237473525242139797329323497899735818842065713095834049543275421773904520226312851451278495372766558320568029763959519170295348045185055363618239429439081342241929258336969031682487485898941285830902417752644377840377643626789909763103937938371095813671124186464376746508916451446723885676709315424612610760291144865391864493539582933416888925121421141391078566778765161024758710103345920130324414778231793299119751117646907559213713909971639190682706490489544407407424456298299758987899087370356769727959624174624399893011356892628911654410813515024476761009393606723468663106594232757061333064853571101452128450599153204049121473410852921184142148762582533767939832391618574705061385205135103844324816483910406975330510198204403247552178578332455315957049765153323876449261338173930151521563305295704938343089137005709829655030930136636574682494548850797560964603262194668679158338989752751245842233928932805025616199207385175289900177934989025094368509896227613502570343346342031094028080479185384530937071465851218961699332366698198838604275518231759744239345933514097034163042225593779476821263799210592089698843833189207315050450310732772325569492588403901789963093674475913690922727200575897607216722388754438225700949010361088033224050142779243118591774335097223141950676384537825622275499922047793810431846465270005662492112067446534032082779684416282141701256361419403916652336440135457296148893248453233278452294290982839989210549498220928367358517002321252768874266909219308921059401520948147843433717001607337217719732381956054282104199953231503158856211628209379013885334182880300924394203942959905302190414021127678053215913077006983339175695687524326346361002038759505801515166486506052228256569137467783886178885025567359181094969948630266651218425840096431096608601715325514261388447065925967215413543472472340955492291294421726799046739494296439837695662977258539593817662400212118680709701941251658552448231157766243955336310868473621353025710662791778676046491493183625463435407595579330573992656468470162786914736174899031961261913693594863174768522453774249547797610677353103141705482183341545987443068154840616641351462294616372354501150864320579844211736625423289958891762432050929665254389551319273167004610008548818490159608126069998001722928874867283514059402986578485095002714606888525546463461601262549135953215819937472720439210055760065319997119443584452401300538684273370998969999467176990277503844916059400043595971485647222041003487875081662210707546287010738304239027701707451397972545620261474473089124438559161167332422266754376892657254097553270883702064916558262254799457708532675001662733189333644919237037523072577975495497206770457390152908711671829013550028024565478233176890458932462251534760463892188732752885198306834622599944614331157595382594729662180033249660709457593368774075997855639223817200799470234857468712665232433602708707105757926836967043777590391432425669397191593559981530932056490790394359055027826245486056747343782116875791011067465651877314779443458388818434603280132277903166680306464456007631093174779843773104970643541868267677928840371210715889633799677305293990969638313866533249491686223193158359113003869979821288447511309687354906375934230803135214341467144821943195244915650526511425452214865172326299881244432320646840198204894231126525623630816654098865598784791565140216911878828447156634854049605407050812931131179680083978402262469416755947587803494170905266127031362276973620481056442914726955383639893621569330143563556953699801249597189211598432491514900834550674364232797815726679262645591765562121586847762069241113961554907238411879978796203165474191151114590085283108830543363409607292717381613449032903523789040920348232763651290243613053712036747205546922893737311187441450201542757025387028467090875746003583680577272342371628933339958991692017329072714607336236229176835874716006636167875003083776407882978721002019254670474247384890948619200790480435815610282907086606555656416963537327852441774174326721275592347493420599312557003873658578612020014531003963379330654349314864315818064897223096369190154662339553759344208263606127854720570322120123243312602152744001163735689864683054745534994675034945227201084201111996837116736222520360628319729013182436446914760684334221625917231558511153314400906559591828446455359353984261876853775191356660018554997257018033507452339064742710718459619132967989767311954250607027095094120140150427383398027647853740353970387243204679037893319950918258001700884442709183156646092747830013461043244169642103891381628375103778165277818176469508282551453895141922640283579745755089964944249668243201960246579615324390169987085815846610038789512804541306123155949157050967927949230041239857299521959097971706794074021611879684556767848209833454589510188981819352165340295736812604019247422646051976265269351269840293251314683798996949120818852512098285213438872896096587853089132439044138603606141338809635640330554893309793390343890719326553069365172373305722781063046056066713688262731145792570714028603669667403513801492239122293413336274363017535000158536104856870762002988548878701302195390738923448219075249152524167813175471901438627679643101265968427804189725276468409031537914780929717467111459469070768051458149632989811411149413773906309224203542827822761593886858174755644002856677260563893547086004441925647699948800737018400822182765710954944445648579293379497230936185130063049517903840270924875928341445248162043636826550909300217297802351142308064831486906783319044035332758421325906667390405444579256995023095628348071400837098115522356990574721358087115603796367047778277491170316436126642779998028520030504998618073881355535901620706321278089991991418960110956410824606287243359365757342104734166615231498507589144986511919725270539571461884481028369220387381036635622099390126853827099301140512645991207968277019935035135188986744234877933562762024322006380239079987932479260960722734227613524122037562418455439192554819034189671086532501981465222622209268691026326193009975269221122865499660938855688112180878863378080927541175727628123813209973266068171080259751738934850067282674914337437987647022726587504047543789700437535401235591023756863636078760805971352862948584566127682038842989836090879180283935639906560073531773319247228687589709442176347609065562398170917525272569205678396359658872947962968703226156997098243291015638763372539006633925050159048310265456596135636637162262703355947750817600945561827588808079923661095506478376558697487093035420584213733761627876454278216241200556172623238393841175586043125772254889100265150901669690732802907377362870166345303404058264668220227003024962292884709327258452583122258366212593203631142042900879038441883674092394323300010415040029502121063579308539761030007297202192059383390795294609215763764116380925983202859417999193556140856705690952561903645970056355777960649979397749721073929395247038388512768159037978064365422634912253264314055734169147660678253387019004874431430775422002971944175860670621087674596184846786504899097990901881276058364207998506889868667958893554232526455727552730115069560313803615153578156312835520613637045521060249136971620566015133115230384464840354553827915136433006066087674047434658877699239954377180588699636136160382170689378059828588196381540856567376704146879325485432871252700459484879366375093064327122998032197773206943656945272990835436551938200913991563861760272878771895428435718714012877922841531235175370889762657729423138292295950782707747841669400522488224269739547776600790635579761353507286722413777515136750613690098547501027384433263565097746896608709332564324620581344122177677511227216172180352856844903589714004355815445066049633201390712785823274828779743575097798782624367099350849369423639631980199275409122168893845213820242544965217313650955753429245269872159755671934887160805407954642419142187791855867525728523805694369794992284032714500869198177791517776050534380039910270658046047545761841272627688926301853191845682653147380502492403224202372938149989865828728047169691598595322319180732637151823140582578340806503881869182690756916102330983266076171915376786347818445179461313438865286063718162375511645098024244058656437196143213400127418078167680772435008855345447711097502101457590796155544231529724177142187759989763599470407990280066846061454625899858598467207638650828225289571351349788445608710466639044607573282422583790167576955117015250860793864508603914680395240662252750803920422980697216580951499414981979774931775226423800783916143079191600175721727331219099128513342398392546329580786728368654407443132147945251228751103388621045914209202702035681409847133643566136749919711630395933534644704496163311670558119001362268207067769300060743214674330411012693552392263872553960725181531401045758574490328712342859385627398805270479628342706388613610896175696178475642745014136528955428867411709196267420322657654885717364943597939080305518782038716783130060966667570437941536308604329514996843412063723974587085668651380241109251367432934706210403169569049057724813799328233544158280629006094930004441403330393262209167310015737701258787040978252581364213999858429148094516529629119021206218725348387161097982687421329710621063386250392335600968907204312789795181927213698976461052715078591570818394846290825153738923100498487423927808835584243439550811905913838794845533962129923693457150266077677069978434708446173136100073822470351534280937806477596511841391927465597044340435240827945396439669343991356515409987458101573889876223841695271144838512885634666172136887183846351562519644666394561109343681590636783747394918987628079393457687127271248380166816533819775605624895616666940991381334130297138747566360153211757534898862069201539206983335063057940207786091742698281656905355368484438513363609759696300088313221799661283365166419662960753319311031475307359474252459036839905399941687679919952667533214613127060146906389556856769024666162387545840081080283132870948919546367702129486584116215779926253530554760718452083263805597080791427895872156403212873981950249804342484823130637010577089091218686383147299215058055483427602576679796486652661731467612833984798754201519298423908665296872722055783895372964369660046110631311641953490796200319240742686499438199333973986415954118573655414231243573560680529488960791510394811181478763213647087485591310321824843938382591087271142374392952870739764762435033955396554667105945676369958447567990892990834712629243369360716830191957651810903744632913587414469684188928419377576327963758302374979192435599918577822428135026771460954695399730375445650638419338860899033566381062823149066837789522393042836686701086196235018757176198931978253138189096973659656056460109180056861055415231712126409404213660313468486578734857110535013856212602451228139303694055682840694260938046816118779056637999512989792463723689868180867350956373516118709101769153361997026916084928070622408634838542880271842438175843288124142313712990304665222080522398633964715605053036251852453810545545908480554555130555725571562491409683843053040109949768068508927377364197883926179435086897956263476837779194410586522562986641544405234722237733179628072848473617842826245546678814288632771758901251914527845661633398840653438869630372551527489698089697508784476190603498334608877497639903180188734393311327841305973171448865791353596048482653573980817980685201814560393261842502936430600631062577452597600892035112542664413411651589679948748721887419539960767452072219168806475260517217853446578909291768166437860768159390922765547291705487724672895047111944155312448174726927611151836950994300995587548608641194582735126427719027760563644629659829662151429238400135695649410940273876907597915217655215811035513682909011142958381455774053052914555464689145971966049132613507489879759300271434608359971349686783857083730535735555719937459646198466715331612448996665607742960181328970872687933441377454168305512493240934951556659627440350474913677121628455872637371842045254056458984609014744008100326389152661144829746140406362624990355217382228434102984934441997509197929876660432275343761315828155671214154922206295954394890386297384579966127009240082715887506176770163087480364195338171207378072716099413372034643467213023168913435915907390517802699920982691982064566329594557379502236995910540655607764072759248346032194916998948369540523551676736555125334973672552265804774446671356638188492207886317305218996956523201919140285716102475000210947605519517812170738026986420490454202332099388075576375312871281259589423824545735467189845404118490850583200955302681598123876322089284408311726346277021336864264654947507885236071434914780279487348974219757797300677937324021367337917310880247088028730560159024295619719394288917534327098265397733927147095015208445949726980864811103195857778341009607647919648460041018789977124211617861247936875270589786385240273624886885209743547211805879920277330378822905751505377090718108081017150620047012862819700563252954210950701205861822249536818536983994436295827934782584490840062625728182429601111104824251018226631536455607614246309858653708677251874225917732396800015959539660033399336480295227578049700353319020101179146092463995844656820645924659921672699434997776902983940942270606779727865701476504050243537320512135840546276293628463978990415680383314076945054245416818707974525232181166648350788935811573799541629263255153053582983303284282284713270548210125696877595689815152464239545060367930163690866694806323909625490808244865568562716442346747239528816787140841091059210288730392675058907219166894097603805716300558185392323980601853362780014045794247620326837646915397763633672508058695469501222711854564356530616913380208137708920557341734555217917214020280467779628269249566681350775785006777742050037880165313797418430050668269088894846352703951124219861900459607398375349564108170477133783734431524280947062459124959641442622969402936222615258592807898860592827588314758922454964146323580850240129212121818201960639374286451214750730616487751605099467873744538972556251485626370411644678143966497695420239784614738926379784883051054548287780995153426729937266418974002632408026218019379403545129815497016409142069722926176044508895745087828455744720795735780219971375710902579165083378405020106337175659454473597121531449937108237893463020058184492344742034194715984388506527474707888628537575175678899709959274167999294829358004087974401867072765388163563700826651949873687903162383715216720674494733158801492495249946157608975693609547155536068465675827141842954879408170051696051090269046453822811001801456973723377763198610744401239477157709814007264622474301746352396052805629561645714408277046135736854970048539515921318291808616208889658937996972966601005491034775662938320572869398516726304891616250982557876364387858931593769719412058063319172124750010498417760333881585031308381851601452081499956958329567783363266992522581849270020558920929861275163645899408792328047799131237319168611071554757263635281778117520856140402688769709606544497776609050727569186987329385178674420768649123356319112875138223627477275000712803498464688832388091404532651235840252944340270835328864749799783927823076703718527088606191447390168750250638849319156339377375393897142711362796078596491590404939053910331176642903872717391842872227048203336292501344601462975792858889500520043235112247499167436447491489009826468366425886475710962717739894716740924640543368708201817412997249980281910434157244509391902964403442698123516144686249026163197028995350464916555314021311682238707429704405589837431001779852494324233634519691047072683536511180329402867466280649582005117598442407228667637850136718250249175139815514939350178533376472030525654712558540706350083581086792508710577414313007329264704545166612057688406430972142301784138261230100098953221709296499467176757233145713328280260204235213019222322592487592701281234194326245220386314874444746808476058498305187992524318284273988773296720046115780903014744540439475757837376238786303911010861285693693730197244025362856705917851323997284181230779128707708396558667529119109056739246579835917945123079989027355462939699519237623754213592113817829325914784009280675637250310359749587309692348092103776397503400308961496622840709069186482609911140105452016994135650968902792864363573619908914737458907977750303776344799653627907010022784238916702445651682816713839758258452450014393156982064785572469376142136330542088525967410506847633554945151715511836862529929865570947690598031789166343031777485878575594831686067074426123588813891677343146056156174543810770417436221251984721673087273859133706252771642860982800177804126924219037966506186436154227211630572648608036482103750731256568983067640808620752892502441760737193675167027628138568202799081373465101523194337702184131282731429592186574119710468292792635130328294304545157431356996371783800906451083188860387243080803352925291340699630756687472243703638291559677947299549319261467035998966739147567318933082164254256958558250954594083697949888219137281502618948989245638998655282581175100641653738623466304220699662530841813345535145904532701463388460772029702496735364372200861454514341120194229250834631703861435637089662872770123290086404067553535821516741119256794196432405302100072013755889242019504572917841259587974733513679051199799263325367813651513170829471913251925205335540626430673196316902074048579246051482224924249905554355623258123630650737541300756159298643744804334397112697117752676807375190415103207427184707293556370086220848729825050956280018971102337164120371753220191737315231600278847961502739974167303676117948232879492512191210306865394750089838991003283532934733239717259162481442746593683667708236451754385092992810528048495272050710616611291918621390173949181137848609016092902580102766149993204605818585283256585132972069671455897660560066422963631041758718347358215882452051678536446909980856226527973138786607644537720444017417832038427599202438064118077935641086051796643718768235368350702864609106428850973999334293389526538667425471565886868236454192928626007350846205571085800369908516299847851449901125683649493421560119767367151369180371079531061505020789129734000422036703475427543816655879185417912352280253559187482334359683278433108878664892084235079199638792746681041070326915851125266375156503867368081718220670109038431695045087803785560577438510312162251877941834321385635897111298103574150808704519863371157144313444908220619076867673846277297915749536421459113034756215775847739857972733929480648719732301196523505217878866718186760843404514099762572760795525363395767619190710421320494317848239351181711922170219467770541121667484898334197641686493415304697388408805275634337643157833444088184314415928761900616779511536496907773186176404488332493520854635638713029086196337478014400130705128856905324071711920335353608200448706181298012682806308891083663841316203679938692192994263723075660417076253852673759485177450992458969724073212108486209323692853311277661616201504883145185891666561057659399556335811053562391646647731285424532318315772472297724875814208441171118653392897610014220804999226911514459914406438456634419322351849638618025932797638670611828659503737087320282391792285135735020615421871194301862001114698250958281732109324669362847764611058613311942980911174695201879791283419242041427568190945853439434847612653668218020712763685547887091539373888308394201667499411432141308841324390421671773017640671017013768304394373728263969703635979129714311428563758784441972592337710521079409931806704451468266833772337102984196636877805117467136281041635868959218676887856976086036205268747879551811449686182238317457075087198846603099907197432441785403652989821653652776190949671022112747247419638498400954490867173623360927732333304366326449189123218056874027011232711347929233098805472952844789132273944725719400487624257748814680560333257226402845674967689907062854324023721109573783907455841685101087400744401480286064758462400308497542405765610255724695445504357204369513909221000284581596156943936623056615032830985184295922470330304760176467083262055937770188891223096859803532410740834813932272750358913195374210178330787022404051387357799940019238142493168007371269982192705646678317376856296806295019124667126540171332580898466290768128532107541334708867394164420081525683905722627764350221707426978843389326665938186847408446251086226881165253491025045647104667672846743900439339338518580596058456201995361205017521662326538309172688937991236307177889993991029957642497859560695121841308344973028774465738559243287185800883975953456598534230881689196436958270896004735916998295514436178866279300033443126615317584530160280323394074537691350154357915053420081600377820764764902868886259477584843043966595216675045273981815841703318462466507287730166356034839450500888393646781869121440922358221878497858013201442190646555581945538327882946666707758671007664768106169389146820274323887055192010707526115546026617272522934859450694864331207102823369910787551602581249206982734859617601992391082645920813061888068684449347023867456841411060204114683839769168586385174225398832533738758273127310429414010693802361309200853118975071863376641418055760317701702082885269896827565718897890843646000185943116049260956010655124570649682338522082741895657090094224814383206116152518386088122596067388396247873585774629183972739390480406058111428662709516377555797354124019586177132406622266049387111316396636811870920986115102473266416386625720614607931354959964635045653487952740556817644595031280867150894266386969548358416744684959005899896953567326198966559251997510978743627253588993956261171721537248437151862877239340312799437906825172564054254662157166582235673920994558186839812583397321351854727160474530818870737994636982433120128745240607124958239743230326717548483667767400455699090576300542632902053869126999716457489413330268210380389006969561102792384244489025303218686274488800106718465023476556113358771923393774744542113796001528785255619935158852605282279232261621437480616334966850076625540601650759767224274521330122832431733313589680397006052792402075767197009615761844618281560204714045629937423113337599556868905744032251129417755625323882185167674887316859940173737759094131891531856965268476486292686430968976333662414801365096424715919859546384216569455131450117215707759078653451451091910560067414214516909629065550800852656314826401622402525681962743149065339156003750362737841039242733329456937827217439189657767306351906874131565474211394658614572583530161811848208289613908399125027664346058851894155382266611117703609726221344149793002467029915849615949570438992263540688936085395878900163378985187947365815569595499320701365858753972855474330224793037310882459582279193658621796918738403606592968080151156768842435921563160417284660221302912928738957721293109982632363638653722322366345828153364326417865149991714275188187319781562655543182997374308527889983579377574830176844233771215905480328281348476348337660804019062110594808649541120061730128034951505746213469956205145241594028677619157415083966829778096767462007962444131997872117654423860153429731071438552333284486198265036563125896157126237936317720062756394337334283186384609971872849330853803517004468205845508129493915510467646323998625062556820903071371170536641125856302295413937919374011169377434642509951569254603985400374346003820170404794530136419968469324028038790786857852605538264400585784953614779199917348649694195945514833789021245593027716782707934980459568674335416816100131590124009980578252191512769800680953033916886464870842455573912753241699342544335579223289286784627259992812043799996836645443037108758277528491572187232973927109537115779366712180805688320274815925559673606138236119702415591711448931855403395967366836177013117176660878526628877102054842964031481600392611307566490756711325455017266071866223333861612020930444451649949832525037906258020127448026885331683603754310772041681604733830668873276464946504523201984179940572104322333503634489001609893894009582695250923366071458897103780035814769167230520803341899248059426148923044838051208000456600331189189308011795328949853033697296612369014427555318114060671559611247821985885016103064574678343832564567288544524614244177859830635773986041561995871274977388743198094359966997699202546737109379599810802206776328391979404604141048998028632515593700665893656480406606005773507519094118236788203236090613571483450289190937247306189297881593388676305092741311261721448120514600718757021586491182561763773715980631072015524324696021026571765985151677654411101762269970049822776585039236131225303009799128656462388766611643385402111214615731234205451014083712517129590667461028239623275839551944822637623615549895286059181530690992994782865786848736876127750113053947079091649586092801257096750519419722419104361711518960402267158942178486124978716175922659892858028787433012672793348157149747256268978768319331186034185231568828861975749058630942887865528132538675855076059108830600177738372824283050263259915132776631532948049350169707042529502906571605055334559752782021336794930765386500719596917214239756369694949326577403921199338136756823639134087535998392831346124909361837025732353326058310001041181401269907161402902944067736742197468444995192946032705425606051276167124012014696024821487093538140118990347747739311183800464241557328644538115274261105502827633031989683993782276866561203849655067684755174166993501397978749622675667794283426433450907482091225143107064836735780070259737717236151749370141069799230102030608181437273949767229077256072519437502847419262197326815174812032567699658212936672718626405769919782663192575084918624488207408387568951288084716296249353891554961959757577469504094795168210470919069483386964028810732905413326202786094097237209178418199199208323309297557344634959827271583306826211871532823224711203667426528527452863829452313402678276397090495363897582504778987235141393469179938143197377323119416691971334526291239347404354182948513413192872024350164540960603003685302025176314781552079524003400655159622576183025745973520267807259027078210018756637411614818752342675500289995814388226763441620202369536796032299388756277211346373702532848930285554489208856049603009570731095923878938486912775779616774094307363257786016081209569704979046757074806054417625819572183433542012482372575247361355465027446964265770349857425585432755400420577953991147658784523315124973726817163682891166567407276088564821105363736902451655882809756845478789129710888412974628894965971276550837578862241393142925577462662488181893004474754103324423134367057098989204921733271107164942474010852730722821597851614248911483282905617087292297077404481897849510778003742596557996465667584754659471841658259442281242903289049443348755841947072817204492077663833311971878944930999999661959358412502975032264381291776399244964606479811410655703564782467000074437326061318132044104267566055673622685002686094480243918223268681454085062155036995560204192389353572847242122318547253415748591126247550100908568495310739527631831533748417921324034650878344164504489601194210644576632860850369261270437028524795569704153954594615754858999888730464971485523676421635105028380164876281840599262582304497619150432526080122349092169171671035076472630568021054352244358213751853580343538846300070568191192623365470869849652955232705783210599978559294463282133683082077156095520954671302393425877762262356097110226556048406737386992592987630062267864097344317992351460702805586438255897051035411670840118830483244996539328133704936334087143955829135701253658148376276976089348330587608905755817498845839537703340689129511530989496183196949283792231151937179275532440704702880038521649576861117776749338788270626188869589274313843948725579716945149413600232724312449279227781111725314268603021610327555927797032965176861364248179411897911131207039318051144418806996835515367617039747622584587352523156957330828453577015103120102304700079011383630747620200309040709562735583951182216546110050245392293578663404462448928928143730500162264648572027492570851608151355437072735814867963558287740514103548482230500718108246653424315174019528260352016340643654461143917483390564389575627379240315869096816432645332471786117616808594691523331929991765164264679524826263109740352550007375052560213734494753188174396351242541278668026228981346812631563111863410627715590868413142020572012476799596636729155419426764230733496479652105151146823017263267741521575791443169532534216527656080555277718823880310880934632519799423103142681218571525020685798523041470425636649793626026020611400414893192940311273087193824324285647673812624813530720315290816588557912598540989111870218222976322624553745735493272955938792431863409532988482475509960353051846169693897300916759769810010777360717144536414774533148107444088579639924438446779628415571155826287429986826527003697141210357834771481353877701117534280657762781264292026157789315811688989383148693958315740536617999855981581728380623499278233234083844152255894172910345845416014996782417765185772375363483896302116249059938807875527183669376202194651347968700825865617657345210278350227820772207739590707303719008937957502944346295433692610287937714983063907281789306527713919018387141653147951958599215979181796125874047278575322040417800036658790391479828546038553335005409092126616084047556934984168924064586187792393336751501027954040093733933922422162240362247311349092994552184431727986476074652887673569992467250871183831860352614778241568940781055219798658371881186652754797403034835953388512912956416059865721308667312004384738249506670552237253786813519121298453477303754162166958459705469531317608409552690747745291094132755688424770948006934004139885311950408765359086481346522929352542941013490211043892757595155793319759279892526756787173847037465903604092179151401504475189192837525751872021072795306454067450644937919920052645507765560410769839510661885115442241684961898335007677545287536679624590239802274510174438057071453471408769044834589015699087986152713141496279637748131832041454074503430105778197912245903245867761212640685219493406893285566453635562338258788540267907341943367852349458425418460516850135875169505486883222241567607070675351266074067436414341185965312518260037343772668665358742054924320249729499827108753159434826384817200949516433241449314902967758949758724561637820576916510110854740172413605971220331518217577346946430207979368907486896356200709265764617873496096416447956804709280481482218179130673813802725509332692575505468696716829017882652719950957848316931279995237393399106258983983061002322853769822938150460472343500021309835913225610804199163444084185219002158884537969842929623026351089933227873932765415767741588594020535689452040766515990841229749647796742021626624613591517124465396658820569487111513547512253344832903934266199604436620247301047811389574395125432477397176915025750999372049770112061177081017482443835850260294788948383745388742852273572523403009867367236646115214792767059248630079648111300785473354404569271658607846275339015290612688342029867051085119290170308074562110351520553299229830527828357722473356201925226676038037320943194377193333997452864244268376083848768792538297753126203241661950085337418489521749318468157211401944609098536290991192133915928712287051256174521466488776464415801227403489018570385972507772800949306281821509144813709164776548870880880440827284453940703024407427120754897739009613373559101889843576023979956163781592899706258552641553283574150467705758729598687409367184092194047043764665717876598650733336166063157914575612516946450932328949895974598832412876551413696547955711963873090231035863830504427516692578298346318825751527670254722761102698054246012230586250004466847169785109332184735239241851849285506160245890392507191815317891148278950844587489742545210776957194426258089220141174216490478416346648039506907111735586272409099782809432125503122545887431186454605002975818981029399288804829599876423857157636501942220708608505353863997012429955528161410437827670418210700775297231655695565537389313135558263329047902100946984394944668227108742583163816488001308690655778313273047097290041726354413722385230542350162681842178099592943926377100395908829679894662197667153993114667607125006881575530722089571238622138695861233145772517696495360283832083961269667743174162081934978190369319889748470964254797773280844715761331249601171180694361559011046431243500484169298269269228968954446783412670202584967543423244187154529328096747252335694139924179358402895667464345745052702061079782699112149470948703720378023948855616391215384697198808322398128536834243937783675273022491823654940656263110387832693745840402000275700924908335920097316213346976111079807409514977329348514122909975441443058812011056777357456718402046172007978745792979453871225026105444187191244964135398087432175607496204137738042127958491437562855759479861807535889133987350864487055997242732715461917995027822432089520579097845014740792973985774338741656542537033723523144815460026833803067323706313738221571239060674840467497878199632162794922094029286244103924518277244226307236563943797293625658567551624164920180560034860007051112946265841841741637057365943550926966851219756201336597444083688071653625344930672432842119646256028672396244023936833929524549075245653615883177430892766106884062019021705451865308650984766701293369853195005329447760321058195436841583861734332436666377837780489999576903471403496439346555833829095754694750454269510615525401578553729374358814938650374236123969018174024261681155446594393993980594380476379376403487372485346604453519362218091330912110617202135705182925335712769073860151074169930825359781915334429745193613309583322714088985611970546738739634011894940796281329895611585937383869600249302736828344731207939628795871669735109757965619444922098164517671319931405705771366384410697074601065228266811882971993050188425750152198012593248617339643876350748420818347065809215526553783290746228696235037740073879595826685789583885815947235532168156645839197001227432851771784516936519130733505533240346129638997629744538060741279089742026727164726365384567129716576988084967221115470996792271246170791211564194213669799865975695252410614393187461966595328424286472370768968948614167982657520783762594396217687266698304833169671474905391410384569760909343350723335507984781680137390698670765987205397974975136897610639154736419772333320570158785419004559393868774405118660945478214583788388439296123189799246077054768090950687888662422106004094265323789919020295801221111518697021542216751288842411684585862598460920706424038516105346458367168115312835600114017927602466622596791289801882770314316015639280013551786814679289235194266305320688888720232497612089227196148210132718611037031786800163628259491971917101506508509317181633982910962702566501349935417201867284953071632825036657202701455238313300639604695274081934893336975124864975699084683269552734396093893501266999808369663680654610348917941966854724915296223987775409245836931568703381118418279453469448689057583158142182418192295063393292966439660024082859998214870985749607378236425276406436563630416945136380250707345576091653839440638995401896350529968438479478939480843993757189910459271580984368063803316790434680374950872853267383053523322355643103656692488924583676878109882061846865952599358142410178875498341173161081555329687091033411612090213697014497873400119585558159680085509863972043133206343725472551551319994330803720184024811471656616160306320720801423762014264104017669625476017871299004990979313632646565743336734212395287433192382931811184017134590747018959272680965067592724901989083304151958228508886807461640334756319313944443901464692877536825611565573202069778320275028639913433322194308164065394325160906880446989401787737006493852335817768758541297553281996630525840570302701208330459476996203960317179329180694264627093648363356177712015108960713385914689444088506695074231771403321652985105470211480685559413130824055722131195000912029136464826629626803242263909121598090261696413208792599139036582236947148705665689580423327857673169799813702900546832731054000172657157968329350881539237786533876852762259076089317211350825362764430756986004605376409708671729669572600379307555483515560167157958996954992625229349374400944214749741810153514224027227104448075231437906474088501583144180919958037397326679459692503007459818504417739786231538425578189580346722927381389422990265007565748376047976566190980854273914455173548244742349363181594352392664084100305943695756325776292339936461028118182320080869764025840857075343839190443094453236670336604963238893908121301938318826962823489225658097957878119522892704125359876126221707191666711775125317123439508032459234026213513502215452844652177104808706940583386593544176668764920756780279304492335708403766405565815562206997397878814268997980739378622865482473076348484845609319513330172649454088529096852949064820912460521024761235217103147956400272511586823701092853656684140930427521570217513336615572344650473600933379665340700016913917513394654417396140216294753559940921767908722195715787471685072425930419471023691423841272228172798062763528139263934777806571734371788063429006666332232022269942104855241772843608391622667882050766107742281340078488304201961027842319634983659294462971715484980986973138911392948787281639369331760603838176141480991494194491238824219451160063142019742703762149112090177476057000907143287846270455875131121466322012182764099134546554578248777289152385615166183472470134860281514372685019629291646013588693962316280936404101976912222823006890183160733266482819923550066361739742458341136766520519940111744157629995687513024821231320049892245325382806618471247092362098930377368716708356740350455391874971800891406792504912964955298664172032766211121475748201332458468420025261003418351188301979229411101599063474884916310675849102390474940436977551919485443125122968794693892551156701800878754154209278162305282488461861331615789447170714646715072711533477956673459227144149944942190556852373371297741485374759244224344122552279899477138326563245313180200253443855265200477908192729170466646460541127609319997167482143886908481240343337763318616319325770374713436132423439991682268061824540820622879888482997035671271892469519065401138330875913032146731782780540538172204854679548650174644254014360487145044404256059786314347261102886994264546456810416899419127623331953664356636667851340545855567524763028942411709093735423670263415851798737825305991296966942653540449703925336167145704805680756391779162123209439314928085076937821430225212904536514924282929484158216926980539942023325336757885998065671118761007146422619426404035277114337356227938289644045912100604929130739412543591380256492131018617848583155616037626713573975894349634562604340270790301395865011115127038714188672319188879734247283754559832629445804393057272611810856631640783592096821230043652825831954673601899866060655251605873653660849816631534246871223402911475055799889394953025307869992173834085640617025679163334656213384999534735880183193731799012292826941432040943860507359712337958177397116289925294290281743652798784336452500890563457981366108882519102891923627127735898900973501449391573995506997744719980530800472703526481854245740273189186145121419715615959948588208423742841249861359050706187357618079405076084085502855881741546758948374453535637273324039852340395040913901692546359657015910992521943361723363827586310537642965039134668178334197907161517708852543687995257778566589982442741133983185518270563786068607957089283563930874182362197605015143389087044673961378512036327177971214095317460222275870789810096980638602832853557816379072638694493123008532138093738275334661364486461840259287681862466200940744064173352663217228726943195306452887023343679165757762325271197137732930000452769406582183147373674849346415591844590445283863496977679462821449786932970831066538118924908044376938729591464626597170930845054977303895430656570348111973116178361535212391325227985700176598559509066057779336000818268050614774981873276564867242331038936099162018943803198037673169353993869253166871013068260758162924102018099601652411752138894906262520401384108349145085659326269004246313292008847828494341253968261141489616621333131070778504749020952619325836477005024167774641327158873451153488037378718871596928378184741952500607740147891285193332628939564481132872342230717906764377226212207465201428446792966150673776926187381237643798087076802768952548601522745763206281078856627487023464110383592094710028433752671125181006589308503854076241447346895298571504318974167637839743918556002283933575790722492163708955296382479582804642035914485290894672486581958774006949755716764510753995628148439901330605764705773222184696867270587004933475962565666495259159956125789619313855211951784538139373032881068579836961648131579383525951106195470902731954590689912446807659757514843456415915073289395091756539156536338909969614831204177904348073196687439497496550756472132883845245969715803728801693278306369030512263599945850160724335285964071228887771123508592430957854486298806679102230308808331555423554413335715509121499997776099054930733864017111281991976949611787694146524929241476692825416996158972671766967962082000009798597768092561715885583231708072531314393244669444317615531621169721097281152410387469829085261957029205985625088245728972930249776982690354711526284731894383237172994803768247266211535272800508007788955799519287476760395420466882351669328340218058348691012795890703721716655284082044876726141202997071682712258994091834268691692266940890020109399234545940020998169352102128881810491871077224561152731812865853411655698468342121725089737907616077549259442043888294707212267935698781706448438446889310494855384138578234363908871982028578861020763217082907539180149310997724312531676994248721849970226430521819996722592949846792268679189096265669093406490542534333135697661397378277850286574889322354328950251635782644310459401055906636534778791226544305082929604850662883729361389708699927956806466114313373218948968648780031868431986629459760289989754907905685223330667071086617116290932724618340799471738405532191243990096637601650034131946520389057993666624635543368136040625553354543556951047773965023249098299588402033120727776784876491232816056299328411858622588562221573734665336261359600206967988127295672710992836190848051877481785113681019808396648652695587684706038966954843912124104487620034454289073263633285835035335116145429972840614986398737269397096698007708031327255759541538018475773807152029664559038866989176013703837909294098547747793291927181467003666250983063610402624304016964385914539341236016524026218287455560479021075269926245184599604506321518850240292287311521600807956206604845258561148217469173002138021907302425196332682911251165145593331397768230677277843373560638774128592143707300225640156981443120536644604604894387451838390312919036402407463907015093726186944871224797977970459970490605876020636693939880078479695204135552184753419761786899153274871273623632268737340168312128323774438418818465592819426415228625733756600811005667909892051916519978103992135780661834416038254265580145796555002130064067855473132718656437337164065089438560758011280838839024882101960861542304526797713526590220888310120088571926812402577747755603495603080092717945359895715378962216306785456994935082998452612663079113277325532574958630741384712874887274220970211472227701424242304082797063135848343981453178002894041332132907926269126350510781662610724695424006697233457367662073267259248068813949128887748326205494144406834493035597854197662568133536521482002535962506721560367769504985205357360318217268244235732962818180568802535724915956005612188982180523843090556473161978923519848086023716930495118457278547520452315806999985465763084574800902908340496176384209136152113013550548451900793526034082267010850079362206824356850771949139957746220275603329017851787411380821969905277877857121458797339559301785642399718314886898326733726206707141656925288028098818721215023131956328899981138418902083568173789846579564153898641118528692068185421960973053948131466630701055544966558974730855623350918769697368629290473752023230717829680718487482287042230154946892820894758897251721378011573039221254064379272294704955144000669439272919988532927613789561721090351292861700878174766843002511069881420930475067247248447437549700216585626063543088948500962167233239067381001854283632298334939513466978818176119828161092588606640110990842109287754914603166677835100042175830121541100892565734113419381978686685241518526311714682482240523220938538290801851475370616762402504143491208895684748052040002949886724640989380616270031643697201229372684798378810524429990204145128843719197238243588661619614685787190288209721394667671692067866286675851773625879347314115917500399406679390617544217192248547313408009361944163541719513432797197804174071684125504877042057955268010723660262327588593364545348063307743982330820682464461356937836804330819882796895621777507706891291887727426421349472072585814287311601760791314707217690003116163718224156556377375479922598501123467468821412885776071666300998359611570474053276404952019187280323465625313359233528571370247617151943253979321246342400541566990636004904583079512338385228209942228342875369100891153700046223083775802039310206726548021841522593347904808520371795620343770076086285606144458952427557146457568558141006401565969892409327420288557517468815703116289588437629342498716391854075286784185908076738603771273926061256568996179795885673998888610918125628666680278178002325758287840618795712235237443029784963631211813182620805331025399627897939649736189722399472378917797497085596598284746258743814189930566130806552708010507448322110852976881002112978249347636314796824158647911670063115915045772619409036690135823535806625508254078396264924212246807957502204185276474154013222558657863510967894989156992745649253361117203523716710332872294965131040338057654030209839639672602273447226937090346782468939113577850355427582523334428423003981160339142261262923923862991717473223855363485966650817857775023319469244855857616071238396786206226176190514112372064811650018031886817924548130521898450259051736286123672954925197327182120952737730273118849658609958663380526646941801944240276022859899742567366880736763770588929430920221663562714014171407587249348075551582825432993876489022578563620605685332778203302014477756671473664462562103129232884906108534993601641925467554061184215424994622044806396481412528940529835704150132661609594676040905878162389511783487028880674730566971691876894264062165799834186427253601388235724545240426744585994474022141720327193412327225210358191216172800122314037155785316030745378955243533594032556332458935103245198328580889729629147087706580481958062898864211880955943307582348366404818139997320959931126914607077949363930351119390988714571702588565420581215129903612801218996911062305778176325875530252966963387086129971551077274330170183946079799687852760288275293446048432646643625040464832706586476235971911532684766757515049340685601474478812003967252935281699974010671472615293742264377902771816595376519678211425646734187325351413748248924566624710467524661151764558345022652054093081987212817705918998662472335176104764996053354353091735263743435918396511765444639859916693608929086680251891546346368850294971941846297990557806103227130639215825162375804108048667052568021721940411189234605744881483423365690819133455555551814293379842813198501776322703619237044724674376643283845457765248606938763414705758223312327443012506494254310638883696396630702820082926377465503442105759141507073293041922967238898477162207940450300004990986128330219737454745873451629092691465259448351179857087105139248992615317854726008291485307048998615350846099852371282744402026337902965069651883329393664941219522774862065732631733019111321370027317010449908061333189368894231528573987154614019404118622106307701985580489842242041531973545672116611975668384485932579507341823283626016504500217943710139199110324757448125704097559398388007353930504733624581379664552239341075012202571028402918205793188122248119869353046773481865716628514528635645658320269725285440698046659304015247767852225973213684004395170864776185070235584170104090684709580458924967845370483961360119075281200787475566421667991291387590790500886644433267955968898795600301017242948156247013807757674822418408715223796190950784727801050355673702451151262124156298502181145861908384548642761544218167469481656417006381543895795824790146290667727152965629415053878153899923384001865779305527311945875903663288114990902763010814298782349702102622213576396746481515330763693185425872421157275748892924412023227682822951847136592957763191967370719856909986035509196174909007381231683156058091373413519847206591977758267088109956970602492432887086097846452019708652879930077071062349951354348341054976587006433333403435512049687082350096752202445530390271483335613383525682486931027614938871517056417378082550930919420302483880352646166461266579304599283987244155524284089701916559162900507214694222461040382173585363284275166430877277981915113486109856065384804891324608664537553096124503009664014017214352236662951553590185050488332756681721129072526690326074340045943469223128046959141895434498954390466663712774797759313625287442379020148885812432781062931803560371830532200863982491457278284797650237986335526855634792123110092928015572605265963272128188757584730750422101940658126889142860428437813058485915941178305888074290726601990550483570117859209628256755428171947495739318342656943900279368194634448545545946530393788405079795075811356375880125350683436456462766511013670974564459293100802723475914568560562760233700104356021560244875840583819722073341919009459017508559294599762810180880043603168244063463150006270689211547428467908112595471772689712648007025131459766116344540111398453567269150992190562895320170555280164076732086784529085643305948328849142673313303348171313761117909580937413730879971084119622257763937406075798166644841717209081583598465153352133797807376128772812292484143607996165046570623528081461504766512665125689307981756047182245964619691697857295092801011667905214410655048940054483371048674682506427420711548918917433265428087558790965748272371877205203862540780512516050266201508816484296501724511865729784995726306584435556996187080681382380125770378592162348011816467205941069826556985949985195260892850890115532916247009901094239000915581940340570350131125165129163281376718541241343986072829212955891005750517266861874049840055966136003143470690053193550885019265603488216795689383179539049349444171411327617080536958280310768513758524720406067764065361034069285893575412733230597688953804121479822489332023090952583852779608564811696644499378395979184866759992223644589853442932025561008884130973765251992304399001410075662953559423442873392570422688783758884506188751011700813571198250766250299552625048090397614773737705000342013855971132486775266770523110477585484765310658237669712827782324436543250515244464820063436926874181336583154072726142806216882446949527435879551452794743693205785187776834873086510532219528274834263815537364835917682384162844781754291852232969590152973178367970959288173419321634992438683735362090024166099893549244150873957166421378936173120896282528159812465753881647121661878993088524175979409683182511514850309233896117153558847761378923898647187016433429170856268904101190995832777776220537465495469864965150811547973092954089855516212054942957120103182000017798848931952721832638076036005255156024931227155679023564858194340219787341082742173818472999002179337864494053063798835734649816339661472927602030101386862949095479962917560258552072024024133315232582366457673177310556370916302769887464038141239691394128431621708268454639031916847291859840698122825679456380321654144126387071357759677922253254783101878462007594427436701761611313947647518039906261424958378975277127904042909306330100348270692933245247530217451700757054472837980160936349057561712333708680061573544826093767625888525013682920456487521023738067864910083529954180981277437525280850038132999322810493186800386337045466204619741466398150014549448317873962200404751213021915210506337814981247829249363457687074744824183749978105895532909782475185214384703608313873497261466384285007608214352816007736511339909348415621534265579540453037617865142311550879983366953777230178568727491023129096786466743869775457141081749593408015502313910735791374207921832979217355983756038638752864843257093938620489526797015785943747292590742365806843782521101878836248463181959208286374936950975415486765809559119919260468960523097885657720711349692165108396896239491925200879782565561393345464506114371053952790814365327234871974967691023558995604286945818315444759312282895347379468962509507570534758617338639877760067264829284124666593771186659432040648964597353711706969508743276746843343023105190186829209330137448107366271917929282812409275888579378804458763770133596773461292427704647106500258525323656647025804671145755283124850470902681373847077410629703988226388775963432601099500106144908281300357269086550920185241160910906133325228151428592940096309569058054442049574391694847346760724994514826524273610528265675567528849609328121063705224927677725448722403481031404549212643331521383615681525108426063533221549346572821737446798501798064951876895592530309338505271307791803870530834481197676838998496991767981952963252634976113931233458421907270473384125628344184621507275684721480973840491997699199469941130570678777739962714475492158274570958300392197357582814721688084963906644249744278268150211483245406824415188731239447607481686805284827933658923675731211784950520866914171471692239402746726952235422314437216356692922104050135759134691218335459354134709623893958617750973943294236065609465542493305543085352397793935149370577526068735077592078192260310713769948415896448369567336876384014611311275849018632893933050984402256591099641910596927120974750453722461003476211724210974547623120543856934775588385873562088087055845883196343554269014442965410317547541665034861582745833393919344978540968561612881374715557286109468696077723421547227569146929835162158325037463400151947742064084109039245988477036685711822233424968954811388551187070051946665982514410121617029058377670432757945362834468809826637456740489084899998579359741943920167023799885755172793231647524363712770353453291963144555085172661846910244859015280543786267623060252988113493774635831824893826444049944263595602354062015753628160499917653822995774378109307562208902904337454045178829452107776864163718726338915688002706243489945728305065590397753603523299157345824615797341591814086937682919061692005719875771686819129583327822386324330306072613594587110558155280158149841423079089125435664101983698544381941289334710684444722251246002371652432697359725307473019352536042008136815059787949024590801859032736777143322788671940861140826506481516351938238222009186697271402130202462202681135617696960818395985405603918244547978369866118216139754100932255023559746458126892502890004931985568064523094658860747833538248732211191386724018543429337424191718005305296728990243924839718954394547390264583580997663030368556518924167532581964724898858794206932181784245619977397579914704475940003095020847028564383658441741276308761651643250015635964157075071601063752697513268513494198500854625101423969022525900299577847360666796134642088921891077194116416740877963606689351215863377367488838335372436779764615972282737650724731794900518473266873584954390226295383260061951901172301817659051303655923274644559289342689125768040200723577722272258613697333583528008327939053232263199633195740918990587478267020775425088123230922302376723171551132025335384802780378153177132214357866268591679206389445456781659607966956934908438321736388948699402740406043357431936480172215339669501395620379578179201400687883667417320213537152219144680426724308328069107602948709891743167289426972633983426537396209943278329081171298397930137056364780530128362999845798892858257754235130560836788948536061109764545392967185193843334920892296489102358452511979706988330750350685629958686084939828343046113163747790968995917919626538696671544997161544181811765798661809030205704703042537149602038477425206606001875457838130515259546072934383063028110770042963155374030427240802603803223593965388158541109933605198410916393069395752770512788465677846655060952800208456907783277568759263827716055871334789785852832822416953366180856748147036515201294603048289626794427484447934442165819405751317155754033857480173913097731986171560401792863864224167995721562735906917686716655784433549832563791864064326947627319586534531555664935582073831060830709554422827331012203228270688403843506944488304969607808428889233306569032104749929388731126121481390889928638525864780587487618835866737736976774717909248809696413615722639555621977166859063854177003670516636457486961181020988466040491938783078785938389240112826229346646785035316592779883127922411474548435305830991839624203085912645365610032175047641030503215926231117638886465695196784434430987398891401752337431757114536495218095944277560744905436301301531690252369364386640143196895310978398714390693733963410620964898235257123472285540139894280281810723151658950285640000343775718878610177982770555478796916789579536806096807747459098185166029895262438471566751780467108095102867558624830088617627178936062988689664153314896886476704064941815804589122474896443311529181070955285522204516993982618865363784274951069463429199528810151723322000768364619720594330536160244731116473010032929951805991658652197369439229391650762738593925127819758928412522199231954310489228255507163748395531242998005057318761402101777076688970169905773437789789059166322825333647731558525917623663121997322137691952374712927099335396008378465317417176479837720212550529427193593499838754789494162823380094259785168215032039100838105499770694455056346624492827560112753095108439480592490498224344903826602423795275065647014496296473727225051409925425674608675954380541892315900075826622125879077449272406814688674460379215086223545433797915656260168039223226689853863797924236449851460846320279320797148902192654729663632204110958051823210908681902349563250531405451261308629623451432336571962057467186513849545333633970541534209166340360597297964488374581980235718943979418462310709778217433316053342715675320017702329926507873519272535629341954158536857342113029454187156291258356607469329876110655638708469063464089425380136104258353552995372762751649257093161826701095391165986872373241374981552182298030606998841186414570390901620718769555761404342081146324239986096236955690438322907289384882288259939278690740643674548504488798896865255902673419698748738833804472230196865572711248685218184535234108120476503548573645103689195014529099699105910414782388923529014419070312807106130207955491554419891912692113789781351804970142162748829910936973561031667005686587755383191898852026306929601709444565347417017206945935293550619984647788761364490491679687126078475120643718400317695122048734658307857320222377170361787155112462709600124318839017704725193189553347543821905216461702620223381059841199033934550093690995843091266434573504475495767889418289456560301496559225286351718069014423905509377910206996286894982630383603237446538493928549342029095415416480984777247708184129760381537561920147232998495982980289068898682687253258073981497036458926463948276907725857405507244679105261385164471971470658323049282655390559153287698210420977361490808468201624501150783254034659509379748074165045955910658764533728449852177870568965930015372475485923320397664761545863872877354340063088451406596370824118561712168979125183582503275978180139218245746446057443063484880806494940347091346868917685042585610579311402450575200617437717995228876013093207892303641968768173854628178225925846652071795801468403644692411024098177372269957306497614026254900512699203281957800717036681101086799079711211585618094548859409018808114747348464231431845565186429360178264900581205094039023666695092501793698860436820454136811710692785337922053797481624380875858601394714616000863551295605542926796673578138594376009532157918857153878389604919086386356601026467198699950035581263846039862030859470452956018161703905372254545586067336460259644420266068420610549074785589018337958957704047043939827209086741271333069285171406804859472461279942134462118937442178107557528352841462436637835907729364329354233367470821866606193834212771223295863304745162675187323354959647994311396692517425149499295694322549887958111218415153090260974062374208930280552597787169098061061797202207678829487318666409072095668447588103653314267311131570082941082720369441806926219574172062685803579177097830478058577425861730713062426911366915447392167771877204985098978993568206562748823694462560242269030949090750825161401489638069048029720060340511214878074150850656992527904181713739312534899919132310464267370667359048597220742742574171787923248136475279066396767031889950119791404816803292116529503950503611158993273986208494945598459725758672215440218949465500961978083315963192234517871588733502351011627539295731994269015907512473848808100109016703077428880042225444067532308021403012661503606613609058270383133868432014663870751513072905942348318235303390234110237623577725421146889202838199543521470422518988618724450064953847117281175006412876229765778220854794970051755603956082963995779758043513406518259114890689278659058013405325927065154778162120437249141047809172777123344394552227511870886857773100934021534546774142689571322202344374386980102819775545216462291828411095900628672867689173912394445828812893706476435472841750703388309722016177841936552309061177278935947149298312143099019697857634265367365778797310895156000121851512574660024084142514363065354618370726155893717770135558041666767524173804122857305455005180813007757932562399765258742797030548391536496430032666720970220676121051442863451064901434773276262836663944084918986438055155450190285376410760087491270769063247041107353070737924223914824848577612428974637314312865293777289396030249093097727465921083834354531509558707673518612252746053336653297150486135776004676230899214062466818389763068774338069375696012417166543826612476533623880512275586241556603448315103876518127029301648091436209010466989921375092732909697587479440299873051731865273992102028639436805313415433833871463784672248629288885370074017550816246143667849512545384103774109890092270328290316415628294803164454997231301517350328605902958898593277463679497741688960719785153426729475695654448858125115089194693067899890930988596508592858282473664058133842060745830859095148157424638459067741280467845526635131812799468126568631084096437713965187047155530577332490773344316411970021066871503724128983629228800375582654077736410630426476451014427783547636995210591516016195095789011961421308240555798434518765357117924300901922504136038337780621616535319543205512585672441228137618741805219037587548341009808658395294268378390121034038204921435613402421025822225889481807890289130872517556258092909548238751119782292519555231641052236158076532444192550408464626331874736184409764345056656388496321325131095271061281356457660606464366586067523804392590584549364590042586941980786177194814246633316344752626079039644869656442130485544747007123651150286184639790910482311285833180824837174738199037877869043651681843134902323420873729541773450622769891002856007490499843279049493041639151795351337346430482795190204294503340924728063809618264024911197863685420581442596433353236837762016920311014558467979551153414225813570502121489646692444403622124393799016397128718197107367401178819705524752587082059567553548041463604848777543377947628652060448216493350729299142748037223777130284655147301698556497959339245778631853092145533649611479502611127027819192236331290039347077992051561429716130399972365027048675981639414688051275826449013837189174708286579944775939952022840562990105698263579189912047528576501677134283118964938611295632044188755367409815111091965212610991666066478310961664887785326299270612558100863053887204384367127634318286936429781240163580182448386038252360041840712070577973264095553553007183246269125098930789566431018840321492136863335799512536508733528198811420264065945398179761336763696819353373590854185569671055563561028410420442604548295818987491237955542629500570690092338232949014425612725928697047592798657112275289202437075149286261924686430480938891476044834196581789909621043052205129953041723188597344149532094707337318801321659850106898616578474867723757742713562284817102823109505464102466616180530460037208562376412947074002237048526911683666278417023318409468537782197186208697003453138008484741867355912997505910286423231348371124837564795232606702505628422015198774459082928549971590642778085439193773330078270215954223539897443676993552316557219819727407988857610217467899619809334551992603462936672683664055480610216904079028351512409975832260223426436621623490954673823921537104260346707797431072947365244851199829024553006739339909078833684019265724448555971911548665077315602604434753393841904759953553078080495633157058616197474979088629379848860670302255031764980919892797693629369884104854271689712308903524708195345215682940672535752177671284857113927620768462226318513456850677951781150215593704235776214767866514306647417923290428317245898854496271718879510959271490672533993948887038883564987848652528944349103840205486965964034319788308818028218377429611287153765179605714071158812838232049917994358916400050874371061807833963090446281115517299548559237510752814739458056899377844381840250978487182510663101872047567171794080075421050915784583182500081283450270767989479438322826746508319517707004170231507822326942849670271205268270094704404741183374983795359560080319371964849964707500449617794951849530923851614466329261507669419456744759943482744952355010452112118032200086559397909794762105026035631394261909591899286847929324532119673573366799651792226884221323324959443025800068310352764075135707317755015662620936201940996647440288375545960914502607679212356206611923858977533469304932299477747737415455485660593641428434559131005841571225947053592724470891472184632081529802294491668656628826979396509230854960563625786524931195626964934156948324837673296335688994156850978568021900507278771678198464574286887300429896423471789358962991934820678433235720548569181482094643829179808220543422703134856852122155770333451263581039448251201604290607078981298411940780661140284699701266765840085714955215799918648705125135873983530312872842212498773897214983158708875255515867475535494335212185630073333211648267179840377912398605422503913482023536720660417599617362710275337854775099609028052934615967924371098931087836591506924389134685128152801432767900717102784197446315874027389393041440429688629556513176435705620365017032813369558663413359968613037424239577317020010664802731037637714010398280306208969294767673777742025335265236306466214491932819326072666113412314345845202128527842606179654326751835523044708278515014828978595592087537313711479975158141277228804684344117477386757973008782318256411972674065209353906930937963228930032236806554714737857093813780409329665385900815901640372216308576080866841104449187834325924747624801126962464968208960504911786992851869531370730296468363445997043336682548497597704239299101857063329219372323016564379983919693173740435168305223688648794337328917947613189308886832916090194781307793760157056507564736633437059665967240295896290203538108993259749725396095938255257514898283662501182769709911525607541915506448669135232387073814273085215630921370635924500742059887714837558009842031700747251324732952010944192826175801996908153197836190179195428542920014080791144165631743563406180054957284835508644098436796455088515039901383896304065282096599599660383120483745969080206235567695953681815818035407551188309389234377149259852733119521047891652592425119924626163860067105182799963096723484142867337370665902687996847494506217018460541150231741089581037956474791939120464183352960399530521699451402579551752194116311366175629840044668905850984252972616060307574042625423560671318451154372557272465365953494994597219607698720110373744756000732759170530179997528124772739789278593465668484930556039282777015507816534314927472083610282326684932305777771910882112535511926005645706803084231881420715152696462592026278674863240464077606462766185574691286792147693585599478890272054563170854119196164049131660730163054600413103067027159703437784829016591605454562155105638380850597639711569725541736898677004835117144400337214216975865359028322408634756914093642712838899046162112623773602755596966122373435068218569545615936009450443775253339618994427954003618372260609365422688537062541412861692122306921133100628636838246197947385924719770227044675991294302726886168919375613107874102645963254037646316310072228402061595935337885805029699206606628603795687153440950578851108884314243389507521470482843069704887834812971946369224053902636488781027970503006025409045610519920386233947537271563009620763098401264896338011091493656689796589846932711622880235892846591891777097720892550173123406858576308165114723233750136041892116108787040964234187172776968458197484913015435831003798659244261389697676834478231407291286476678738924197838930024084739165210980488581187094485954557071908615166037700893167914361886831224975991886818066761925759692301756880090775122017507787605421561748455379315734025163935221905859948885720789202776576701198217101912073207979624223212581227230649363183562627054221564351362807464342062239046791080385826250244928273478313948936033880749533576732632486264318469454664431869024206205258953874024643083432087108796236503379705319368378736637890175949782095969164666781073620090866546903804105974853886505796709573874753501475205090794262171426593853206971646840676177878156143615167336391484718901398038112041061584702040334013176384436621345736337618376044255023750261080756373583459110861842433021505904572294186288751481702400813922127870263026317223003849138541745405374958127741130488814855425150200153474183170530464747299890065798299052291557352997218337462903522023590752862652337049352234448158642986146278280150084929388182125865974116538673060146714413781608885054125129102842612239229429048303492902231273873990637722722100342686295623602501464521253800383125614901819091629047587575362687925091689137846993539749974094249567439944497953365283262858536750471122513854451992167559430788346849327485681170959084785444031410046261100438912457036905898679082626903268674608329855279177543064763408472450306390280985365870702253119980451087417956018761481634624087939061479588187707490295193352036730686531230229758158688490769787276372571717624981182193174455068582728839051078447341628598551176673448198374142653126034099601081809448679755664666673864803080691880059355993154514855532047574142004820116537314805704972872246537152748205238529776073608478282655380746104094917161025501987080293657636330391902272171053124881759752319721658414548004265330197232599002259149283807274515827081666187037039476618687463287633084725139190705529036170331928145776284500734713297721687192523932957593101489390106319215911657429462182136130140117704346207779483995546893845252273758185319944050211461857906247204590739202053256479506538392175752999344673200169689224479611989153007504613425141703203491388353408872063820745202851255470810677284557638910673448513396613367558421879540121054766083337785328588923850324561302040832190795278342933193024802372324225043870253299746755751849253109510095525312381121954576808575938185703891950549220726916674983761936137192652082045399508071360322411869477954931546620583246680401756323266812612461828319475139074805449710878939910120003552349346654388104658054252890057716110699969510833325326823048984735210547904507602062527070785997337982774996161636140917161423810961450609176372782562380980474690549839047977120566447754668587626249926673840387838487245702882985420357863970345046824409320118106911345904524946114611649187982545041527177966831742542705554014329570330583168725814011599308339274101108653296022362600921405957762255091247895346944232685378069781055275087460831578961222820732029271454839126731299143033748517382863043869120094109957470631965998192948521477012461487173328511621615237804478765862400676259736743815207558425973327871996113037421871699519263597074043202838755369514606771107909503179788632067817831280928182231258263546424134218543862448167232136643303699787852924370912933195964845064949512075415264864554284350765301815150154642367475592486250052026199807328660362845175858646080577527695078030630202818232951834268789443791260138079266148542035325861134811255740709443047791408781137857403214853687035434057479077487252804702130635877728785884753224711403411242979894784102682467682820336394587841440565136541551787811781647453210448391882434319475931469928109589408796050126642534417420680486806836686877651728570970547921531979538507603163540163399586055812310928781911124766785237773279239033190978434063245003424666825175466594749346379565754620262714100609702933334455808105769560892638150310492091002662747041411548515972571433277545797931848381264494594908328509599229671169840149942288067033882193725585975919681320392847634604569729462785591702492017333662207065073719680871302762500028320578375121465975124258000763512927310543573188789862243462595819957814990104520082404602547824333782404734763372257845250874865930697857580262576632787019781139834053463609253048381569871701406084908505342631677474153264144174376487472535337492574220223340760704612698006609664046872466048221366431166120441509489018699116349518764779123470650096250063351440188702700142490707374056682920627330846030558853546294092064342518200445716445300631694406142902680693468123544793263151664983031409793876133111160193359596313500310569475565119736294247727559509699468784236412387043748620267415371805246801689398052736248968739566293257645785561689923574081466353885342548261866579025890115026067438591198671954748231516649280451251705852589534064006565847669157343567948607275013582207348351482459510671604399421273415871935405498620635724151534810470495122584117986123974514227612391017793113252234857111628192560484006516980126711971988620219860227996072560218426045198016548511320990951291408023201207411119070850241591628542076075490616749553202620700609724380795999160220054236666437811052445203742254988774619892414428267086912682699405030450836753257557244446573846943485421736496580647086812268081634470024519875100646795713601935865825878266089949662490190565270096173476061410129907148270338242842193728934975327009437294057757918577533632696724471595950046783233129201746652504732184752383808959457013832293053155223244324243928355213833636334816004142529808601822190153557452573628844283563982240498665870595792725007901027722982841165944530017483223257012932178586734663049256465650968258319695637680200104690841982986489053553637485759655653982201585013989797026024258969037747316881799443382902175398292780840236738502407169761891115573914585183589908286316938085162632456147167234310960816602301394455469404976856064006577981473384619152326677470156490027294193116412610830238286564173436790781861182025816807933800503772313640167410473156509989191469296819141351235235918740902741430403027027209100866109142640559133117399758911238185104752973031913150545739365902322831488486377394922465568261521132952768074237126104849034794726480619667383455644034094600044872183940603745792263756656508531999504357519465752293968726132611896596660708832919240668155514563667232740280207854231746682995494094323054294370097572912363359796795098027759345501027854281146439357748843801729283688168781484368185880226564336744021259732898726318330477981464047506736675807049676903472368858374532032526144860289796920930884106835005199291469585118030522030279512467379576790918910717073546511941393180965712740986348813840063333689375120467367477698393671018024441695854403677413210716849847815393276978483068087562385548568232675531616475520059657309856996997201013023623225745998578908837081077909464000094090909858706275963541581313565549127763353723174703645145257802509614510964734739096960582370781637952513934754519882021356280039551684515984036078233901809179743164995100146219835563012153385707696463748700113365656609257761102674088139500084383683947682158735874336502297430711607359740041710445090309200324141273650592522666772998445654684968445355255481672922131234347308127897902800350997714764587751420486420601669281656763634147101510315891555203211663756833591902079013166347946131035866441477190412226622464484241510369787684320506050266611543388583859713442732630647021834231445098921110296394043781667838190850677593577074505583293259118126021759355112087612547746229734418628480446813388707120415470934425090592649033279226746871052317238065708174290098419244081072590558257536120386968622404144425271327851393059599314353254153300919637201826979544864275357683104523170290227608379803704103444631691301407248766794657911151338544979319707939777017248179091537094083183794623997098966681617904623884205184858668384747282321778526746421449662747425720364913175771672247417439830512472734258149337067693371506675069105275472781050344348870928287407798343631999166725678860166204064048495739686476279048529444559754556422039519341455547188491723524370058090078106949439584298237343118680453113478569268689872092690111990949135125319970334096619369202542667548605601536043811772589302933263846362238941066705426739374789225626271731477130260715158312737021323925186642428687228134626161856086487659202692581360513187773219768454097587955681525786991618216900917748584954209967335157239251094053151321780043843915967605249467085363397650175766342951086815857730958395579537416162195700941757582987437563012887731308953389425370269199527208221633286091619558686062181724806241947551793505254383051939087889520938471596290857926554934896490500223555432909438575464831838431392704475474039189964449996319123882388895287754188750507542421628948322225407006938073319599155502113506454400336202615641879938693506663378450526737301049777656155954001394938745513141457968857442166832125654189172081394895358318002340739637566422313211231253276452353723780918063929976069247940183770144782814217252134489347949177715304267677611596825253088926104873311499407898902779779227590145770678043414269212130913259043524745994116136117921044577715536064548674817011145485103082338014282717467355777233185061607713377356403623769184897384113900398228856970574743768273487103234342039904418634601713061809087668101916783618920946959365129209351486020743106772559321983854574746416795681141378442782866830929422393460496258470041067534641756870716004081703968581688155061890516919340749833610630816398227186758640206868704131590853336231345077553534419526519891434363245562236261005006244996568138565039354051077478875665215592333572637790966316758252951996208909670652622345102804102540707485079989045746843723687237193574643723412825483320725016449516003789945824079353725323761189813751221783553940789367123671539092306375828805450246949058392945466078584749239019261134494459352309499371503963172500136670058574479835368620867726180541558235935615136181119136508850972601201755482162258281668826024654128896122459639431914217815331452385511694099011813426014177808908171584042001744338966143781006667060253304868161956646757507842663651502920482933351951842923565860429236036005211800128926798640249085037241466811952321662829490936025868438427386259729348206661926330073424261789192619174738268620231040766712770316977143022527844291785135233388644472812023759724002348515059503060986365135633427976613877019769255828522428055962374478662213457741219547137606897225981712059867809589800412881270878527302981524581547923317928412016233003089433489078060166829919733780283941229101548657630315492107275717925400142313978990292335155610482930320101296833645352210368388581919982069864245232353318449949741369237007883370720197190562967804239607657440920174485587799716756164578159807289568063219174017703362156600710802273376203957986638073432971977047992187937158648825065464281359356590038940831688275626179986390442529514958063067290956803485201156046862253230402492377738942807451583791764778007690898733206266000145420070700122681574423646659396780891848965642630042230593265300987766294508236634812687017843835261614497270785691586297351551428662616824884894825651585717788371525364678761017361699794816336785977804828010838645028592029149826340835653549765852277228225291065693721340641537611499557342264360769266661791598637456177842383813996398722319802820559874534489354022208285211569953413285757675897707876003691958430400518513231805149570079595106664658110201807755099388862796667432382581232849355952095317489219938860223153344236391906262731906708924213191945965176607498517690487616989149276739183455237051845404518681213625741611900683507367714484290158627726577925744048660081377832423129337451178349408490641655714183044819900239685356870434307336686763439221088588769153993222677400648196688869995325829016119258900995433283641874517011320573255072440038843771160851774206171612479665981905397770583072229838159537773750364322415269776005288136203417000657160587673282604961666342502236518137541688033961063609376384771003152020038757851565140313406611460549643282521015375980195815556333450477433416593927668552313681923325109267942010511812222225055799944421710252774241646988417919264741857307832788397022883050862247441682849815787575866902976882827289146837116001288937604549773606945939632524962257060746369531624413395894974715845256966175746508258806052554178795059236912078824286812284137361092691652083606513108603535940495281916864032489371773214823942138938983479507662245347876761422161653198893739951925594457638752566582109248986980726917115500839141238672705747256446441398319324948349119270868670575419141057455035601026091497237590937196352463114636385428514161843688778030853247494501884073745736833123418148221235371633267119571135728420411967694637911466777606150618530865051840747909710502788166875140774885676049273654311250160620595837875766317172752190751724179234374268658133173625628108610683965237715942541634401535751748921366240593046931082647440133681501289761147190127480890642126945414311210816493137932577758914987888827749684131610203649735901932504763732051910457458287132028188424613398433889056911836603970619942706014440090269110364075875767818549881802984458833357462582861614425070869822877400659334870319177233369695868566416371864875206376955981038781143584307216607185880006040839624890832946759997486693196985648058674157934835948010301874075331574934457049233760819167587268798677528055633034476302150722558694519131999625729910273759633816009965831528629208526831389078969761949992963449932276352415602790983879787947723304670318623906977269028661760862319106240843029054855930583798081371028350821805810940067400349450614327775835653182606245001487437711339853207378062674630726384649745072956141141876300084784051541475946891485048340219516860265157264566035551132195952600095136114050246017059969300016502378972424101272831648129452742362283565154303904901741707496228259983336016764002176568998240620742163284450197059456024662013884530856772848925821901739603843954092588195361687275698475442115816311999825976789275559094510432286320425391009458754251542108133906931938618052327003499511787242057833937586145072213687527372354435993236166159056512352658924932302630232746660123200030485704355060843986938009224479971116730744501719401479903191063683939343838624998896872634008359740726010717647784455412247319280085141980844023989294652651741995215693351319294961708338203211261224590218754580312637116791177410675490613463520539061617495608399031265166131587015576564381123094865223333173338406915084148330936390822372736229307855681788535415170515668815836529992171366449470025775959129037345008153086846263293903978730980365562268089378284774026378218202772379531873597758015832014531568573751770937444684828294535401179771179407361263165192213274582582392241452136067916978512550284879676036188978536785107080102840651102620305781328688088172642047728316914142885099228644268852143205862401122013927605931374966416769601474067858328787786809289466647415221027832504713165951619621407146524946038925200400949695124901222929567607460226797765094956572011690125562777991596719905881240796913385092388896713815089171321370017267826221824459669923137990482860996943205268066348204287261105956149856124870059098997169814338452387377087367407865108227577699754538316078689066820094467369047401047952559565465246120466997724739536012365821866637246336777838132573076454034324377844116342824927887320142647222378750183613295871523417766256757726181496063540162592865176002716433551421319212233804330466790325668809727952639857931038435857809860244376869174520316590392274750205528757558241785124549583149721119151483770092600088569263582414853922302591576554436059949934065177137909831701045403025053162500620664563859667230918595271761129011788300128667273944560577325118103334311065053278131736913064128964213330478688342484779949413815884300338805352355994196529873831386012855219063109857694602068090262827972097411491381007975042310675690468249103267295952543592220697125978257381951034830102415880846555027299776249535810449580892129172044981991362778742242114432341305458329021156118745671845490870976968282701362033231537210713469223331470311144198025899320609404963826783183089014618958017174312343682798940234079298079197062598446892192224563702004757276589787887066830099476599422326953302637567307815034251968480471140037277184628558414712879863762157063404832293681811159323876045260341125404997545037206386910887156875937300494784838495443300203635138253137109380670442996918339292011689434047465582688406316123083627085092592592882544231702062080616851276823056526648576438947468734940464966485001565896675438902793151349177853354248164124888628602233022685257480933466221404664288234002999374353078912926330887954513158284085978454257665578554802042334712446150648885090216084289953899726061507673897133203160317073939949336342375585157007858385464145608865047466158635306459838960094723375138156071691642900988478816071731295801653390701649287995955527572449640223703222395695243802407463112048248724600549414159871499241291767049664160104334473625833256185593189046206256016879867825304823721616038565532159850528538075611629573291856505943116833477436324484551708731492590308309642482296495927502382602507027863904825565209284737080941174731737730210482478382699495939237807039260953811117731338218101576517780483293414318610342460645015079276255915445307305477209344957835005316621514011769744134455019371518512308152588020950498982503470196140275936063383156374813419153676387280423672413501526464909355132029488187734338096161185501625805474724684476168837974441237239079565724533298918871158223155045805237310110001503985136436486825955144293571748368564061117645545544246166578558172947532413800584001171077841742375213690998974162815004178883564425492034419376507423371867396037469508370873851440041692513771870877550805561292752841089174202582200620388150586381500560410125306903350085238423400611737079852734742445456022277112202499351596531664158664180764202580496189630285760612204680048897315328816260147693174623790905418932529632140118553732992205009222578734930741735197660441187760497567674113438206119240059214556429326684792269655317196140665980393836759958673400040296627595073429590312332816236139605739257070922002614965687323855031757950100964230438085736345905403538654032332108899397301489562101097227776351734869481695861625602837804738160622879886833980463512304614918205415557704959957786926651588283579792285060995391238165939096184869273767845130045727749976819482168194923033222332983437641077923819988387877108328700881155334453373319632439836644750075639640020901624441737225286155472942241611159052274618362242637005281572766059692741773679523969179379956068349866388643666406002601252027333535626048907316668534302559742758436201728763920517157823210776191867022640008494225286243684362580099649755090845364528914318356277204771255145096719260123375398395279816529981426039640387222817739244167036298658177940422269933489828757043666959413141496814404797979878511793016681584639824313237276685460642658751803901408950451644979664249468342030365698729485572045142118756961068209092086495648250997119888828545513681505659104395249918216147931685796057902984528508464740701302267734784583670555005714098710879723013867230848483806427598526934025110013188591893045963093956646663019435092125873848155271558651300990220664680110310041297625548991549933356121127060129158515063167077145789831610750752087061493678126740363602613741293136639107581049449375880129544486728394810192261291308385344696421245843652275599876867286847771419515673544964688293690065843165700621428067607013949980969008141271167738095374259512775385690426258372099670807150961027833497744564702190527189616114849528527854986097339465419660229626898553878244364139991167396531308425641836994345359757032763497640399479132170127725549684882678774249759643078920115857405058488210946868919424446829956389944023555219670424569349855425075426592794644329462218923566601532530881269568529780091286284573012476560524902380190912903198053417588735363521563501117726162656893487951845435636566174669963248700541336899171283483773977534782586327985492436851545929294323467160060670344450963500945804571924541432695234488844033238698134329114485050592122815944080635191707707174439091347332320489044270413767825844132263962604707320508800951014755032840108535733351545474066063686132207392100340725182563337159053042559840081897453953063005200041334411475855472603618004673224233693129196416975019667071380177259271838260179485266069895486026560170847110825526876732631931326962943903370595125053850211452156220794936422902048674395605448080568080185624975742152210459502604339812413422901299838295625368367784007757721981383408907225820700000482611682690906961277318070770472649463893957610685961442662163066279992416908015572940873804600814017215886653382615524405525137940144537280501846280681362015853085208644127114937406611901227699343112065802345577354226505670345854104269791618813224498629899854875567120800245735841723115629122864171695613016644504169069536496878533801407920983967440162017952011796277562683185702944039465316995055516930260048442612890723770653279548400620735209064292263605434258530493041070798549837321576102300481893418467016923340102222826169645688382674680209907148469911484584219820000485273542013796296626012450177685857989819212321920841553809817892645533689582509804517140290302959840781105440002200878554710284877319255178123650377093486696663823176374398416521965589306503689462181935364017018388507374271045888507363976955556942874800856447102898797087397954563904190295351857452674356493631463044671000213900023229053601524379619386636510644065002171567453843539107037340594932553613638144504251178923873437442881238479220717719493357438967671446014831345666266744753378180699867371306817113129118113425695305901119668035001522055170765148505383305325571406566446524345996536306796842789910948337350921665083731016288547776319209553003682133811913736754512126694268457123383647635417002592339013653092603111647419336273234840372649062307539788569437075597428772420146821130118970406110865161960313619211382499807435785468256941984608748077232142694692918703712482707341097391889381817728032201629937929373045270816281933217314556097666863354603744804437951772716313881185062679209073332303551226468028970775545275327587817913308467956871901995757726294579908906269176235095461023105219123074570137727073770794791545309510901161449493996034299072402186772888083409324529338729974751842245619937343932963394033111525616180802414258474823309385880653338327480069732355187391209834382114696961514798214230072389078479401324408972555364684033469839009272806807943719772716314331467641147647758439245926377522967418879755742106726853113641911999150512579086952783161031220922288549349271177118915074269888820237808957549338152264359391166818158582563898343352226355034051729220282400904597711155684099432062542537362728270067230618475126480143427824505336729192671227457603364121159605613677840485191426260913278945734688942948799493145233751309709876626587978306455580040991860223091378750830756802091543933403053007931331041974323125922466272101068249075660714798105207031618479225688370820736556972191807684607422402812555746770344301590489128354897294481797181420055325314476703553090743647706549973939998686323814277057797934711287125428367530622611105889162905740515623320088107345140824293587145701040333759469180571592361387913414279386989176533565744335748820326409430622571027758288105996260399071845979930044276420105020145182658341070944122576756822392439515682583467603069340770110411100747461844233038659790629257121172268525173103669921950864678774936043065618706249080932812016240200453023431751638870550676908261930021421292314039354992598102897277549323248177879378436947152428641049922190969203175430186152283129333272160932633280625736107191204709026014472833955684934096699481984195653378215068898511743352668289637381305276292732601982919636122825749920172252264772128093594456548665527819061436869761612567405624910216104796252500264850403203518593882037018654592382200812366855056257959794001598993506406018524879686262304419608574457856612116707682740309639332398757331158776166146420804815966983606131815206652708601910476984054820703844261317946073864380778418962032661942858097664117516771484501806899565772724583497578562336897749080168190128720345965729246515801172214546691751433625600531903159641276723174638355405270537259455307142239411746864961824242969984449078074698268168472262658609723715971720238000393785622949417085696374420609477713207985683891668984403781909847109109838789066510257529706304504512821783319063467233657038056990232698642165145439200206225503670870596392226053482028718055665946046955216665264366857418387925706330392782020128477061202781889675397688746766621048633422774416697653203622290774613354469147312994883589858144089872488639393849542130907553319638773910699640005268524107481009996296665748143178188201524415553968698272360098903312315517356296277987647812402754751217364852743731142722159241458502446043457055775097898805083491633339045245139170124797864118495312080822078773932561919764150999824896328366404098676498598532279483103693144943092770747788527439744530913709122197633189536230106141904590524126035065484404035938897166897072009384480783266128111643433974552661239165099191505468994480130216650901165310280645761216437620488889042964096566428244822006738628760090866110994022122272021719884080997164763482687884213483952549837625323691641266787964978068872695098511175483749573216712163240113530769176215766148090089410501653622735390984927624123713227706981903792852344156755244704845170867792366025811583379032952835555224689138796389734134870935538698337138040888430387976478698998571863949664861184842619696904476816128357152398528673504144530152463420347801785225485142867144900840987982926393551335253482175274977659967190044280330721798429457406651945756029753908770041253696083865570358870728642376524674011426956730498166557068219372692082755122893017840875042247166532107909184862576021531959846758077851510252198978298247425113137271067393353804467741716272583024536499279796514657260164303533466909138752034668094675101958068122737268929857564245068404564187771025948882756942817999408632737570724203168101250604008514055357065079128244953368720158320516946120657013215754173503910063643050524765299675510946428045034819689698751015450847540502836577349080590625391047583261276356155528648827215816493112512751829399170223970546786450420717264025704920784626825370870041229443875897733533500504664939002964599632489206706736939887810787750027433221223128190053187144092570767982199601641340828249616765486692337095287988394746873823665933699196435417837981552700747203893089129267217718153821172863778271089474321285279342874058441357084057611915323598789645652182437072775656442074578161669873283866664862353103120581283773886464973529813512415486147357025628827642333903609106415511577443289941325112273503794676046599801931503951871951633979901026641864618518069879655461946952700751915264978271563009869261708418611241794112280725809321911445935475698902928588132529792201716967662126637153587943145512645588407521843582683241703489728803854293901890387042725742612936942473622190954002687640586669807379667756936520088726467565582813052656410757513564045358180314081923372275189598134222732118255845320682084585618284345600088890398947226701856768147828332314156520237185630304660515252816380206318018692727758825780137751447090706422523723906847340325069517147124812200473518764517266658432646026023952223252756911337538015203386948122840872782832160743348309780482594183343711319469616464481924309918992951692811255924168658745343188732405628433148626284142249386697401219709907727740046021604535486682507451395881519900027236711485449486064088241630633326365644107377808766375783590851454735344667836404245646548050076765618174504549566728614331116750096377549029003417831835625094634127247934948813172635186952435329223375638588177939915033489870375532347040934216845005543819558992674595264669065987478133793030595767142830303453727967182683038328690574068230135200681323696970474787797086159899058784797717874704631974628735725001505399393732288807105458077347095999034074227121673892731455337880486597592871603622832324086916418583933939678130683681365334061773657451416016286309434954625822550224412157573147926901900799091301480600952835356085364922807406994609335338298722173621535587957825440405074064531644385839306088454007261897011837391862148758066618598477706664715651327633777792863026375552314092053366738664887665153818400635694767956263263105476020878846378192271077112563597498319195612201975707668421148176902002055102410778964674615573216838835102951068846645915748228110494419417214575411972386319127426833638659183376707481266162703946297273507388455255437758502252013303085439530709849533982486738923289292775820763591569638214116327553487681269310437738220213572015046131075104382388101700536443935421309207561006027429592779849457875241685366274913798363997423259011932359798585354832177295280868929682884820105939004721683940142352423805584451145222983356646667115132133148287691106507021943285111420472671804418744762944362354552944458630689700585800762638424373638885838574979602920185556804586437861111184599363455753558314513848812816381585199887665763463115648626961404187784582711207107761632763375832671688838723460463644295053265455715417725261037542755343652687837044752918191769982231558580423694761458082556687458767926661427755745505482684163982299970875139106018656143687543974302928065309187218994072673154523203385863509957724441316390818507149237597321834099232380348507001325096986327345138194227109824344209557656819804642463851341919608198884716575665952093627030364619968374504150301630362360387416329260686975754734868261285694661604523133866355265809359032192936268127015575057422019879142510675565402143245180099668220702334627508643922035905024848660475428018482181995345865049183554639309844846518664716641820657318966801545433631528667108830070512025378699755026273929625972108055953685157704226013157696527273396757909535364769779560316135471600545862687437192971541063142972384365239880085559035188157850703481625095690516555691230699003644209060852207003938662889147119790321764799918991847363570561698850753149306938046056458159881533328852851138246960186870822017516785520498802620600292037864972823662945199221972851201323278764365020930830214525482566205505846421736048348220739040107435655292612310690748639543189043008826683472633659158163042285282600784748958323313673225606070420562963357581118230093729362342297640052831059172539885928156429529451846679082032023357919957238568226826511982344458269635445576552345547517311637238446410987275910144853684380915761024309363586461914963577094048419421803794065844195068025640021976978777440867907575491537385237862639127432058733851188380668148998634210636988914225071686478765751407485471621810987949084564570198532903272919138598957766819561217936127341546550248707212672852065905542373731588880851384077802402167288617053097958473214345507578668020859842536873386619262909100109474122677087808267575888169006652464647993799897327063023584624914492124174715700343424131219743517173541137817249595953902411699430043274953372477222530953090081718994061715616914985879602032342473607546039976423497903821436009626319321722983997450176205869908934992540578597481060065982451324003474714632036460302538793172647931856652535911616380089777202484896208516379351744354664542078301888017662833762049975356314089776444281476544871242917164486239074247814725384054615379157451333816961557692415781216464463277832182970720774974498721894535178018608221366626868215930982287652973840574615843702900646662155505560628181404050952982903379774737401473317202459388731957157250257899728145294618086542953079609740416142874878333320280206457256055621205623010234292291499052940082489823495244270902975136986213537957257607326472194828144004367889706695498198690048840169766402061425003137023330444129067847151849050174726989510950736541690575767870593158546779678787534238452001927677652220861250044080400067668233188488592598874655235646002807700459922291599742335721457867179406789923576587090315468058946314486250243251851784895378206233441187640864333548720261502202557562309368218892158375255431008806861877457096516944055693041181636699660855471536721533342887165373636819026219629662640816139194635386635453916085779764465407314761371574547601035212475446032775132724267871522054533664645448267481962158732261186666136238087988684766102408762263170982493925175668670416821067515703712271717862224777892532678400136336432223589298655175661961740121225357567191115822017843164653574974737848345665922569233105978080901977712720142960462962156154043264882538119265841028740972882307093557358820579191000027275555142411925193133157091279666317163984234880164372764926659532407901755158173983510981891759023651894992436393234534990930371355546238817767476038144790011318365132954863488132893486663143164220501523453432473728338781722867015184559545653466557028135598104070049021313474071373770908607902723982836360024650668905352075692133115834386958509320656424532279408628915717249559886470689719211168858774104076846442896930923126256911189764672145142150546321069969437489461572017907760782196203538999591626644439087316512160961394505545800430389064703496881238916689054240223192784547914592431172453600215537749164727314530611551350117683580999290062471604918366870221369284978549598478415130758701771639169889691049511402672196051118466465511891258483186445559620584901360505008190239134099477532132846252717189072617748394131679237468316991508119882108276349276924830893773950152096310627768940521926852304538975376386196917123026372909208358005384963101063715806259143142970905959431191346825124410742492628570818355859872675017457898084886521522317751879906730454443838537623379191856958934312308082276878325134983839713333357038790774347009386113599699208800533058038868737035972967794144945091386025384522032414110630126828981318938008356745750626805976408984113685950710323502708279423963030863347151841922569934267563422306682350402073154082888855441945535229154404950896396712504517530044325583420287518991853197141689445250686002258555108736551983848484779623801394503146998094770031621353856283834387873841482502781380825520911758392289281901086589274773521138975800350930329080307497396858887633005670056073706328949195045844014858379809058756581886628372077392971146965038289815083300111346778252855992747190661788571179758716965581270650617535148029077413641430142114841186435659992308923058481750093957498401843172868527529931033637951753842520895251644166671106451387434391449899561930685950260142138033024340309160166499358927924690441949938505590207819586093098318544962935749411071257115222248171064188840694156890945414909468360318739405510430192180688114598777685057635711020751236121588178557026133610983570464840571384259542925075289844752442628953644969264960397442437946880497578123908411995496487640217753486382701251269555020961259855539756724580337089666209638332975965721485741113371966347302205362218462521130858871940368460595657666879599115746613095110863554868990427306945650673610341429098057145260964929551714949395814095903577626695683881428003729568598948899720377803142617691084150996614361620200012084286050341441889614676678903270159612477587937245854336676436651243028794299964661902372885736689780592778407945527044161642352556480715824432863866436899808311798441641131251716453782208579421755324353508262954175463935430605741118113245549907405728243904885438725546793800851730459921922446363531989399254214190847802290204346874739554621644608429964578330356259257452296272906483827504748375921228713374035150917374510950476250789171319956366111604522256703844091906182999452495476232046512853384708912934601806372311959086542466067636068884402619152974454160963231485780904494296411535110838156172182863186358524404020036897145720310742147242051168735426012179153305006536557473023893204242577302537556755511410740099404898899435562084676148625671688153804551924068428510843804913587603218910170191917769863649933317783710775880991620409146387525567743677273017136208606962090676923148658980680829542118446591006190967953901254037479172468649627697407826458014899620139359511741376892026453530986675256253287391775308598062774139253976165880699550840150471148003694164590432072171229729482542463620056959166579678943348333404647098142360553945776939971544076352060489355686147088605181009549305724152041265254609632965994056445153198971744448629856161631879779979312796836405202869169356228898767031564501434710270640161412837552880366932248408697433681961584066243175687599172358979041891002174356465827210938192578692444051073184622773012028383965199999023367727420479245523847946364610939140016482329126060857271270875031413083068302439722141298086385278142473802277186361702864180589810362961365610586266954708467313684733534238580926079811057788163521115368069461213495738257492641292675188992402784015683127966420105961431040028407296884559223356511178946219202590486958028658554039886168863752687948005278136415828513886406554551548298495040218086148052730613242284292972079141110349986872646600414241778144319973093233502979214894061347437580242828113048679575315726037680517351824725017884291693678299722590161446150268419981732022232925271435753154166086988994082009203102468698302153395146777676576490636472589560522438875524276477424232150578227226444567283049502465565795533926789727565339493291247215865096678860043436561589959256248574876842961687005066837545482495379801721874411925010819999684857216206498687286767630073441072073066852687749493527948502513505145845385050183686588022169905419882926423356829675459376065527999574725735274047409056337290990204097477537008037776182133093733337336315420982912030204462154306094739343910042507324862147741660930182775402063366645740498996961567057591921502374590836494133588761693832483827903555244275423804406580620318095639192847437382496540646754881446857200806002396621617250384750371565535873009630797649913607914247834735449358433828299750600247069681071211137751025866612081939344708424471369385556095446082767479242301673935216791914290485948671554093499415535250454466118702561157154625784783291101777100323581532330080433685265079301416312825918149678317723822630648347702135188296195805305538274190136007927070344975774371561617638527284093073506791785544997253097632652715221649098766543848274645904719877268712430883547342102207349752849990931131417277811220095367866693533974228256343969925665143455702549309815322471226751155001283297874382219053422702488110093398685162294653286789220440900468647463786838182229844246334045512538080273387273702557751310142043756392261588997851336625206387609465584508545563127956926099537796782577480178118586439709424812546761330896670435825063245316608581419588100105526723851528502128721901100124235758981932505482697296505055538271987209228304382991563425606746285296644582623681652749397365441524658886805019389802310724234040267126028916485058449592514103152314045781116067396794989086635318120521205983720496082003079831959983624855557053195439886811205288676432006373507328330537396414913881193888248537013325845090477569743785887332880360265718300488424992427095289106768369865271255141915597263429944731973265155898126121354185387208357809406357591249874679574837665872218140270388403318428094362745985786189620671451639373646689705889920655514662318085316470479786300250257150227518818929884342239764530358833729788461441511297631707817729998020334300575907900618189467201735418400869948751776507537070274591121542446362043108663178604104812905610436222702704820488092205952822209905173423756419886220610371396144260348969037029784078417626426425683751757748590966719777306865846219964373127024418477056844050733384474094374360123204652205538429207578412123163322619769948529201114240311731993626290446993318587989860819223025949805268014921261850070119258778043519295402798609525669704548186697216348184134082515855196435775915885416633580347053985412901891964389882445641643400260987756538010766010243366705613819879460418839230816925944806902862250640899011473727305836261029780576808222044703792929264104213933938416109406951984393113930048485828471663479488946566258463293609556602125556332794651223252632952192908157244136747472897593283770857074991499127182265929549413038656651787557032888148099462658577217429882644078144718690710759810196915710656462367284134362820458529649362097492075254696225008483503428523059865547339316160722354908827350557173170988489368688553249060998200634455137493602361873321605861628296450689418014369982112458340160654102577072248184328374875017080615503417955283674916781625322624532276402651363970474221787659518858508943339737426116905520787979070253963787051227903001534833025902123160965842713436056159409082478132669070857198001500769118769293836745013009395982312311815387293361980876800016890941846034243219314263373588886840643106348682797796269326773419980716880334917523768113589522981112394731633432985294080460126231968291942625136387414575168376196403993237189236829136163317053920891285828505684133040701700354904192268789562492565699071186973906684130421634719793674312343771181642007221787973776299011366253962345288417261799337212575899796302584207821901082240509210536893461597694332362364658405943932949592774310381261962204597029167050692605013446952480047069039708254035292113260685150975812569763433724570301246732363261883027377442870542896376292108222036308558288142561967949853700883168061215978447411175274748127250494134443531321479598815043262611403307346149620134278477992593716686325849457300281801896411173616037589858588297961956711808529153673988870258221214801687071775052269338747718662256083946866755941709111111276121596646310576079137032062653037039996404392455938711267593745271385810755651646734400186936530689598225044394733679677405263891245342416680142491221561333476001011221816595029995326229960124175870426551248262463983837298979328204811005514750595118101261280328396091374726631983882725891025040059714190633025475512579358716527365394959500705640170568996402244535249195589740621604399215897212711702109060210081384755561873968228232884174493237114705132608233009262478099167575260671867782028363975306748382874241128165708788099320506653379821112965984300100051111654413418853938208481432228643727791038788791843337241991812290905741597605119778934782815379031562033372878175637831497218115122088075700051199272594016173213880358024673149324557509813013892597625704447943347057360575212783890382645294382336342717507783130554935187021483540009008779176906457520471364489431694784611178713999753615374641216886139325949770329617323200772790315964263465281221801197117343461985654162756412523286665639184829190338112639129282477275480146404467165890742729521980315270623675119052626113587033707521137870466579202769063778436775738890572612833391569375649100331928600857528355806156708816548735171129545112349117643774467553391214839972005600911047234606493967422217280248906846709757211817553197368141845732553986422309974602949236397646136411847367350752258431803628953536371634057685440621184397317798439888537745819226564330789292972127919160767026358190493850658539357314637078040287703509891007242684550407718538866335987929318439473791364606527829951352742789921337159315700633169297548148597244362554474178302845042027701178296000911455235889739025113010636310602248414945385596648763322365203576496756284379103756017181166329295622754142801859563201147448937555361446011672041721440936833231342380689976006429132781839095250819318215441091072827280490049295648572827883467923750132206497499506956140564393434153102191355734127577399969418041236328515826362258523669194294855939438712522939440571960919390488694658075771496853942472863784344324526844703098842165857732872966369522348842938152238296680690910848949500734864639419858418562531879088008105956783289538120601162033237587320472700158108526506337162176230545295834904397449484729193504934042553622660639735568175828040251822877188675825605301728837410566086164815922123799273608301642139062578295664799525379399737527905882060200224235396596556647546860731479609743196463474901812011515929962388918939220357911573247158509714472395881419503853476618758605561162532079698125957330858668078824220386928767909270449245370376672494909805830973098968414098821078665958035800422021422297668210341682666959468134187278537432309063975795259947095023757106539917133196240007578989780717583871904696045502724207460554433579530520877574582012943358948819545031328936344502537813115644898314462426502345871355387474512709751305054692189008167326358986278239306724182311937500855691708544841870367345677384601970509941692123192339162268523977813616039191512132205251330198106216129569896956014101577647560489244771314050385096228736982794597642122959602227341274627680232483215993347129773551816327242698058158312515609459467358432672772469702582595946130816567334754655416745696092077531432632373815715371233298315505134180432769011942644275561266422120878994106456188896942685098822717878090121026244469174043952920634516858963891692409031809336521070662085557153024896581127207576595967271021577032216654125279817569560278928292654851678955640223735277055379070472075750388216528811412160218218328211069886867643619132745994226440602830856280349361176522055277272525138350831648848865794906887513094530111547341680114241259312158558153259919753425745525226034730111407359888204372730732835111462216290233282399384524828140616254152825116021091729808987533077982157151931878471161515769700776733194128506857588624027083743942133192448728874844109827688414690904084158121704721691418469392080009810239368820447399385006279096042873865723544833066648160982020693997936164114454057014820006809365851609734536740387333176747790497697487214104480454156839535717525910067944527485895385765951926245468018468234761993402783595082718702724099531124506864218209977251507359073367546554686248595032673675118897254772050103970946331763330003403257536418627351037716394177366684121523261053116482189345559726739585138099302164038947159406635597752408377830553679448684012819156554089027922087670652903068166099585413254535314728475106569485618291906932561158160355258806336082132644691572061333932642460929480116437042587017068217396964849188365190869664230968282772681750074635168846083140193415306298915438805507653661610550536498061526338141997498669324476369986071085900730055223766499231434413798969255312020884852758107080167823835202848930107490865062014513317942049285247431817306814028196944379608760687901882210090575918395770390250324174879676854492358149858205366273318218450104230294658704207751665881191037418416949510060832019292019818849139431158496363902651353930718530029356321815694968633207877493074518563567254805023727311415203104885110843612023500312914861191441474170170431784679095678690190542354566468091281371703151730792807292957009287009566301066030406036319277664564668244093882614898851748726760368522674740780256132978443809608119824864072008013124831040218218661258614807226030537588767759211084140754835931064225632728420034345968404406012887395835913858684696806132128021128857959641065230325961706627789585073836981172000603686925251165282715003859990991338564450250857880776807249857393229688906925892846378647457559436115681358636990510344358921715279799288167392556519398252201457903480302861863802997035847783116772382561704906963443323883714455516696249025113177578370279387417489652411153463528540269716994578620805973632275365243296984574675155871637491132033868664492533809812773486013681441244610364006637707466548282374339338769133803086894292935747905425135423658390055114044143667380063399365865194975551270246304929261009369747829527201444670848235041468580887298960773585740781694820038434500142970984948281417312935322496428564561275592350577070986748669120270188889142672932531236433979394132577820249138439691255798996709977301747237140951370910223266628593350497722332738643708626439642338333219010532799706568430926054273020742798738000726414157095082448620994937279499967574968560756135567905238065346245029275806127881821252051369938179041840997659578260652662817238406863710853249353002825461300067354460215475186980694313355681511567533714073110187934088966172520571585880260114124809614057464338659438733335230116121686734142010165180478651026589099482076487004389021267569965458261955697073006709552928942326968616922730730499780300043386044089286236264834918664017506036238467051660840428461409572502185905629437668481152187196735650639614420430056302942270531376452784942418437801419169973971797485432359796846288153414996699829205786448824481318300542605848269789474238237014272476359964049204231210888327537910106158863629054049127954152179344925383913556113135767130495811454764306025243693907626157306391382105119131114658797273401074879771897512988880734430625016620712718810700474557349648668623440521478514414394938165397267555567602499661068147969158630987242880604011524034656965493733987570665586382632021162204140451947060209029134830105294880214703725887993537650085152440206501857617015486529196546252958902779063524170274762450549318722516680102970130649916438980429819050868036771606167613658732708490730040465262097057471148143585836781586237614928189766334590197669616278372651850623118937205658608070774402098312015964508873501049771255980427380552726904057520913560763469630737838172541422760876419872577149757948356661854072786233957124232022008253579960030401888971543324058166679816326395879565014788260021446163513816854217250094659268821321651875620612866402826169298856754774826285062229638123656088851878929760401164800918737277027604093755691908206935689571031632541579355876657720007068379548142213239290047824246578727837166371376468055884262588894959488772444897268961280940385956967837865594153294794376588971236294557045302094593808021634674436692418857709871646955386076502884116946623118551602147054194982301708387515682314381935079847325192294770155852931357918514996979057503768301041465512704674517963439575225627361710353188690547965739397384942477826923784222112413019443951683011406674485050671515758449147150535936136998759251700479876007954229368391105097960701686554401715393895576154612590658266394350819130409440803238846072128146445221794992990006592979721685167402472564651244469886447438808524458878616813024852702359022642917284664924016031966293288300512758933837111967369136656283135768776917253579548490194992066036513529318000248817438541158176861902210839656606580679279536631975466266889656782854021422925331720610408749588347751142284239663436502563608390246347595808897262153352293456338536888095343439323356671886551400566257759332754268809401380915229188209264420874293090370339402471135408748505184850306844758513747569815511068713999127345303084551204459670483481987846053213166244646331436676237239173952264482795868653325625227055068118322130713653662503354978878251803474592994423429659170993601042359852075988975472175838211771732190451779811125107213927278730761879287643222602128068000885870322022131006953670933667600653423674881080676127001592258039639004108675746156174708930296136021292382179627242926086436515981921081429447779405614575515188088907779275771792754583437916634086026810992063525790512930014329219992029324042086725080076983117881086341439949651030562987048673622701511712855727750574487610014274660077425651270410119720622598883328673867838796241027640226477430004784459583841481705265331480093767697134064578383605587748960856085107326347207287771196545521744083920687310445765133588659108997462758728100384986836146924247283889020569668444005013132922379215810909006240050190909419658855496050549009522259223811220019045944253791353416234012237313498841841772657475948703443236014683946670874470678969646091219550374005514466414484422106646396211747772270797337421756351801110110742167893183521514035054827592593806042475783223225799847318961905598525582825141496814314807837696488103486385819489349609450061900925853169415443738909864067346434807370192030083655010114058573697335823563446218889079158765441158866812105960495672052313848225765364314521859797144048643021159810379756628234560572299372167342009915668945623211206261113478467096258447959560876285806097475407472121985514782640007872555253504180227627692028377576000538827378359323782725853479656987433857862982903890758038997360126274266470772531030749712417825337047951598455815740821234274648889586027893675423721663093212670711055410129582237303277025439279721833012217411771835105846783911884279880445383889147567115341689165879680708868599537282191530395729986730624328303904312441908326543493310368257157766010022217811103856390025202791184405804211373783997690149619949805986562846629546043235339651166476170269704119493238967431200173448166492800027286413630995534733407873699333786344348986566406130191013549932205447506536779685045345986487867935769803819036742433815035923211727527120632831088488401795495567389804357855656240575306638817912274463224975507527297880427737168777923396576505299675863984142029183463729476465532275308077070797761762228597100888701658826283810821525439194649182836135627239741376165212724725264294433834493955944696575976453341675568280932995631896962693961962850863749104839047978504104053567111813808503984292943125047555529329043001925517220147704054006678383659731009013832945285708718598656275008978924144962406013475664173225735688146001518471706516902411498027392065626652479044042823444061891572866924713291480063028378878665671333661834039942442983013189528834588690532984042852358927957693435368069951612727169748004261194547668170057013009787493298686375125297680095039251854821642682621228861413416687177094295639995556784836354261251299670640788901549629239692287353908640751939383114231343855243806373268673476251379904381425649378210170931700007789091530248777083953552668263232631967951313543588131651723190554888848595455759361721729285749078193270634054251083272234736598822716642365589410741750799011223039352243406655754190661007810977456782602494802031332722616729478662142839841056326098807055760549560064531998832294459782661422696929296806685201142392993145033275219269362552654327684602482367156746154083051667917346069366356072356166322542169232793494538331143285238882530341320544197363451689144362908084369208086595028262332734935645180618399680635732290090159501429678602868632757492904696613970201725521596303721374081752226408711133429061506863163457151742457484459735117547446658657522753379278789839572792605625533796434637061875199862035250248225498364557034141042800109754629071564464119280271825816695415509064962955645725424557798689344233730569004170328210074548151420039265465060166905514048154400400449020441242022621112995843981424297843914958243681959476818763970657745164452565018079723677786197914304962842755977569202479748809443571827462342200510736526998167232413482368277439905825438799492702134933022612547185900652130926048546087332442053779491682888174559876269180322908903966911581757471593822551396783010897758295116924786110110425136085871281241412104666833522135140772981364641123166640488646970673510563248729119173622406309638488208819148443834349579924978578483956968341466817106580744609866514087921254586568699225067876906990344632646826983174129556197110355116664447036491849055236942200391879104481976571983869300827223239863682383995225196796435783555852499180283831372127179667086266726018272046997150340864441752719543322885682892381151782692925847062989126890502225778538774189069259392827372076465693131033030016712493923878403190949600922931665352345097545700161106750732493931350109929071661366902303932952787178144784773495540225862767387908923551032897476093283739259113977353430433333895523362358018949498853733886742551884183314032179826896856635498531019562830444728912425960957371178877904650729010490169626604038077730228224174889210163505291402031998869278945587402021287277652391479968170649594037654528590804281165148393787131288808253742698501971919389514366240266639868671482473287671974969102156814949486985660772223357367416734208523969745969161397294990885599166678115227947099085352672908068611886327885071611184157550505105026004938925277855731103518903558682925569456767307818456530697001479267080231857736660915378092594063977733742514714370433581335330178005067166376361252287776332143376015822163369010073486311618458596328435373651041203231304919009109624975559957040126744447243714239142125884315990051849601045933741665433148622743138416313399817822000562448996816150877255458982543999527673318121152790844950578984409788742519028853506086460654407275388518960881617739706277993981280838056177736115595161096961178290619188018476460019543365127972052755143776815767682684933428336454177365810206738831561003052424816268426216246332947656045216932916426257407742572500862999368978688769675233056845653810946838453237981571612229425530206943732129310163429773190163742503874230825939328139663844895215579448866324522053417007202560726671708668324767131351849834320866972783201808432907335973992556464918242363662967091079903947275845956060008609105896683966526584633498851903522772645355560720142330920774242860891372264115535561052675527734294710673324498261984284333808479671776329086915192707714492370583973521378426439185001758540668561844838930817030933508978472606604129660255040023144990828416345571138528928364723104321501317802210367533426729808742008899471415143788363896817382017072486749074694918237361395329842134501021603311410227791727157353171074868781953575522311801289247711935482000015662629012268470950141102204579863547381312711394951074927005391697225368085219855390264063166799095212915577782622969261957049043593751760367301388169106456319438652661881581212129555251472267095037121230056557958598008356933766038954993171152634278845241917151376885473400434341649483696033599603265013557691462356273468679686030074056976783008809801136311390053109886519769957983833310103479509936261614770701963108682970988978167984047559997271548786809215994412792292941606249500648904576755447971963267086563515514624137017897908505444482359732478483765748637231394911406927584329456011011307546758899146516963485388124099002564538648606316316839828950510966448540248672706486978467238757480718570295825376618568924211810498908008293304862611344570769892234350054771741130928487967023791312319125304581974031355930465173432771788640892595641223537209880282159716294065391243280384396985185495969255274231246248732612035534295297456290042531590857127667608926728940279182672652284130344349193284922450377868460990942525253606316947447098270213060750208446651830962087237196915730537880619966901575103724538070748074663898507779540777954847216008883375929904103634876125317906865388259479743814507119028660739776139444972298035940885571301743112423763696896796628314511121499287208488018381876378949777259436095970518184395592718028411488446342735924552799310987787458068523984072975470590244514939985779059312896721577463415554704697328351574233394656419247417777346629828085646669741122560128260619005806759297320729914443612317080438419711818494024760599439964344365674571574098240670418977814635306813581971964848349562279062419468937011892703733532981278382689640242564439778932475073619573298158258006839034798044414688332919603040908439003480450679817185120141165192321868401126845484283283168878008326811822201816691418390740731954610550460011455219288180706992643099426367936138688510165367340691763272309408607911155008000699889889225381685610890667666203660399021211844628940306854058831507108801971520975404791054167342968018554463395797574782522375820523650324757666660868459882670303482351760333849834468807318554901045676151349348797962005130185249305305389439522354247518399322016114764769344150182464983087012336059512726202543252451987711613025963421035527388613498155315944963977645529447489523156183770095148586052013444899465573278349344711933339327478853448895200127664277778212385535356566169085477091048450474604550713126365274957924408535077175765980060483287674436070093814932368025422061056450095995158230968914416609506090280115645124801983137079647467771728220309211310886572354716343946802245768115829839947956730761939544081642572329736023384368732485123392306143876489938386988462218560640389648671296618363014103459350820850542828270730618162205813208420993419817221806953695376844696745751677453536383707769880092820327076205328646131811579633136118836341993021810867086995854539671499202848228048930968434961529540022722058170960452756930408920191056681347397765557780118332303359611419322093855154176139599173953489902223393819485920741075784699455615803303980837563891982853612523413542297598161587817141950923450969169147213302994410476946403909108634692121824072574145336479074361618927396481854886532331061471565057808818069673506849862788677557055184698266870316950886812907846235425751382689220508023427321657782241233184775255803821410010452369341718837169447144480749898686609932924871385892043784683472202694129038236266205657209043586677485848184552977428182384921445179770971757641239126033056354625300885193259717999077490876422297949410178970022263947713727057161410036229999038859568083438811116330467867832183824558954336615552901573637858202457242239227874925171197813716023135240991685273257332368656447462353286378243621124111359100108934979656413512164553731386193914157597760643091129818954942102282642301418812801007080222961508356525471355830068747074952837857363943354168957296189170815039927171467115417208169490685269184709809372679491353837795712374225141397203379337470176598599802454745144601292485250095277370472201722944199383234450477875653190516922089814716814969083750785710637758832900178528189676092326535797462710627070780171071696819641069645790805641190793631584030551041044027650169728796154209823348415021459601954020270189740292812315853112472405276000378120816430967588303934566783666735390127821655760017580353609783145557443871910129581912536032160376642977822146049430450219707516009436814653243364907975445666384622941791734468574247296330186756328343500052610065390306624233950549873134647680187192646218296619974408504754382716924678192310058461943672912764278810752369898478505781015332609925219872464045129442508112148040929739677442907637352692399847383457792012126542806532811791035726395868838431383322658812128277199083986403735078814385824140233566689511989685235395296946891863851782225800666661210039166714832473867537819467738958953064431654759613987938200306012808420715929462374111414797101205721615865477822245677578433709680493127506832228523359006694718119144635835581707085246584895509379725284783785421946836028673885912874692930348757086532045562423978394661249158704129384908628789928847135331691234923822625224430286647433004862704078577457124750862208094933898713028766435799013341892278039955003426576689371384586403518680873667274535322693671881534329927885516753650737233206250336214171309446012986569211015810904960650343781383606254080570836973874538082972666825467461932732278631475983200728739507834837814754585557044392601325116666719169674712158026149219668972152122979838945751503116306081862665707324426986069247774624572304935283134998199197953011730390289267394097088877370249318173007787702024321869120556890987435896494579813974660543770286081667049956642150172763349385442749357983804353579701526656714971893297593531015821572017343898113763573487708895729136883324267883241125825467552594828614604777928019344928871780764203669656854879747639170203904006840645778555709966668350028343452062359844931338993947499081197426945374526737415480801402699462797564475923845460151034289992184239942218468757758290709413046370800117168107414189215131609809922003743262121009647856037299293064956470270754904963292101784120973656678263319807227280953078525988980209767088420240724810085591301021780033295597092516929916882190474048237781392541186348701896965711140927063456782022639340718395238426922630341814926674853081170042542298244089529806112934714659596021300935751790718742373261299503247414155061981185930866504536740618765024627409488478395794480192414733425688714624808871157361150221218304780371603569487939171192275854008012912832859108703801723926841529004820551501014348566612913269347071867867296634946122423495099739788078575845719758533815016321377870936791789398536020574571278283965755429892814617371739100158143915169778906527321675501104884504858806480636657815739813823984136970148486485879633346276764541112141579556783746196235662448523743792436530813237642510614815251099358998885750931824840727063142349460926438581941064534715463071027954043027569966526395535080161287241008649325666033349726566825193589757156836970641307743158603052478036064320410374643435578934287344253707855351760746538012371716481394148817449906868205900357736708453832146712995029525618252053950083679060132338202174929535872926470037808215515548155932034457098626789662327738457454754149956645842136628291228427991888178845088107822031851008932969566850943865608214366594178810154211915733815878380997343281500321054753254332474062751666513580502214597158514903779326619413432375306104723859934870603519074262221011267299135612866913237449894168093602557047410396865703453265604850355613234246760744641949613562208118128082773915390436779211498047500890113805341901118669636866460474836091340765970948314499619886752984154570793050760368673589333787500458738611514640568780322562320334835003767606594853995170851920402705316758930893396101839763343779868453630927020969438086271503699197518314566567010615285138039810370996139654759449861718045794869062581056020443349049441053056579112138659200922346474478617841047373065964971144020319791451944142170051280531615555958276708236167393908357525991529591369263178129440427950040839458969982941886059724815853765080464552698019861601532216303759795263384874720224425224982417471760607045178216208113348594847989029009544500834276088003884213769858331244055992140219764579249785037671501433856663963674912890609560856686359099277410709146705293551657369509140558552152313705558976081324394823180270325307342919370632797392539750600618332919998050746087967472501724175014521648283088174806567042207898413054016791050441615617871117220771695786723569649405276188957413649623846132126998896965061878710601570669889142190858194412560354395968239994311115417471373938056401066384809049865862398009711503384161021923041134575210709633616976767053531515350379315247024643435184581848458389211429216790685150081895056135906528193905381521634936397113522983061312046644549279243716797766335598376079062757702208776938020607972539539508205260228901444279103453756210551593095321756501748458083700194289347426441746917965472257608609053103150889286164587643303424033499081827022654528045416001579471658940574127891812287061003152472139510272814658654062889586031196738938745236652249576393623390965487111468576908330438975374854976543976714671427564224129313822415599257230775328875952842817630141881305710713767249186873104634718002007608443635407623867089832743805291319549280554339254685448472870968099621365227350505403591834268147976124544890553486736995143255994216839237763801983168822669656612321038710901234347301218963638886989326331064771223935397540901960587997247437658958325893280528410258512334743917841883381424605074025333443513760632920569517175404390240585833758071075344602402918819931224415871656464418134335479832017320946019348309141389170193936969898522829621791843729174844241971745826174508435180356279864308767457632676063005141501746051040524930957194960178920299685677721895035897450609575348371043508559970445454998554836187113501391153944897031513612878312762234727416739228272542775618783854490639223919268730648387483425135174662197542261238155146752461082115533815915068611022039768056123691479339427988288082423847809945930550986428750462797808666681368568705371142287010090480816003640081466201931249447411580847541325930566545985165922639997035711655770813220888943750170493733994741369966957821076948600931971364352661228492211365633112693136172071178709457972075476513980490802567920803166083999278443323600508874649786423662163430402327924843095305934028357037768770749100020872231206944425721461530861645779063149622025464768963466209542252824129954685151560043477096610519888681655204445684230284878918580149867204937647277659555284236109665752461080819645555083193172496071920128530296571464916162184051228559882813169048702774985432716556654059873089611567461352872508458370134884952937350703497298412708669978151668365223328737282182363697228101032967741739453256715675591575567176643957374272331889426432145685090471240307047807424140285942076831468973348389700929825791070442052087538500539064426932640015865488020559478267600824728003853950158504588802838184933824698226990219520811158803998554490512720203359913783804253840832926556932946890525628535292547226510461681429385233740154953668681342875299329692830332618130341174664611267863352727809896341420486627716556023926225812982273291926968427979135536473655820295337298117958293097133253702658174325230930165487119494269302701314047316605328034357893897678976201631633190433321607455375755568938802608739755770809477964842409168663078397128295092971594723761063650571248796074642373526978079323257997093464644322389374545382835665538620548301070500291565347205331280105692377501638101387550100990437635310780846812098127243271837710455090351428597092253541105373647238035637429542669354183155498941715878951818479873379503778455249503066354064606068828241620456146123010959955685404162862811373078021216523957316255818390348018812890928921667924820283289843884713649737929301636723910692535262480951238724557789472974202522445262003713311526226826609872265082375134955177834156674589961947577064847377204766791797035525426153184488808861278984446139998553966913040811328861486743075840403984409170659203328013725888700966319635511833534790591756362473313201082792029732513255145446326961474135055201402425882873875585953350733989715809933222793951459504232951454351183535860846024211438273462864347168897424496524473710050555120880867630566300316968517930912651193950700279722490040996836696998999206134341249335400415122126288060449664528649089195371523165372406855699158264502735449691995665742874912740343958152459453973649448827211845496916811876251726945935045020572533717817856346717019688256356293629428774381959835391878903580043200866847386429582685564318803506394718603092651378432380159463937135255936095907098309136722320078789405266092344410182369474357439342351252391666591229762396693680104474271217734555336332469618960452041032709757255469727119724637089328173120662428581970422577339202593836192703805663511690230574978414207644141751839547463968726421037837364388238210426913112763165556736408261387059560319011180376287673585813405778806986554346956383197416510120365308461569241543918809358313200772853199367783123021687190366051788690923871383838578284616010976608100457281817898169186765017247034564515968098479485460414852354915167510093109567335726003322862200335058653231792545379451368022302701491041562560735201540570778607318071512513910010761474429768305765021886415312396664184570009607768885408597295468153156427469645235588873968330436010576225372455245735242093181869500719128815538817293139185332199446211287042897179491872004254126100423896046616108133121729165145849793992777235753011238554462333619623377219818982408052252329495579679573040785334079862740426893400428381290688384376121913720661539589331224591167763041229941002967659188611910421213184129564286211330563625336468077256630414640267620953763624985698524775292598831856852674013859911719754614531889581654203001340388028224804423465971245745962332794811657741874931232655619107583255228185196069380845418450427924411874208498577292180624552912087063670661634543474567581278598611039585983584750822000388041297675709202544515403656277379312895046632657998012578870578909496860297396388309285135751046681689594126670627884827135349643095419891452353613469867613373632610694149337049230349194680234947275645614563480193396079624365677662194411233586263788173541156876085678895853333666572260075006444085989938145917764699057772940609005090119317999946487291927912443726548071717579473448262613176452356455851805168268400369643775138508971079863347651596619733300552216719873662181168420721006962495508177931381967768067491364696850596591031347037516004405933315155353752418590948559585089486091091527910388743613309178831812485834114729570376860168511169690583546305430591633851205232969091739439052216182244382488009489431912680089246779980642539706932126978864958264240226442253214536759468354692021757646967615702216551214466170143050798734092206215544853363542717199989492314744301417368391382744443563474940832504187299697695343444854858789058780128593889197057020562751903914552541713866800161579563653794843849360201831785931699821942168791900431360806252407287285551793511087183835619847311914613098483921518131730031633530947248459447033062382320970861322944104427671902864248758488723419094803030515373967800025133148955518998848779228164521106889406492484354770462672136673239141107481453141474227101447390015106469657295464613274940827019576171924488443614170106640479986712814920904369920299556417677724176910423987101906114053328046055714111991678788997330368724845408655795676686242828189263216227798417273582307499465500014252620423475163168913233406161070315018599713895448748973910967417011267777505043228902385251723062113516785382704881248535895049889947236701406336628552094944861122378682937434374952526812118850213466677109290336202519522777542032866254728695485422166508388625169462402574031208095269225321703909410594831238480589719385156090011771472707360389703439177363233720841543931623922865533567226733544552778798906776718009809021145634616438136568514086458266354932330865736210178953657478121747084541639452192948551983347491545769015208881681610033975600697138925702140475922325117720925232953056300950123281845124641925514192582536149257592288319415917359209020893622352612921989518105984767945558336573164562646082831876118048269676405917516148221844010060796419060587110676243289963726794456276856735932482508917355681707397107898905581888712289531780226251763229744704018510007767046967294771281892453827787574539698302696204343249084977553529231285885074458213463411587839481160202509361355515692519777785542309621976717082906191308132530360553049249535399033572451213673561718197890588343315178634160984210177513868454480240249547299016633032786793922465535178854031538673691070255525373197912602021285134250872609725171810991833406138908606556086745920118740346208032723277498418070323172717649086142643250495752285764536573021804923875562694342158234178559062753986588964187898459027794584747098379942577263526203877162456517056406149346864776099817288052412341556917540987638613605937932748131464006344606653889746461625303040668387077461116740717909630840066990490769143841996454379840302864369431652248855526995995905278261045413499572369364921246858648017731295228897979414269792324701646775527181645431230539473295791469517149710374694440190824228111150349886939660326026265858566702076734791882885258524149012333291482577682620623813904142050022145438267105616305479891016959356468929776550290852538880005432198008869637443304301258180390187995188472546057576754800966314921653452546317697569682412959511928512986015725167297866259183710405071286161791946404306230584799933259110419006154632079935747941614869255180437329461049529044715866606830498427834171564004812106758646946369781478209755177417811078441616956715268718381493150069701128642530991236129743209116167086897209108592828541116185236351036476747740948680235439595430326583660906603734044624991036847318910956912278394715914163034337951657717001414036202897310087719332167808638201704667542590423382418768196780563834384170715927703925443564594975034086091908995550705492045403866186931771573243850338779273228935031059169529821994761867404912975165018012970083218566185419680534380728987101686884907169117196062122101964878175727629801868198981989170098898945431207252425412355248458209956222130535467870334999758259164242432272913504599273753210640041363963319229016344514325549333136053562795027734715176511174717262810437402583597680899730826066357884704450309571559898403642047368975270106107437809441766113459530503224106087500275832956666243478444815007141511816161222241464520426083755103905266987736033450334921030953962448957598194682022149175351132128983878885207007387811091865077726425030970760030546135794746947020645110968715745717760884045445251073769537731146466195443493524267455296310761797670720665744438735035882484589499966184849131021869301631050426980672865223054613818336222702461117262111480585714834880258025680824945027260421132964832826373815811375001988254849391322200465462381608647563205432370866979426805612881208675235993073348169918685675238613219673470738115022505133143127649982767056199320817293392824281426949245869400554814141136243614333261018872589334871557443247344334739140701422754467593601507888945072883891058927680302044085443676490990660256824671418396173374229442331231801363811565511200986970587699887013879603164924334976027375191063092013649928277221664412883581747782872532114882202001045557209024863413587589627267243618040922929064640346297214999043305291001700724597569018999570368245005327155744943257961305420246561553301395878123141469309086342278890232375736463191170861847888261300007117850414451031599416468368820150448335020006143294400058518123567551797457130203281701892485013279221217733581047080996138697297446507713417398236518168946745674330780013529306885495179590364678080545828433157240511278647298815355067126802779775441208894881906501159131036199268301500467700004500702590679434951401632850942485852113965937037880079834763438973605318679427656365212851178743921947895342180334128172390651594182602564183825759212732084230074418185525817842249468100285970886749810586744423033397212101618152387333419914443419709763755213143869055390394830557746660231242712086703742503602199247864640998785589809366083430243960244696252311139053959301603081487260809238530134916568480566375534306218339344773689088864543526961103525242393760979257719510927316072272403803788032021804396782120895206267943430274976127374469896496512600601633015037281153521496460056910204220870267460637245192704944631763124575994490118146307308672773471230979577914313477656845349281409359986372722287459290467297012075459992972909006294362286305866403843331453205907605182800400502801121796450867874299420697443610327610862462898342135566890964924867981112457385034268328585604059164910948980173448012859491309505321292001652805337220939991901928340548353492679925693132802020708012917522184885366551666008454372454976825918759148626069347161036226177099043709279295403692337549020139967354921625470374400908430159407277495781317998115968045549523509998539306034935132210547371406936808255541804366405136278674082351783704028288550321470204763790685797431198635342076186263240286518370231899948424661391794290851846612440378743612774183514547297158942188958942437102325175598668872256994829602169877572292593117075973391640650003153470450926950075097643591770046635663691562625806989273712059953887860923128873182260880139438050231011495299044625185280011898145942602748636631626455872044275718145427724672726178978663283368959424625217682762477674366795815680281590217745106714746149724167569047983410402108646047446255702112763711554155741304942898612400677411376979114507276599578124691101281909533164889452325809549102356875445313377928749262836406732079811444567602745230116719327058564313615097612155586909234186799230559789975165400084318257121737820726731204295299731833265288792269769472272791605504669839584844781758678378263667080445736552856587949267345916504434570801777497256826743730386253135867300751359225984425882155822434181451431986271840781051241900609812179624363416039957216373068803634343771822843302056663467796490474465252315475540378288191762211381116912006559056126573912027919495312158494516904850508561766599623230721989518635058815422159767937226285575467877068945192385943219675701093583766405453201169301715260166061786454080388428377113475394135623831038933622416729934801338067608262491039194926084674049207768630460559780850296860299970007291477768891794780525665945570183634890214326674292479813835519626043927946541184448139485764775746630266903380973227089457548072557680652320212897626079550093730132834863565826677828526744706628779366830596414971186752897338550410936906998586887618170257295166948663436088937343651542248719782945354508496202835552058339697228828046553328811949731280857078662863839460068355180656971907958205234143224792539764703801204933169173454215615095836332080145657354443189444593757087214666992087437966833563656046755402857661784996933179169237317627075136784493844768773235256492370374881841969319831782842133311230169038830882047689354971683035958869688214736899212237920487812335663906925619471319373570881735704017690308505207439191124289285599431248296732569480505996512545638400912941868207808430802263826135586832726148563255160528735957230334511228981947938064490641965682893353676651775924928774997092162849836821427761222816688603535019896009554857648504673664716817386563827452381840973611985266537964634799023181904145344990224412511551289090261741799463928551274655266572503797677955735982319542188775342557070246363229172394107354299201582156154320785059535390637901921942609909638176686817944953461689830471051021265635805011400780378102875653209973061299119010107663077274703333635672019021044185905989256839194754803728638919350689696914616033798426099287188337354307498327509169125254614757464360183358934515854142854172711654753644039055419909426921766762506935451213875009851643187637873632921889731660965826120545590704552633879191092311895246140803865001977547150502511653041433965841736327163592363810434284856121219736636128500226980281098291276614116646584873705678989948873762368257956551183388077955695361729118059799535131041667699871050905214257909546566399146190415660666540474279872923460331156804777666550185009798311921704417652127711937620071100531747344645999496576386048449982099126740476972527503873701397701074144502958350896874468651432723638885900623457828919508832765341829204727257914757867523139549210977902232075993649161416212643324425039144401847256182008462576159561917058453561457356269703479198616600478039026832606996504703505589794592905468238919252005134980160162107676291523680818254571570959961647639691132977467599916812624406967224210374752014527889016051873453394981065125229546270903370260185087232951321815081961018844638150408843980767933855571133935665266793927956313913747250880708655120209640702650590862367392531817818838039104163800811969697600897452120204720245050062886323611943983556455688659733271207609429310221182476632578318909667111503680244558910588953044120190412703387135101665435857409857646320333663872595952907247872794677607594627974531207265550250426470142837589974268352859454088331784463655351806704448317835804002888507947633406035676098896771838973032194278577098413497023731477476104582482651485921611842619413731380212058777139021086227197582766433656422871726595270804909399286241830477912688929211886488849032651329281181697372319907596186989074210244701092375237504748462897479979254075501099693096688892495902230415402879217538053530198132543659596295785629405511387672175769334628455730303056773003581827062967486180775668165298022386813812900294405223295804289224683508325533451197672557557416795098137946557677762374038022125212785228818374815374292168097782060430560936821240004651922350758812108630562500659176728011343178966154268253663200744067556591239842106472491319477270619874509765270642956888828808332459372025140491507327585149009601609259942618065482531506287788360371516091185698564799469878834830598038460092540459536149099557818083085076936320715645415959050037385650456824769378534881195709588918771619020063218178852951190061494840472008031204202752852624477606205353644947109338025178251804127678197665051258949831523335162857185710719086916411569773210863127791177965683725009578292578903878443581499234216303629564812945818020324895890720536110939065699742442245407887100284381550024390813853698850561759203235997222837096937980589081191095490714667691109552467502065930910405591008763684978628586342099978612734792239603140789363805045701098784263927501401346937842534585405295073660352892992297931575551171797801435879522464572554067283845772126549990073435603151677623527075711455880793578989711378740686645236899558178155520673916866415663309934089614111310388617762793187166926208356729329359731336224748275657412400660348526644806114649617436161096556630425428084345988484722256329117516800952809141019951735985038928652617245633263693156923549102254941545114520682845127952449121409376192757633759633914748779240152932710720543468739201384708829999017079385509633120546228796905717500269086360884473940192989093354171899375949756702703623917096668934166104179630002943089441972106912045530497593298144942419647948956483627623560485939940097917920609690587393820925990225611167208092908388460548653914192774429522055857205103435269996302634328985820164755908632828758454471921805038422173417194380251059884368031362214668577044283493623558568472418196592235656621119228712881311453464452249197218088253402241984752255650716554862539022070457409054904713219842931332671418626704493501997536031264181844974683295006115974595420751924650801563331159309540552378492167908834621610718727546205327149569982490858761390998094155154673274833688756069359543147272117749434802628212594347757735133951282047537474443183684327877289604183108228803383382886144261686563635437526135437255440161341174836408011242241005097823038331556894310743719991741493612139856938272946737172643415782501667432105223177607862389557153477243896552740345110173399255868136224743885338956917520598467338913627241973446609243758439917248289305436677661938763817594685663220523537014235371926943339435900386507246198898248828584982971927649863652187311837374495582834371635629461957635002494332762700374026785005976442892163842744873626053403175666906225595912752602282060557706388323018531954613247666787396457139091325252853766032655613888425443321459445865002816706538001111276284437998431689720690296325348361226015016551123940140878001901730370368074659167134572928025333697237335797461800486767237756353226159022644352874105601161487626777991596347922164087870370180373090987276483797439657976765557562944032993840522351670959332129427916730258587106764778015635885251509085088807343506132471233326476523854864438465289168541186165045870526819444236456653324494329394357333782804606437951226669585648969603814536499704204766602871530051561597087423585769120566419858269928515911037135632763465262713495485507132410618120571026870601294599571170892804877584936680896467667879061476168666268443752860801038051204601689138611594307560621578646310039614199829347140265981385093004135079515796137461522903575552306677860607599915167160133688150551438581878548316691126531202827125255168566030579435443618571965995147384569377523648439495915083034439906270017432102500515191000131281250151495457609199104908900882076908030846354564069881981614882585955700685027829559618849129899428349297492143294250664744399523526731701346087039464504503783220020863229823397196918061280752634149844386054270185317691408364645959098695922659715185740838300944011027294250184400340330701666975998428721472979563154179953413170663696086948245880498462762732106531598923115701793172268807627802349959512592170028630524150644649147199912731305432869355388216859735024209433790770201578537643904537170527763506631029430359354761371656443693146610978506583535002434046070026931128723365022448136997537367848337386336110603036531841080128265374943576787071301866498948308971677228232211331182098657408258161545986335425472187375905852963618034387329807695449696772654190638569286067156479992597094001189739985585622036697288981359686377755256210677059451067341345545165895216982393620753161836541683863020448099365014715298640073020553903562763985281189224261810180255023736134630789390674005084963559444841920932226389185979461554340088490653390058688428372325224747798051950219572065671085762117955237602403484418061561357546275312537173505467032936459867857404552873936923257838471920642655427607153642687688424832100888092375136892681491910746152807801677214949456376072414150841132253355288845570091956921644176666825433269469918566118320976758148055495242175767941311122932451922797481302282757872932786714199843826502369239352454290843826228668755596576480716229527687787764917300363856380660054958946054738110170781123789141983333106849674893805568264353660162343462023427473572772447110416287457554687592861203312810459587291458746604554086472081025121934003789841560057635553641373632518322435665273060504861517330923337987207397904268215863616797133471164671940587359524313905701245395486664100694857078713579048817713571203115505198166312966850969504765822152908438497545993145664395825059720382975035989159565402326860875308965283934549074111233275709100745471718571681526501630298324378182854949738657394921326344834839698848704988231677868117264637347156415287658479497544863162151559011215809452228489296433993578378319331436066694882472718237115266606725353399139034829916673024610079339121979653011161952521747851587890064257962424963634314818883934616742357910323205647611080324006385234530302169458442152606971668249217869442232567178429757205837430856202344025671106535648970612493572193088832558474548798621082311325409277752666597236311733373492616186475117122016811977517026292482136812546030955129078791746401370511626097873489524573933491355012058335162810604163458215873849453079411737286002618303421323694966435175663042341100729429718438861576412127466525735744406947133899812745108642295818147807133421508572241390729346788693658212039830265302499815439391344128642231741342835786304051309262869338642862396432021905660511327607358324097692464636301182126807035005752787498137884242743234357520357147603571018007157614925035275004499843418430533628833940447481666804045813988160842082577773400132238349170004915195517550612448863827264957975597467128748797358880831244658874441296057202748091130315292629466794336805917114718505120134941153660707055263778636743030941931334084984979590802548739624143334203175521722054086642460632376448779578635868320907375992181523157599213217508765985024494261826335830933012629903241678486843123295266270077436242547353769502510712697689665737515364842352179169582435079787989377915014596132043626154257547701980773230001867680763179649065718183457183820655439692219386016815348394870596271577450128469574066896941857476387948364451206669964963000072976170186874513726895725986841773619093471021988514436253736117915566316410505545886039578219012432615034547340925290383148005288145769060489084007779541707929672201457243872858897390432696826193658604028380230796423217308932775584819454944453106409331881732837141207951492682626712166375101200817726294201163529453739055355491609845727861606737852786553354268629091772921763218785265510709965721461027367267982029268757256753516504537412626011633351138457165747587904633002108781822456715229807158232909040581032474543557697039218017683228934274774126757906912158725208281956276968455302864416925361581255490403900526997270482301828079854321220767732400416964628261183662097236747966851188958799216779880717440076818291879505909457187306610812720905249385456906142010854339251388477116799257473356290640615695874403260493035473877161241451295752228919567953556245603498083991719760623416828723702641554932214387627125910540534113365167488119916286908155822549337895672528155613238977582645670170220092807816694083638746948201766941261002866799715658118749101356074830998427161465389674422801563811292905840305169042605869121867166602240565451418099802349319889910496521515441302771458579213169667973168285702279955171024317700337575528073033027930382889118915863459960685347477981907388622684669803920501460353529184798768872091188576661478126916066535670065349108977891111858864609101381505284024698579898737827053156512768333504219087307173180021358228293037132120083426251526847199821638677679624067362026340187767715303706010297092660850014045337154319409349452590152401136464617028602924150663476495158572239287540576404256113036085782149261221834578619589976937363070095616533529119722429886289510670622098581073993822550749819260148456427209592162526932981596829371878282175744192059750783092571341149646789367698604604827074063007676313124244320733194387701273693138679338785125711631550757219338555837820161392210762956690880645631203477042659648399264657960973369083668260333574134098764815350565718897166758650205564866167309244403528297908693320816411968687996086764014118551254595000538041562594849650739548003895573599558654046640526796944913546063352941337026672488128320406385142092465428418500546685434246799713758603723675581789396835689471879319557598243942691671338844535407487313587566204175517365818495324504448725346128389341675528990705269186100085505207114509826235577775023137314352222521575212408550368116770625476807469940527319154031872111815915060737866910111210413099163022958829613417183138913200674518296530648479642344016747768672949979491454282595939421790054979947823884175206088080749701317336104091425369911739983600066337422736185310274744497033062912015606597615199911434584867095513764979920863283433257485883176628105069013955697710205025541869517413508276491722480391913969974221967527651677671351272107323475564446531116967318369926914452851827867986876571534236235437446414193315609840012437909950236786384377179076153317438077932511431533758301922526429287000384529490821389225965787866748731518131559462493692679814710184622460550382082242275528684110892517768804113748975624722103746273452974903359911841055604956831200438873016185075244356733233189625080209934429722019304021804434814546213938416456646683794364947146930401675796681245645626572324589921618373154046934427994317014724992613908097068788612101113723425520427051026212694386303523787006842989904963191081692055592356227642326745982945458051062421703107086545748179675603215118584055256559095244987226238149585829203891922312412519259963226481897769368543450515880949840183333792595144678928114567726303976273557687352372418127956029922052355028698553353585043200586598609662184877974844404550078740425717134932863026410622802018244097690877332306321544676526384958611659832163952150801572060649190256307191340001522546629931199965653177702661020931769511644255000526727590764678827554459242548620387503761462926466817892589822722070125964929654281219205349180796800111964347929751362446950931852100551036008546747349899395261698275122225293866890872075135300666947351310641772049502639337762131812591833316033299326365004804266735546100107635240133580697931884237695168295618867956410208153670141007976121335280165152761581359705530988925489135227222147689798887193521090888920650207282460373486438939370103412187881410168470997369925437425000258041238585354055892655845143766209467363046043167967068907151355275181451962016159060412825881968620871923050891444106233257232010927451672702415350215659010092009141252669483705959887139879911800442216734592863480024476874965361169735496459312546467618967363882703732626986581940953895026415091675887573181969672482573872078498107131808080565149583547740975825760672052068983127158657797680663330129035304478063689511094237199250099572019175819077117218036766890216514196205688589417888140291255011748305743353336803065366318899259163460123775576192280707523929610627122845828994151270519289321506480514732176405402481881196420103724351605663837043159655964547726413608522622456973927787928698013625046265884310537173819912752903470178211234436959379077653380402984995658285007109629673934853308142334153156014501970900192419205013909081579801561417193366835589137012117971031027041331167905618374175454686865741682789080789680487943422761710973001178693729937566241852190175906850065566161910009985208802710308091839330535153688827049566547865689449312762468514579559827666078954597571423108644352618413166369972535772822936462886904777308703977778356597709713050774813758765055723545494281529800127190600495772228717815056180424146389602795934554118057796308015322922325381881025874165156011712876134839265704328732344512753226203372133702287140444859829277309802292234450520473657777866980535150185064123522822462671835531899737499359284752093496993444410493320042069294379410579250654025659194583034788611050149681312897054830194911822809822867136173817380388797594787227954471958402605343812295136827221383626869749701616579609511369490423836380813388575485692160214509161830663996076268385444395722319310971362329060084961718026287754603903001430419241706172044903511366904476312203205677779548413628174143950808211101481826763587272566907119622428559968690582325833571465357153462236221230760625155525220148392114749887454605330316775090915761191663890846614032038534888004722610244056850600920002481189281977161418427955210892041198631694096005480987502312788087998464447840495708115605486990560410150278866759500098185860505382968201261268871272568121026573465926823465299033138064347420800896852130645273122023095441810531203235735571310953203489070005396301628531165513731753184101984950871018683793162437962408161617097447000541677724848376641778575612320831058238384019547367437590542173088609340558753035656669700855171229028303995654282672146174105034109289454708401018842087152364123915097871362734468789397687217918077811344904002791339304935637879252015792589571088196010071703718270540763846719732113853143850592619022421282045883762355265603178604634610672109539286150247440803655278559286935250979142973116249822894949907821909518727773659908467661349285565838184251707394619839677461806410472719696805462806820489913853975047121571154374154937209926475866163527864006516899533109600787477180919277465228727623699362958155890007764769346511121068471075122772970642136847510694943198540058068777267084385868738842551834939297737727519469383904608924466320300172770882073665811501071723009624677207440997920682528344721772872094390907978096403501334325797262496685133126337189312519230295180206957935125910019549614161625913527023666176918087624893123754762159486273951403807374291475246288857327170453048486042730433095778520162408465653007399297497307236523772674272931385696347886080671507211809888792231877092666445698364228389682844314991924819127233026643944048434856959241257407609144873696770595810844300956529576559660979387537054660700096823415147754591813472757431302023477725652937667432288379412209555000819710358804921087969222324518663629744325976953594314982568596410061503697112195187671351696517361028522278401554830705551904865249748896571820654665413271992433127453896110221233587855157314560776814652031786519539839988433195477028162748553019639268139650662585080517423525226699413825215602998844017000322457633636636228829685914026697468758363616020327560148580143209432191534326924601444764767732715668428056414972514673264585471016935862994303955574640579162391266800458678859291113571653144912576588427593737278502475551987892698077389787883061291263529257238092553074116417842678833894757577709585832919394552473838468931259566839933351669392893733901387361356909790714507323977109019668115519311132995295096619434935864086514892955886178283078054639009820955853967201694715982564208735887650551549463560947270466482726006757278642365091494976052491600706153662353109164565960867901796256755902345831071691404111824429148141941407241359973718233684649791593640931648372424439890258938914592835639460586146793636407422321400971131866720817007433791589176450416288549129417745309719669444379139991945334764154846040791163821187704583362626935986500321323991358125391982635763106620594897021786477673516664844003459917420601315095026397833265729862966899618500647256280164936252891607398510646239533440422765461557054378010064413808916586695713819866157391229807851301796616576055470753478819998671098152550737411191094333720457989487516987779879469766968233418965317677155866398551839129308327537577044839208658891766023310317440545650969204614659085255731130890621230272197902587661840243830533191801135479685117164958790190048454596040621394513537328130947225790181653947547253380077669519963324495798614429187082495063017041569076836794684801740357148714722864299735582694576968572527224259091112497070501210406181317417716829316974837946214732046414413918655548389773255962574494623030608937822539785359813323112581718325134721686421260549552724895851158733520809793372067335039074624102049064718095362127008170291550765986885904828941940856670044897273402783294348064630522132956782764892064449753361568189142507351881103569213967069887280939877351306619583509392676266828445810209191975017589485814147076286334961639888678522474853416461920091874285142172245740456391888347802024134579081631805078104958989968899849037610646824795493057936152390346516806074716329263975362104968620845048909081533358860294792022875972442689500116117919198910212875735664371222958011732376406489470598170384409333762729456930336832117659603546452030015397225742027805120487248845401429328429936506336958619465237109134760879951718706690915878042804676090785054461721471345351462919846260628895420517689507941854419434492403237784676148844666011710959950137335533707058288144356625990265344395819166022058694651518265224761574384645030465413643085876414876816178461280369039081627089671408060343548463840150041369792545535538040358687077585741900993411376647616544260738174108902131472901381630137167356506381896088459237801673413466775851930734594043789914760539779861417573671398619137273780745919369692992490939551064916294738446999283981811327815661630962153646241037540240826499922615457150585642280199364992821181220866958832027346863173982638259289004871362425995330138400726185727707989549969857650210517201145012460578013313932436808203747989395018093106268096899296897676995410518356706849721958248534990391203736868346186074045259967900353465488534995157266852127543085409351370236976639856950781679695849676498506572131134525723085778573334339899328945510681061426190732019461994554637446467794346132972881918534777956134537133322776801722993553282914278605942502439088326729574081387682966688468164354112640491535003793522067860564761359853894102760387345210858266486674581839042174899138980112761689845454844796938334055457979456466004758296903759556859170363224799352246768188702263536294586143451756390962004572951960212317405230113157510917902568153432306583094439174241757923900677246947784824291194028044976263848733961599123693507355282752634361105347110148968462904773292195463786941803548771693843888201609188611196246477702598894737654748695162030767072653104007020187269311074599122414091910849469419723128034076146894936180632270667872360605773457677305298330081244134089009683690948470377708135820097734477379473873290218729299470172417636012802885056378253528998393867475072603798727458091113210875769960618069172325148085084228946580224870768343615836134867115376459759330722480052465936039564958161901732381045430373443704481635753655212137634979230331327141863031095988332815917248645578829446123755111942530591814427720319258784882034435380860591001711462622726101623676929059234633598114988134717999864284108565514476330468162614251557453310408644996639042666257566240411516381381060898297865736088925238382736509959764885532482347594776488264759341860496628823812381620724072889181549582916922888567880564244978913731934448334553135926870530138460791995750667224346027348564828876102916748953247986357965940187172979596904210069459516753830282032484068264911365945899367958994302218513062401149088711412065268798027032462573736332793828979922394899371314994345524055268242516243184544131561242174469323327411924522233363267168680580718175600796541101232582076644848093753782172962253123386044318486072878534754480387340250338438118205348606713165781656840660436107124534186410614755769618141540997502997250532544357722769360866324481343462013881677378816734806849952186778156024717081227319229970678283292496912886749941411535235814486383897911735667937817410742216976034150271793194455255039373856291561597443069973243672705737110674828155137199970377971587693843869736555805111883635759263394466009150362379522722207409472679542032459982340742716189048790772161527443109051991816818567155035343569243053848551085808349624045462634298116419827532301330191217098885562517859996983710301444618128329770374188858754378787101840811382964156968883000264747122333035323608239992128761843216286754807671791552782066597408981390648962299291589364455623615889537088610286626054521767201786546699037883152166108989054327915333878044452020588156698925519768828609735394513247923081166445017160434322433501264717223575797665575881165041644571221579265648514120527380921675706297861858259480268569354784386865217017447594084038114465702254479493610012504733725805255795996350346419556206423912615319355994878719765153183596449892740749661683256692114333914151224091335548369083943251391070676399259223783149723099663520046582874031589255816238484858039410756442035088618670727533291938376757206906762023879507760303610099386332926914810899938326418593452109835530606764560021548399023540990431826875588817266606020277596566873668337253237727409704579297177197993015387734842570527528492454117823951783840243308838779056020886509227523479580883956739232981563700656274753559688100159978118269977267945883987665730315259529323965683089956636465339958172319483588018708817763436775558011614768932510862480573237985645807253267099325030959454920826720312597476417915835245539634202249827193486333859389958736649840989995020775408167234550669273394236728294243253612844919850739673095786917671902539397776686582702621643703345209437616866831460621715328254746074735917286206442062355853477249134142530852852679675115745629147878724388227524478402098431266400281247914374811567632228728566696866957302876215462738797124195772299262608998551730479478774254025936755847349905741970877760991443561452814368407633705979308323332532272919552855343631558864091755683130823817034721171880812322043436538820740916350031666472678360139100843520944228916532648536470356948208517034633679984193741219989576259169794878374382151079217448677309524337754016641954884274260521845442383543132888326301382535902337844019815067818413948427822078111206156658645395269058413282962860818114779519870208200391473580808368551189671874061542069094006484968332936968978213201497899049763511192807125938847934504416797634648029619855760181849894751726088298500494164127777926535502689210198682002229052004098800019236600561340846784965590095815710890707041317040327542505785497592378236402482444402372763682691291664085698058071569165180337109976298695868255601228339632980220378078867833128621446505208741989245660085956728755171643553887083397630483139679653244891615989474135028857667467802698910604939793383975165194570508043872459759023707939584470781252117372151547079104968236368340059306926279349327905353747404306859335122158366238670444327626563723019188612927724884925044502491823934497830215773273906791015673455278472679093836498949867181658232407584678759543045292797977270266255580925331911282056847383399279324774070671799629743601218078246018336792969783948394453348848326562261081471861366022873886040034246954256068478514199705155508293535842983598526246187278135936343194650708468530152288029920716586201207368393651252359983480254557120577781993047380048462371183363167733338010215387181352615967748285777546223759761443520095514792380990764457782346345272468892442148972625840759335301437183811697591418940371100223953013194908556825844696677746633571771950585355677324714208413393206916566017402819734449634015050823251448027240855192296484747179034355706425770580551499100603877535221766630283314132089804273532492105090690280678490400428580781532210284151076418967333245795569632120223707001069909245216670275713590969876013216303347478884935395134222092779915849728162885734297187898077312598564664070594878738826072337549339233818663449516491549305754692156290712600567899591166983542022338356554966188373697140009242940237636552108011818424520119358482072680588209553555179927415649215657826301576799048815521483543331104406729292703768721683204811695451905119371643828775858074800405160377318865844390750882417350130447587621703074529721348958996826923564977967440059564359696685342125960991861028962831996533101436377476959619261400734835314481710155002519199991213636552630212408805518691980686631244192212442931917563191575019650994577136767943339241720448429149184532305865587796660318544152140271661086008892882934309801078892199386681169900453360007576856371774570407703092995880871771094257173583491055064311910717722687245765889355159194957230701015319228298526596643514895370286564249372967810077405823604246386935657156606479684407821859058567166243209354731421557748068128518087648426465268570278399935667086721478866225499670749765376522496241440701564578931472098151209602770289803058451551281668992120078303587586362282335658233950683646651593750854071837493565689234124435561704721765408357669659093866977961674754145976867714982447397268442615665169290935240576826644212801521197513178567789117202394553127216219185318800422754136158210593403541237348000761385292469613070394845585349599266058586001285287300015627644756693055946603470852853011639332389490727412623047190154599043304582425773467625434343008386089722198289951200831650936263605424412168651973358962325550708317402031396286295131596404825525746132725958912309611734624774099365111871921588427558136616134548245801052706454211076292010820372734698744731591108894532774109411896611960649411194668466283424444812107825915679492893052453359627097064190404638809890683378802909259153651533812012901923097935829700219098492174925918624234034274305771681662230045323899377097305671574016959290185698875710297640479728450107901636643247334517291473446179102132448574782573201051017740627330726221085981914508847011138759359908131034867088637708467434670948686095109059227669055194607056736435725171948102672251359540641186678448688805992908581797559204939803919559440855577151842217093562506472405976309250079324177650399347818270550905776872916351009862314181353278938437241451252059463415964601767358521369946258112864787173566213509312930966954665647878705687212066350646242450246069374206362747762813595550971135956933912764752936029752488757409044627396406773138298973962628318495400156073432280944770583411123542389839820644341280449078963752837661013962527004340759825037888393802190902770135703265466425942651373289508307663257326362318909123816824461047785586809450017983430501426840158228604909146560840792069161601237896017228898949302002921639804344304638388822654980537530593350081509703390063167798187423754799500514571259548179662629177884854742593765043018894801785222404829356543232673010248154742014979413367743025392298604768165403693222683288676722601400546029054202638763487551126174045811555714968129909950677532468058754609433213331986166780772771311293515427341640504040110030357182823684046248772783457158705971149060889229733420841225273686825058835981719508443477372115112856709057044255823740621218917076705099412168253319109810845567536208461085556072776616044995045728770407167459287143743594377369905931417734008016042936892131002025387212344237461915149369969645264286662029331998893167116835908671159450957231669397113389146608173939351153775479611766976175171929196279233682807984353985820321562242186961599239568015687034454143389411589263957159030766850616576687953597411625731598478024522774892176135887147135269702268607833350110816089103016708007509731726652152365472447481473539067900754885533794022321920130350029658702443678944116750946015947184835258266600411227716675882990344961901434578609468929882063234990435172237211524310787607721796691316450451456835766482844282260726630603939802378530322675363070522203630275010030868688944076560683851881414743491541432508280272151094345410452395089915707170352922682664234053998444879545914763319321948632976149670440720721643847421520800178417978175618178691538036517440543328209834428839219968816108156770866127489922171376438452588661223226955203810841966058817019130113258902081629840497010059684617265596264118390080922777449705856680578140640382330218461166913517496699710426365539170308580611243957173772947279699106740830724121388028365400855095476465753364119112524144170873187768290238934982363561649602956103257430620684193085980143418001071926618947606799136914261285505848084548422702503576323965635030409819515705758990902972004146755381644798010731755469556490481652782777824561296631498846487541226346730581832520819850423870895871190565026719691766971694747026583272365184563439056207992395191021559347705366969595430774513067048360133742119924120248448566634486089738817068219113754377700306964954490839374971626612785007352549585756898546221598330294628167735601021985473970448782332366731359728960466795302517101987297939937386207670830402483246940650883867102609258736393312699849357973484322574014515384610192231526445165079304974092920931567774928299911863636123643472432173038289223490433985139266280593186999508048660946974998473325335079151434147736715879701237781770272759751086025320575556388990753162512658552302679745056414772125162577406283830977057531553031366739125293056701400526403405313927557481447469654122374730986513965349781394583153432463186936942706482719482898450904021275077544127747919304523290860264017804606090184349188793778090531943417015191398970519077716657202518575983096471815622703143501399040721832714969956649025473444383704126393238038320565433165315546919655892388838278335440256383110563332493134498757916659064312148356105770421796196458410587807098461238583413204677745064356198440050612050681570452014174899716170380596067043744364417944804479484139018705562727366993913708253580945353438483688983860407644645178554164702935004369982476548054829329953914727284266198048428553641181620200087255988501620287547671571405127477579980375719524686534822609606605268580345621352911060738794188113302063565156330752126601379283235447574770578646223851726124912093571219142544031529194564359217076081306827655220163728439016986539884502273111063197858555751654571753026382642944096709198970749724712140975235504070869083855395548810127056994234166291785427404288859889050781990192046267878792424108346741962251517457554927961414357590260458065990916958236929622437440180830125008670552492868137562657631959558564084208777808071665036342092483893012252859040142914707182746397995632033544106526955533121756452080537039205516704805767861098982533375540156061335207340870095267786004135146063187950633333558451377305146537746019181228448872028273298406474250690063424136064205988340582186613607521666192392856199934151245784746327330204476130468939346430325783287799906191032097007729615818014054757415714873839054112527061630266007317534015936341791739935513021742545734113952756870138475707744820358891558946760965498540203002290311857038764720029538221679258981506391422740381810259364503678400153697983098979780082206361926822497440829538492015171013065377578426914613185592991595713838274868757010921176971693410464368107628400331508483931698397596021022832526771480467463306435602834720352233119225392903907447698240243419629784692461693021173026552765436711841651979496809756573711886201845926465795054430312719113837133185263695045321633615111375382536282962399296702286162468241962497606727584594915249295808072860788088073558023497860120480233289737967573520485071101314234859327848344952564622508545202286155110506836128875337633472529849780553889365200523057818538434567731718125059216373952333163945292841423139632684762536762284996239156118669698906405478310050072571835490184139690053625731242754656682914529312462483753570065677086433441164425868125246888717633411651401477085407032636109658107924768462381542973177967211399435475597631730555736044283039461457614538822337561883537858196633511687510016829314871882992333117819442559597847835822287930528059538205109728373637283321405607395583338498444918057133885243382700204928883269302102845657140333267159175070155595541700903120322926016161829241582779417045085919956215305251548965764885941428274525989291323669708429440816887273013079819341894084805423081072689583596341721784711041702262699571979432861936535205657841927380577084131262085033329787092051382500296941298263644589794934385198504949541560542974346403897080578177555359194640765340822457406937092692141086294999582229465487455752299403512559706770045474492358922122103669436967744289953776052145409087000486415918794227427054898337893382053356823710133762746363507285252437074156630581555217466451365948324900734199455417042179651146936504984959357918330947553957293876244671018199737718171974732335209821197519057669121868266612562983933336994799516501957960023777303820996876191568239980531427578792295793995662964319646871855942894002657905873580424540640833759440664371654256805841784670809812449107083521118590912231968830984529559690788151763839273457034121983786763299587425120702290765212589656679466302101373763822560347144867167085766167899219292866781393649761320719375520763621732289322243026511264633558529919717989478986160188323073916757700290199200835734261018039062385544649443457466501848700067338328210742540866060989500643750826114429587968210148249872548367287619161077596527596474670902554301544336202097132105097831283905076773833294675020239993310067182001440294962092595648845747731665753571956497809613065442749672042772777748680544584177470808193229060218675839623141205259751812861572317717210498763869450672516935699536263136212307394590534929232677868102417092354755855683651520346392764520442054006700158887183366042105167322367722695052921773786341864378277494508535716122112704581932906407610217302412376373787801763477863306693237644847848402444552400600825042194792558268900474097750134830565052841339261018186468548313391952477313629793635779564129887042379464163192575599283759308642440033898922688212615710172223224495227884432132206489411218556286300526632981714748353600358185787830454976112913850496957384482204937210744509347005003152121356342022914780106135871178045181471639166567183543883679369384426048330198519612578215223680277422977072567750092670678699384540902966215613894791910721871997413413446781783816200218416429672424065492256445620261388686885112990651418063692145511116074469782371975980026053486197489882409515315120177134271189203270951894861043959833171735116170580631809102528191371000507238098596672407973306779389295680568669439286412932904224058463965081708723082752735782684866246867222350665407848427054629202168438803028071568469615150501631966689774493057035307903784296660156415132722676650913497372513632942677037185267606138720125201610049270569118935208227162858420172572467411973735616617711101665174030434028290315748136095213102367510849052296713175633776869949620774563416529006381066079345674303964186563575672554747264381714955344366168877287280935133849267623863444665072461067046366919607562087169573050353365606417842884609380834721101909633638282595936114035068114699866233142622768106432284625738391511691257908946283021937871255494097878739597156224207069233976230734823526461637562611021831575607753639620714369278051700473440388262950681952485033976220783398063922250921201529314115632548112096301910049958308758316618183731017115716703954227629335515211405784499712565830770046034062643916498395473797020146807879052234294866952681957546475719043688552331513176024377920316802994732419886626318396375129496768906546113043255525252705407168106632571713014498840743965868119947400713989109771772325377180331452501422724257769539272528765086820760512940096104420613249272308276800226538403768091104062453699669591054225042170064576323798521290830004450168074256092044737613282169250325109899369727412202668660403256140573458579013405802906806237862860435550217685646318236942653831172106485452653627646529697089436812006790829372475496437475194487298188046802535442325983088539464408552833775937635310213250126647927174193387608219832012002785423246048702659645028163289427026490046507989522967581196635896904215893815333983054030599120302535378327199412684688468360300987760516505229848620988539511777586175317074411620442872966245646012077822880914834898442707588839781638390849980365221861257910225064504968144084256839294738973003756474273554201236656398544829923275844991817471930111048583335480882928568453958381055307904292771210977348575967470152512798795648644044598776224067562497845474669859096935527982986101278511897843427881520911559622740325130052166284154741032487407394994153739803206652580011872046543154125210175400979816780328789137404461216008170351715151440167634263730281886531176760475093513282409559347448736206601044286683893169796720779321114594837655981730719105028424142780370001641508650413793528881745568141451487234736368205039745743883379146875203132801169104031683079507119433461126228478186358205250832025157311230806638371779608321415797084358565683656125701948196617030967685007509029750760720010298292090531223750569917986118184675860662157771915884242651214383999598896541241334218962537850407969850088096381678693304353194978977616892534418370819164544148955447875108027368572347900155655767924812736935697011424252158411383078462631308756912079621312803140376359141086944121996454497850899321811757575701840213431844125671507255371392408662733061328410728861290315044962937969261584913755397498688967325828610279292626104407130334522364499474368347599263737543071435617444001069836034549936981729811331501119154851172612785583203763726605948498093613851181246690686485123615445225326112884155353236524170749126183856458009133943637998717324145084641463620002164977141590961066054982078389398248811459497853952531444918702834961549640454762589597662476060822661006802958786809450649303573312057855851601982533177806844021932641164380053243054508311103787173001526361197247132836694015934753008255083592756892684960617643159560230528146786407833896592067971386363119111975449158158101664058830140019439581422855567785892761971073950257277099508921191714777894741531988013130904630876301598338215996732551838821474598037205804467277874565647387688620030286015260134592523640501544935771032956691542925867573429493280157556237302009317019481836090826872099984534208776129731479596077260842716191614496375169531268560550596068670202853646714030807929381286762745440656506714439290687944141695489475425623360274156452275507997745103432804664992003878526019485917087436132477571361410354291823635087053095555043788071807119627179345197430399433599280978191837035836943370745435831338250121431592676651619261360120985262943469901018340156089327388391413921053752915284606617185762627267837180389500054602399574365842913675231923628081957505185894634466489751106466935880543568373361329758180624119612223995271727777294006020399796723639218864653001346355697399821872267745396107708539081819782140908374194862082673516777481656655842343053784019928500989998321555570445535291773406180128365347043866196660621948931472153743437144777696119053176473536389153915148268125733434597968370259762401626301105980066170994880855679226771647289754232495965045836021007100900533504374218745686841206790352793242674674795954628617188556521268873390747691700999917281445505437487645643695905382915738055658227438383049930507581897853791653355684286807665973490306025990700642381874274549873046305439494788613797011307410831496872215595781950899725538673289568465733136301375056266690879124944581675203571941439467475450106514596376159979803691535161750253831400689960913662942262440510825002228225611283814910158918002910488723758657235615986587790942193133879405291034896216880339082491265395297181761746208630973706727036352429513652506447277977090907728964713595820988723110832023469049273429392962524584249933966161255632919857095383608829352675568871452658231888090741944607738497966684644900962410848725392535499819976061922775755957162898762786423697293982917697665246478363042154362733220680305475866709687799798962288824800524152848328647644712276568560616475636313161058858767712553647041837974435532724481207766148825306972624992345111932963775864780930125377686613043322381024835134603088281291481991218514462746002496107229971867117683586894877003563604701694162877737670616892785517411335003581270397508498218099021106664226609094183998092055898124828488662758661796769806294450163948988560297006398352192078246400845046253068241796441399948050476042804628377780617814509777790364357313490322340762126924154098907384831941249785077885627586947173841164806960662348691090570751653842096110597916550774567235213029420889063941184704092885838344496259972798739060213290630095165479437000617619478198385349839822826979147338835202587838443398534942617150643659198481809736966213842158196599453467670421727691065482334627961547300347592759542711246974119003034636838426442101190401102969863933785145245382260556954360093467473717768195996914683960697470186317246742246828417581064725047544904952851651890686854289471789841282092835374576874448498755851462881669447203845566099839102430700632091850731302817972689460501022159228301969744542894473733727161529399163710158001334899262908310826738489259521624686073455280390624086488356277759024867360007362611686549622210171356357187293038608159880156738696496928151719569342892837367643973254316727552262247658145904577984730062513568880434046538736586122962309996904482347873331316605060943253372972445382234241765268172968713762271560767417934523820781429848389647875273824149525192850435535513899452628448587980932163614491012891297636056363842230311364240024371334314864088657370909803084364473568331237646828849101609667981159420055043047699286664514327148814568121029460566160030429193194880030577249427387165712145019338912587865787288817908544234531642587999970690853126255578153672778587882086979469101029601863244474976932455563601334715433454197119222934449334972417647969770089308020495080449869286352732902986941407213477863539578272463656749226608392371088872688461826292597589342674352731581387972736401680232784635248987956989792819761122029665643580366389148536120732972450767431152446102337223743913713052774437301096707756636642567002219134652175725537103598384043892981115745417697812304505055642014061866547680817585945110332921414146824330400424210402054880675905349275051523663809646099674972431034028289545487263897570647357517135436213387816010157362311109571415391941853336803591051852818419525820353370531016493250611663281410744841194984423746046973775289572881748745572978782757539056039991481973625268441539488685783314305029687739894038617872235122442505485680155964543020509758150710950794262868305436624919339841782541814286563449670387412793122485732134564983597233912452079318222357073304702049485636059789275902895596024779271662431778870005590417363265410663032574839936709708349067732394677000168660510940417078602591920214426782387438798299998803649249434779041528750870999903754024271436626383278505928767392731383750416712955593390030356290905697236095221514507541679501402507292843578142224966413223429056562115662652173553115116483980379734783239757907624077028918957897616084016352473529051144621766615254382910344862434668551903301566694029702343023432975700074804886228961864603631562046825667120475956187911226124856083923774896856457546806795782109816132730043621228365011784604366930892943093758497250138092301033675785410706657566530864567026672313148524517241113095158580890805354884204503666516308776492687787606233690520731923857080326745381763175321073344120477449449533737111377260556350236446854783211083259583769969477408643551924104646159295596772164950821526721371075631121363649614854103973966760814528276360496022410642209102285439252152937137513447110775149149342634937951471553692692451291934829321465359524436637904356731392878165618292964240634603886454892571629875332042159848200088312945585942442378055132053836205390791655269101038039254674099801608536715839485537558266033473013577279438777374416338896138840241383896454707471999105574863055505468359988581624252267972283472637370334579582152137677766579259449333809611972790815512741133524449985129001329787081916180897979781644935196328143327782216307693553162463378638524596756023882927765447164347888759144989915827586865924380171684804993182380391320462717876185907285150119376404669476236041443237554950761039628913839920079978913751254251899901078492377148354702103228010049029804272864327055421034012119472325271363940864628593002737524352998245948723155656985560437215864844328625764701300239460723495719693092383332555767741051618583774465255342961116808335188224722676136529029670501560209346379759259016168442363674117585076605269585895246960894643972259059886549775250391777503943576632210286331962217858642712045678189854246766620174970224132058778775686910349383115136031531242280739946689438689139702952865361117486362134191952054321390533236281380698827008764756316433334277575492510546309720136459925176269076767697734689136432763790638234650840214678283768958564951913908984576126278840209790825284559558291685613694713163357640081988820901118796265277778836603887702619851299592159726879614922043578654937607341882646625962249068519466397588081370188074793973591465690906646474520477569268489359034392257083725985310073538874462911022584267273784854468102437446023033553434652319537322550578551810844715245375341804380250267803522854084085569236748956663839733318119128285860929184649725264959259604399065341864989515353182778661495937693903805306318324504970256983611806464557928043611831273692867481205247173353285788912367769971234453973401233085041754125743216788254369611398183286711941331974721434851976820997598016842752357702093007071298086711697159047433733342622503931311881465102420061883988693322937108498690157575292532512315257683529111323527149995510657183360018747625309145470190614153656037679019636301966567551708957942877519748665507605829675354768973048112900403756013817300772788864338785168042250434794264579304145509824646740441409715923667192024398514075196823447387934746860616351319452869728618969253120948442149594098452296441138958217466528167247958394957559566295138783190790161610593920090410042425135204600522162097239126595792191346446237496493476945914317171212486588037900715305599749895192367331465822606202497372066854620064429825829486086588761910045975611971792747099585979781006600273111910843143080486727225568311988779155544703053438327065285111084979201075592269247977145784128523695605910294188084606010098496882047010504853070333658292334763855180506904579224356934275731872041020708805844413502189635224623788783316507487217383346183989404486154775987098287103392769853774528867311691937157467388389206780969629912265247603829143546860709375153992668937640524807450731278195617174973537014201598984714174647217774141073649321289645639002407401377756108987141259318575679716978066191427871885308589573942642945826017120859700229455302414637796228984489175680547921397106332840007956339819939817498024583896626370144029882726353730769421600836309858203831651024954066708240485138127571629341789780019499905444899070825175358893379167049311393522795615900256118479433982004531191689857265376482935389538814011785659322127138797159147840786156755563263249457090419471905771591173739623725130835787090939139435221079864285672613250351470299198848457258059201614909032703064574013582971967196387679921535514521488544892692277216962986312196676847086134345549796661374715779096018906789675623549050128713532312874357352653443908333879629892654582321156561606174078309142986369742824857109689016966944538613683479386124026035408940196880239686535266218294774851390675978004073343714431387176808868473913333998413639718590409349238640514413434062277128767441073572394086149550765498769977584713397131058526174538105736245383793464029847885152139364907264595817424619680452780395849306361054506246332837256120510400890077258251033292375931486054919198341691816958970651826971129038417430824257084394683934881948489120837850806672245203737492781165499725206559133512315852010603952320641215184779453558918180436316002206336875631228480447627277340811854149159382590216724390332634203412863321531373195758083088493483878169688362267495668239384367556160592435357428202508749761924470549677463820077668628518229052209132310663421953510912602198834718728095637886366112141388657390801437916616306547940304638450844768000763304952764931072866134463426789924789121674006961240665612096111530856124683407565289252487410067580441079344153138734897528833491724040283956410524436614565802296004999295823092429357129217036289047902645929680630215326916890336122286432409940826698386567758560672552908742182490304615271274394925379440820303292843470004285129192094520055410536036990056556028525830846089770518441815757008954082663459165632554713989987700344042127228727663309165918184764540570917211558015123545865299974976179498405882125847987402490665912321621670323421096936312621743055792929083520742190233391345697410818615158978091129633055800448223220708818446084072197812185676085135514794507122542407359073005675794883196795832958978778273123527672877179024074199958523369387440335201114941815574878346165014679744949896259608923481079287364101180235460594657602717127435409127127372341231058414361044011309946553948076372868219685265708214024857000832553603432335955375215621900759903212970890230107306366843593275969969041454038219315448593342845801260724629648622841306361595195654343140438073855809959729466044976041980896815349999417421436121897430214733066995691480525268121261518214761462817481298807963368848188650278197992846695984858559861576880838375883565795344814006076992766759426356426866970786159421621838877488936656228509806110324528347838543394917984831214442009473783595267814094152906736542288698593669252483207042840420624717133421579810898735531727617915360267063780587034150941327729012552584910662005764806143648227549043173956087796980255685279363549149940842959114039065925100395326589344323237550322183558927166253151756859538579573400773585735789258732844150807940284867811893861637014428581581264970757466658267242362090490622873815924848171188291955109384816759110035871042532026388268587286170428733393925650493766422799213954612801552077718674492003644111014133554641623197362121090188228213319816719921374519143895737789418017034901653120989820496415401853866915084773461127821913169317157688329316151322035748072130770451581300809620990110559741637964019898447554806633850671841259668622594842050292999373603899401256263243605665668019906661949635316597540143707821436138658484283210920516205428878118015243944195193803677993699932412496648228592243405972221247280019823929817229790044377005403176056297842048534466536767405087141542258819603488718021776340026283576419834925307336046773173016346588966866843693607426484216998627621725857376812479758267445440633662550080387077892470144201251782660002411807060560964978404569378630829210116066885644388923942029801585933801902432569665070231033547870370361452354981139429857395339633192571138497322775454493718520833213759868462574110934760067290796154143142338699650795884638557520229344095485691841655443150886109164632145594829979943039359026495228095891683824954258152770853519478470850574085919591911726022047309253372165978798805993489242290094117377822974410136114935490103836060828187421986259664149817467437937895079010798123098800742624781884367944190829377194972124920473411410310704819557705445443173333581961190201294953729654209627275997111100159876614160144816846208744108833134886590672351319702722267165757971358202185715270525657992628766125756783021441233551444593867166671374935576387886780866184456608508301455363661823338147102672551875012820885264019988212353851600196725847615572312795113691272113726707652792044385346198673139225677426521785872998138986402281965015287939879891659817606049430829249904073034313184714332340831314409430755700994713280687871839681065599736177677884987430291041522367631320999558897923180015461105020901912645721541850677906565712418711231502738785835268157845773052013320807008207995388173878149800846531633670416945336989181556953281067814102010506050614315919593477286208157464626484122031781302706027163401695232554526622318174584027449404959037582519787537663266482806547053597914819909923702107883883189061251522258466079864718500944473514279204943691977531777209611035190349821032577825897653541021097007552003363737477028019940786649381089750389568292471756552234887699862023568683172221351677219011273999890322032348849034402175470416995231812865131607326882637265982116065207341453397250038636331164666928363117299476394570685624103220848530501434970814819222383992415417385987298751330441807517010510120812124577523825916808709696559046128162201021492882039835109766111401723620977161934874388507184786008048204877077685629463003394705645782852886764498983465518250578034460716655702166054059436883997316803495158679129377649476353557857578069262561783129086478742788587610746838885686351053332621885556213417764439016533595436702734516781885014608125882194788980452547822868356353393176388366999803362675833655355950301489052386186773100294657318050043099509063524316120512801907037663436988305407434072586052471432328216505341736119206674503420807952966410504033653698288726615697447217623233769746528488413361983352727623676207623107213513355985774602064777524876105317696198852294523417592542377486613937725025693836447949572144700761571178417774093317276295747485160040221145552941113634137356465235342440570427516336640847892127173595459068963520772859472648154495821723065990941307528622873729905848653092112484729748239402606934275087119569531168439961856178449805971664600476591229839112470161324467526994743974109394146211099096308105447683046450437438556980108756604867308768617058219482865575003463836067134763224419681640974788898174103199495895707730177699281698212025376122122184356035819970845210795863701479888734442995732349454850503427104040687094970902841302070959269509502191877281304600829630581917752085379197669591385342372426856980870762702895560909696209319127077673243482144815806415195837050609827092013966195039641725841065776428994395646328021043869518857320980991493423031568262735126767402268792971213500994763768104647097039259224097195898345826040962455986848900066647598287524949196639217677993381540474719908423377821505588620942240253269246458296309910867965958121774595285125198287800808407515404549524606422055767201436486191311878031692093067054986241576083797721307866101938013926437724091408706898582548078169387767513748334775865255961880820497806132948362708138797337748727909982635150341417356354168279114576761386634942935075746390765803623784052493549368378092817269353650568349416570874347040887879343399431046873219589101627270584925837623746388790001488645629166736879649794691119179376637006072374773853142985781041724109328318310495356607048870692603939316220650996051077040187562555666619059010036324304579379154812002103187307388864600162664473241161791771114581588774108307414435380632443393235469142664481791421720347342166737106269877861770245708226990110603855879475431794798517930032823294230998479830799645472688074439430212931502989035068807162813913032711969809758286539142472696547916298226568432761936456247571696038938101412592217891768138479530502866288346505042585526463179691727353350740216976898322135639446436150414435412733708206174393400851303665995267687019669636550858848834706285422316474268082973524318729357040812409125915059153673367749931223640968252252858695160166020664543612514127130644696047953826944171291701673559581971566521408000917846954964425002813252952559504298978099619704285296274844956619131351403940481193465646135983524505338203127965301269778278486356058152382180536946951849152647835905588424933650227315311896326041005498983881931038911163867098133684455548903631931381416883727023910397315249791044754499612116895831100371834060226056671061918308874276632823992384905035994505094550505643735546023019419682282155013086227161147163849301986538974103926748522661263189116054318363425274533028475810126996958000465817976724923686217284183290630545072884648147417425814622532925920661114992818245147483500432310797990189506405175244873658372615379737721129062382244992195122502261861513239887888339025917752582461247058124949143074084915449045416684010272734465411502009925920420691013063229865368710237220021771357966824399662646829040023205268160032188608476055633044304726046638127103064728349127965068049408861196582357753368396173502320540153044161619805872240872307085118956584915562984396590717027752103759929114375635105669081555567472040896653911278271422114628510500601416453225742964843291265752096942512896421581570894871366587809822867228123477794573239901899658214340429418917611490613409119444733318056300476790785180069679945279673691391847289858090067753084378606402715119740339631132654377567142375001035992012972369031030679225571595801577806994113089973227774067856264951434713607027220468460534035977841375810585266147724290751936260608105203085809484564242423620152231687414241080533908662533335716132158895883021718733239433378524448553879260757161817861045664364790711548030081939731278937267124312842630433664510875136920618577484483746029932996059221088433032854298989279846250364431082594942276397444484914547208924292170123323683580937697388681534870211583825542856426697844019084819359004046276048931413677411247986442473993758081948996078574918535368685103015053858576292069687802413524942320042700019368268034839538657915053324126737632033580781882060965207298343698386105745162791804059056157608954883260639257280159709620039429214427077778914479934674398893823444794051427738951221040471263080153318091962636547623765548603549553524946344182300580749062449118887103173445012603813499331676470874436160753208036951561179866762372171482224840430389872259728989791558148760658777992900502157943373297629714051217248977530608919674657537065141114668542082986168877141034357346530889068095332346065150098871494039455827494528925550808072523961892706959722004639387349820725068941441203293944731880037881799277118417430607811238266658706574861901764750111489312974754503847061862238318849863410720301378385905581300393314607732099913645917369279646876207208048970151931774321138356247445444243354080542120105097051035991725015360265349363193493480053361883599570893069721112777656125376646136548556367441152056323975119176617874074916339973146240983604660716982691648044006761267823276963977210933188797052101818911506524072441283771863191395916614722962836524740958720557376086225810355462799295023373133935822808436098815224237376317988995981723506466455936899350474233212182605215904058785547685227861562357985077303815319512153258664317775756855243316286459009090401126451256602456618473562870305492796112418739427114773082763317199960266268134371149751749296553902637136946335193907704187800414390362098356972051407476273761601180351617755350213549539012240151420978014260045442261856410019895563284932738134352721465438108852921410088966793970909750813072066161185629471588649087773469972021842885650089053787663978671500341158134910783074931860733705531784641364300745988730484186395124263266769149923705800510766770559333199146899802151981082162421435656659954300516372790345129091505132477457000193537706939181524813088664806219440533500782967200764988540582895917904424826599832283456859810020057288574045005840930023271823166320185580995849421447783632502052097189532098248383660013541773391884862220004823087507313642223582736143190841436558193591831667404205553480680077107717905780744445699090110478290653813275580710518579523177159988996846570838158686620879197213092904035758189357728114161382851482947721303566546616119550075719796140621137389309369133787864463912934132826427550230657568789673945046507903237131668715370692274171160022807866460143089992419568041515380971697187781602684039565818099613946571501024903917266453350121053518589912896769093885100970475913652503988418291844533360933455734006893775511814894896193285693722928071636020286612299574141616129807744118936622069929172736903137615282956478092244686829180185429209418861245176670290038043034606616195338720553349683216167140569511155209739771337933840158823693344617358986595620475636401720807926123958446809590279447563489888526825654598251551231946300578703838334119539566474728475242078964596382755788120688616234361097810481469350513609721617995291069796250710977688501958911534990902420172919835853005567541229403948950413728380136066072316008767650474901110694912510401805870215743667597151993219499773027237536604576676184503930476534252947657132817957614089974468588007681455101231667349906266137840650350860657758296664571797464019742291812762303488525146129515736896171672411161613591747119505667305233534650124492932729575233873342090654537005224970924477003861769404483672831515192432443042866959421050504251711714538241771330358972341826146529341255122687287044753564012048255480951125025407059299975097781298593348151827380293295918393683666662418917189445349466223235747476481989612596657546033355357532676956478918036873284765847245255826466607977011998416472835099595597766036414322808997712892857482695151063048579172624648688020170710897833928216927578451476951410958900174432087211131153131792821275376512592486546669944012806746289940046303408397144491824743410196279986064204345015250340758595906005398266266551766025640971011018849892449655103892952062339240802344982492538049567402027287639741156624970813891041035687441727014702823559640349445154418228285331136487083231855073227494074419651614113036528912601399085224311952336401669678036629285407464517557718672846645359328348249910825064200526400968448546891547168844760560279921135827806210673867200955569109816554483554847491297319800186415372682048956776226293209510726693826735999644548118151591355431145859278505508001891394394700736107349108568448089790959862762654958400283716011663381418187278243124043613021266367486912264370185812484031853108669584060399408812653731140639646476439433079852332366188033106173230603059949123898919982581696561976571517415668203509264441486189133497705330720336893432904993672988740036180422250598852696345180261514476934173126575742572080084515280591055019593866010313315891635221655838486734066066869177286972800289734641942373760435698433943665044289666455451589748996942232389741163463037927508168848658893623514130717842889315941110615617821354757937591837404875969634935705691221653527140049591145977490853256454172365638037216580088734341333608623549862031156893491632062645890723538547216588386281450716701546945768008968667750552036491376362326335798374119947692312647233557366904489420566214738814724455053385779145200419680018229545327381543963771198677599127844535960144075412354501506935680422002891472845729015474831529273898863236578311824606685661463538132706332899986689528496920348711022596775466276005554389191169057127825653226414139106356898131770513344398621698032044424125317362110184393486381739455839420615501449563626702707305580550838875832689599209957372598793927592702763675286562459118200619261895557086439903826845151905390640656700587927100067054749406565156295366146631892458387404337957411794505265311078268278381807624808927625472529200716491820725936763790618188570754991510252939929770460438100343402584149370203191027132663261422585712065810961153030727304075417601631790298016637000726783903701945766426350782522167550382462791374359826759869540321492158576151411013101018673510613305346462457342148235431397887048333996699289291029997005556093300411369149513359167526447163291378206426881986260044076588979774014943702778537203063643149205952729306033286541545074304790830959939878678194824796048507750247299035950908470235735505907760115374524859993452288857537843201531766208627348217756714634901984068922867903549357011261866749301616634175565709543700826156211845321162919285702720035459583377764622465066475864783009183718102224562571777903888726471792755562785915667521373676049283886589031530440467019953120123038279719522003594415615905187241342080790084942117208226403322252508209009325662796611665098208188280436725084244873347155955414475294769964335000437712840511626089440694150280994574019537767671614601189230494929384493792177375819792664783676466056956068762720790159602676915652798680614190676447061112239122521663936769233882036168057164108267499612899340575599903513421075014521026663817097840394003086468479084110825750232725791494413274381835452986599221181637554703241943981570348026772945055891708169448057931060113627040891227055965836349212296627840835533855528581656179744832763405139524469691805914354742433578018631588292346881686102826949740949975016992518941583312739277563805354324122226612949604393221187241594053277938148925642525059390876820709535860503209630735893036581403878102166102108267450322784504392144714151238921576738061955287703193318881908805747601032509055491432083682076417664384517538167203491379472332996368836523455482813789336844298412547413206502548056437930651580213402193037285860099111782191974212283885464574045603239006746097182252107263170584468364159832784299366587128846218928039030618313328345683534120414943779643814724567324774664882529595044502193777353950318612727813649899298513859445564964700903529887369086032904249115126159009663658505382876453931087045572842184378324518213628106915690381091233146850727362129234747266114447919668286310965390025160928946252085556837142874387514497859613588203372350401754994560642032097215909611944383045836671698609766716249324385030720143488256574954246830296499066631247171268980496062094404879713993021727220914164976731583458980360063520008767592997273163950425644910367625656940650207391507496513834823586914800291466134731162439387952761726820584808977176475048159303960716770870952400070102853897565365872976258123202376119929041826648299767125185999704828868235932380620818949769828629261028815289121925751360429823005204368460517464591585844656085660679342754143685387785946591355181878336025345821700679399601641878162012315290952959780050089501479711496997884753621484936709123341843400227713791912001607636973354279554762374802440824133974420225589124490474219703104833560534521292390856224277429648686070122647103577197221847603143477984854074224431922215929080203712458914713151730999233914445437993467193570219247005210598484356171000230887747202546438745386018158521457355412165281334128927206276477613154597949124245870485390775838671631696326546283526417253651916762371552888687756757389232977678350067652465984294683666013070327118259145739043019411534352994183525942823944255909668711785309017748072289293567034079950203510282617290654957050494419814471709000912866867215215460367729073184296000242289773829587662364605942984772605613542217707173067662428186323586348575638655032316301265124301950489388971398930495927371142990874876528863922852614283442996894706147305105925898648011910516960711021481701865918832145636808778078401330162868845435198208121191572053360388720913053026498495803232195904529992410417354154372985365333883349652557427837219197208333262895009553271375576683194788689272864894971728819278381266631228802785940297843327951613874104011552192506707326200596922450107284788166100469169298284683805603631455116232454256142471266092828624769672020142434426416653267779827564369576731792973043621954179088297311599538711828058480007076034296219146065306890440539289869123842785795586696742656825019754008408235690439055790664903393511674051767255817150800649961782614640924196235220530237396765627811471453267695668264238484032303027358634914391851132207481965854056951107323404555594036306951826965460776246300461106461360726627055383682950796985578177250991628737611665905783403073398584049569021348586452620267999878126412159947530665325104957314161947353626290344181609794971108934393559805149311248041513456910140265799650849248953383606951421745512239691386031941483280800495662494588502644209330485747687349715526027579568050782480162693756175439495442721401304953548154660439522584983941340597485757722092360282881771906969261808863826195745300315729464082719540096890242120442757078062217632219784691599881124077175852290648339805445101805492396316287288836367060176665510525988198564736392813736571118458844642974622713955186727905567044283089259587115666516124627627950076020195770121717386049925362121272561626358613771241874008582790447252260247648212481451641761193152156713068663840030688853095237014675043643537179095991789612364124823347432084880937786878221060507034588824426304453036026074483072960503390617394013838916580468214502840379146247735425596194358091072473666238063621954444007990892976406691634261168985384335976184760897194741978273466955978545367497941906439193428702009339094211493283668462938913967147634459063504906836594853423631972657661980405153318477228575929547896086572649625277719704871756811739554455141493704793176638036179779190869746636734195507062283504147746014137356814225798178411656389566373781966429650047533686066657119387564497473276991249838471946381995153839228464019967798183854300612127549468546475016762495666769516760936843997004671401854669673810305953046352379423486795160005038035569676513407872759599301083434404039523152712679318467718264781296086754527085095299850762395102117470588518136764282486526951819268646606552714854019636584210541059268695249134458521689333702446951019205682553620694244086519284990506412059797294786342841861795401223426778367051638137575098433938445181619690925591435874424607452593656313647726165087619298391233237120553760910724831720493916446745917474446065821887952340118434636211809532352147513703854114040568319649959598291530404980396442541789567520648701072014000938733890280571738806765756413460096269018904186017287903905445517297603745456175828026538997808829990373753333053128481507139690275458683462380982179223527885879310826995452309409513572283531273046402595548647218342078827105855833936440387298604585373828153878833978610728285197422982909240512634582767750195479953641057915790294889945786387345682313239340491368976770076066619786747731810806477941845075409708966990041143206224211874850770787084781986517315267373318036523682910068916872351729631570824240644267920172858772471769143135468423992502021767474972090252459732309846209119476856534551952560743717918552806445588624673427404102529941487260157235294709759430735274284430484141856311621946863064994413547715890373267872889021790297714379919954204458765764774676984362782338788655761313672446915873680743396716754916308916545740740470253713982710686214761388418356442355435897929195459902250877080271994479206108834243827721129398631167574586160231286860110027762950016221150499858945204255097613218786026465101056844610569616748774599624358089805675499268773420064123337681301359883280861279405302060527458224628677416636669231217472718570228752697347662589767243130035887400677830728291947047634256572123547683918037886533787141857391861171435683201448631107749781729492865956635496033316255138728157690234660602075421933574090656987019492705879868118605388398312228650719500228890965242964284325203634361081470308941681026328624198045337370617063109821414358983798108362871595272826580465030493977753779545601308921742911666104837720495242619805544754263957069830706550137147122943385588944078329234221004615521403419937910081512748111642778274324328810880227530917866447248256213533992306428719625565620811219490768299540233663498855890424120400591606609845192573701854862193647772096737567675005300748488947651602290814421775713597788458377250928762369848650967896131006729962541132108008936861988562083855497830535342188030545636805237211386803892622973619356661635440844216688094450353089568826158154631062228010267213710260675936274776053083396398319053341165918327643645095864314748959130132441987413770832745100918452258213698516998283279472961903431530847594661625936560769812143608406442691186285742320100661850063106737012252614304362634479134371339314217927336586893431536663253387683038149069037223055653921910359487256698396966788533083113644274116618922098312439423590982458162767709677581755590424339776392081185826101940967122807715371623002950460555521261503943080522818398924945369639186793737380838910051715109409477644935514596270174191210854141547333467975351826113304728011519067018678631725638202405449238487779938652103727710422437232339370330130644217551364444371624438318529236977483910136819510776401398780186357796110947598115534851198462610460191799436048074055678360364531744988506625305421318289525126912931441648558568793276043163591018995018012225806060061594648198538143712051167445042889234534983239659479215837891386236205072889755510632254348838123754737743195808848486474546471721473037547812105782868975341120252170180298220478857839077665507621236023956825800494537536776510580081973268769012229399130344378581860449046945972824583879946349717687934954807625272969075301394820668356534856847317681690081131419887999954408031352075045659359459035656067178723881736827478251332357106686471147302419083246999187963683528449710872222932849835433543998354884807765662422879768900204874488465427159134458894640129034044376464782309197503651624803646005665386853367755802504490299173230793687757405861513647229615998692310938607026593151142493964936073727801851887115481861110907462142438785362656714044998887866021257670778821966988631503416731671412734801798634914066058407664598213996866306385802593339095853268424144868444907930549741480875722517053756218228685303315761213063850147608552924624204184619155884304780291316775535200460473057551956692130603809262325023592725950221042211086085739567788876912556476791503377582026239669199633936082709737686120763049590128815181466125710483715804888377172253409655463178188561352972350176875379917933512350617711402270242619099741910039683843604101721935267812995767795095748402770945996306945883517115764900250882871166544773166941849766900808357704112916172838237351980399131568065240915991250048008109678019431366009288935684113782451515813555093870666037024158332643357679352303158996955692096471170731236495249705713203995498778703094331413027414529269668718833161609484139041928697574164365884450540719333240251868518882128523736545941023769290491348970989949864013375036088274126220389009488316054064415618913953683422389483267511446101730099877835404101480019519909763219151734028530643166459015635257031847156030428311786329021934965455993014276690134241466591716476259870209160310990175410416984841288512310833118886112135882934647480727517070237336966740462074066809638497555527689505066913815504848860771111362734205977631808852322307076813422344253988704922485925184485693809570318317860008515848190341821810120399810896809211683956713196089551512696494220234740471947999424935383966352479278542269572356921493049457318909768984499244640733841226710008561699394633011806548165206975796850098385810888075561123468074069296605735618824850318643491505070686083600536684745899933165155985420176287409274360115716029075904310661441229361776507155353629365731081196232773662851120343170584239444881800942825868730794457336874255960070478472273048562927816385422047110923053767105903384635164525825850938720296085770899806917115519122922845613450160896945367847797504253081224643866808438773479338144556633585919244099041896070896052401684566693127259952201850548750413361830630614555175581600355427280957448348139065042172942343851717045001476905332689604193354182747695683093967023222738120318681951027073002852922718911834685529606127290555414867077444906932333500600414737981536565662855471171749899771409901395379568850943064888355410585305116111556196844819368492682240777064243071209975937966956865592908148300886160982415447517371189104997072454875837994214838005338881409961811228307588698991436494029789987762078364970569587371092442746245217274449756579449130231670247352156725268411729907412770624327806900747342772423629278315122095630464231440043817975592731709584684566621832230766895774322418486202470887450601359269455200153273765562423810793043971077970384164048128044855299595378855030314882666157954813348032668170147975557534130696698574263901583026080605961540336927201482505716089085639047536344928177966068614865549120997260784851054948362025986205926982312732746311470617127309404130115470062919212080290202843696237737266598391173697294829296474546997850661219032096841088839938093790728780902388407242359071309572458342208754075504707446331113519769212719753891760620556798638493978630927314501019957337944582298886438794826241068863023999675373285126978137808046855623953515520130254158749769921980287093818587808056548150367333676087344566031209228980860900440106327811973922902378724533903204190714645447059494512209628681765240561275512707028608936936830810587916269835251215875664424452061754863355856163814809805690713203262732974828931615235252127624959678727489603795096753043017447187224397679307791844889849164605853001088711551446495281985058511759897053676700220733805727088202604102243704648762434537977710206600845164330007027128104750397218798409393177261499002192768357424714201944411237587769382226991065310511047531510583783376238684601978035444677959931371876304520505464802861047177396763240106633956125471432816616537150156072804853381705408450961956843156589743782073398017925166244976119888639035297682686362003008913051290073438688946266703594285083775472805776349747180545703658963782280515843354987776380785967661862187786991491583509853678443089428507350768590939145587422811651042247820963644497817781725049370174047867063043313360897932231487743961070778252975672229619927802571059631807269066681088482239037453004301288128551911184570862606270427198054226319234915697417546769073892018429788810221905990446258445263789836510577260205489585717572129490907257898106617592568619610908289663652510837978305480603235716583173656901439764813501934269156336569668795458465509628273925303817141369620462672931583758222666004605839609962649879534977537887991306439110900034311667825487371758756009330453243478528677146441583494637867620144011602707199740542074727989578112069916239621317635200347112465234984866263058857843660791454365158922804491606353840066796820250610957338556982287081790995511849882660121448810766363374338598232868695735519837130433669849009309602882938422682331870879389980253496092433910956057806051531441678421638815845658117521003410269297603691583133059061746021977342980346645264149123787197764570187572359607765109903076692672739841656281717627346418955838065483416472832117620302588449848517049659781371626227859208478575082743920256477581148069002393612898358257552335339070301410633707272107189679182925351548978515663061178017878940725477589778198282242752151204921360897373634469450606195730471060653416951058244428547475279080641542615015223405587529119924824273773860054543386051328345122684936240191656015709200148200449519346760807371811377227851986617114838686450010009820218012430064907136814993303849665220197758392430060772248161736049788056203577879758971443112774857094719392858400822763129679615116545023488159956762951166074740067893301915509124383612999344583550942121472814185867115361246604620392316735566288840276546008585051684282495383824377980671765163269755278767770557909772172015046981763319745992696206723383552614999117974107368359330502181863597100246666557231580360021398580805230076158932869692686532420387095444628120165463667398648733063434848751577642505798374246970927161350453049319923440432649375855623157251069681377838922018449183427875769976659349582213803882657774435631465734749984394876060471106799133413912424355678808531346515631035379113438875380291001843248655216489095903156941308467861578260044986411566797042523255700609692873832882364348979548214053287181479755446098262654767297413712344790163302813538783249756083187321534694422452842035864136166982412468435870773172105650183430804619971331605035437828249942455061156647407665002377072473302442696974465870300525008311665657442022670306734105933691426573601604335341580991947113117665403765617994526095269812568347174760885035841082222352766953780794823277320912020165610121202215392953758958734129144415774961683390946465496925843224083463596566582492831633520714595659805113639351155655665328334134329891037615221253914147085892793621607094355854472510491541442891194732010705833871952707927867901585359425133953592267987769406659482792042999711501973343817444573749606460540350488212914174428651439683041708750187127651782620729017821697552295617273155272855344995853703424711554308616670253651335314253083135755508499900739285374309211360138289638354794445354175021946799236685732075576691648791740041713604030883987353985747922054683900900344793626290991136902970575068742958272899314399089149855079953413229698761517233298815073209380232070950161593594437703824545180711187187815100772885397359825794893014348594108009823345984731805155413467441274525568086050717196007574428208045942766085180200222529122679529525773138337856670878966518379315289513653090906934048047151966539033705246766025755730012277813293467816974077118386740143996117017950605331270626485251152956660202420957695985232484182842141308535409395612484763135714122615321058016330282460489090989322268166512378417158295032934866540501790320871345841936721708680311244709831055465505555960166238293968658947279487082862735214985818853998266582218431033412841903283288226326165889668507990083303942893377062139192501933957515660390190093025347506096698993492329877397038693315138968499123426587977897420646745069556673084330881870558544268461920354359565504266523868386565371138048004628911125464828461836085959764913679871103111468484527523967525144822268092045603749184018349877273704615731874664384590208657672859469341115574368926553243373997599398579860699004525380422962606576505407686087641886342110276626711882585736617125417665532688841128102979779843775833414468468437153787611494946681219468798430203359086514798618562470788010874477540577817127217604436263459352557458563504181588362662419176554279961766975149791143332999554414481167994448472495589455491207505662124491350467205782958302465897676938716546019580549675112118975592917702750069025149428394439243488215374542360013105531454648672159591906616098509021006316653342805793418533825393886103519683087886089059982023923811712921015139589542088660683931760379530463835985167154335765654535814347842476011739764103690546750192074649519734447894459948365324802968652959769648696176985289163969746566509769332133528272337560656746583463734419010807623340627369916785994193674863828139568573654143004384397020592026400411455283771283078345065957968440382902579282410980276151398015368431471333679270684031273096753439529592481305819467248494615738214198760845199784558258154932544730468545209352089157124466800484503841503602811491378241916358738813186788912910030246714991562958262643596372485671777978751997697578524445610589853683740575980259025924775968520403376277709467271495114742766478395228688137847953657701141100374684013164383790191203744588224569153741163595530277216929807021258688608469539671165820985762011904907993259383148032085604138480526835874894731247635918429532340374516022565120657667010714694708922578588426972445117634748071225128238753110146222466945996763488517487460863839133549132850814693923994012983402737039753339926737564500168655054112172212070182607573617070835185891072968654861962824538407342264657543854453297997083079646285261710056156721608491003415533020275876043173260846691458354065368987305960240354233426612557705395226725552599794685583479596212615285389257532927297890810786123859504964178252153136821517606828803357715420992870420193280291406414278073255982730471509922764454760381291839984194302802454198306364604489850750720759925627907962169177000428376960958425527710959913658293019652920386293684447902455871361211673544367490514440449558175955074070777549674926581058206663081726636647499792243575342276111179056391378689950438729160116906728983467204878101545076708152029342998662950216980986174901282043886124463277995116837260258243553290383855996815674478285869570797957300408817620186590297883130871645527897950939285731880166234288490818688094217283321863397466143965551667428899892209741940905546663574725489467907596092175550918709121001397828434312152168151742294139486867871427147797014766125886644043351377392134080039481409898310799701630788875548541857511971450497368961350343074211154510744740518037548610161780335980259226442630913553642425819262385149385145620784541196721269323371691338903916681145869239996267837907635901513709043499415038295132148689179168961542084100783558067629299113806285890609694013110215395424052645912497408697932900511592281990324021348260176930367496573550554378392821423711678274311023091769358385028161682612970554618935771519037996934968712163080281340296226050116010206061280797999770629593024216095920834940818799250098361102619224942923483126211723519886542908432802643804026608945153142217490967471285780315928508776969676508384700311961249674300962310644332906874233710357997974160099516145921891095393673861235734753299073490920763476199638907041119084874634388145245351679369766329668517687794158388510206110451822033453920594997141433439125653414019125876799882728859511991578496626591566662552979361761594240938568956860540173400758529792543893889901021968981796542823266008160763181421804267911586631003081310497504647778926763589473973135291563727692205175241370681813860403897557539073157195979202389454923882848659475746102499207263194416594225238408486125693340482453256970036220585702371489569370117540978862858294143572272978070716030190631635481685648783163827003878565941030527627399194975850951414059629257596437139598548311546297616768602544483814111470669708317395841131987453526568839286504388990583094120374285122925014844334620905995716185347735325980354985490151198564345546852151372439239101962378440557900959898128914266135047430986961659548567219602552165892169652385287432175435924430954113520977112213979928548307986751173615902682448840842188988069020570553695305282644185020538223026905323123681857051330043764360493012496663345799371881187573331129484840218371874921064249989635324923197796370686781783965404885556232401102493335686994997374348656384267550968741969539924895474600292665651497561206028581552792247110981597031446645377975549845999009524011610655520887861196319584568910967783893524724104221108678983551376564398396966880361480459006390355688942332334519359049598083930439895036636315602824074806955216209787321321665060483058311109946361756115134301428764578759184319313774952985763357796186126283251653277155107690967170729060451854439570817754581152710769137384936531164550187435782017504592413214161440106631372552137427425470201951930958506648648660927132031890291382100985057747298898420305533247253493639679148655064697579507708084455870269140125037391277179183724395649889037667577029365265451166334327419444534271185796873769045562904654300554673034562193864893343624287455578108332043071919495321366301291631837435762426502659861796197684280070766077333675923573278367158557810725121265926772273219704238303376664470177161122482191960226012365154989574102514264312524077146626401862658542273837695971194013867177390561320871305671328945071034132855139428637605906635310453150554287527208491247513782444589263588058316495072427123995233914607504534337916090277384834223055183422903884836106349181890117916512338901814513435675228273729566632035196127354990599888474811053336705227869010547736584655730987753853345414281695021183403803451402755016122052303213570486818608999315007350519076879986089762542275486873465322095150185430672785495060323917627296908959866668111190631763788236509962031222050356607044253564252183534483607886903827770369882157855959553905292818887638494853529343066749710299105511042980492151181485030695209868229644379938248475416251302244913615933810697326342744458275287005780433958418078018196118777463232159526072820384635139618536585992462656279559608600992740465182818359243106870559499670291313957234405049416367521548620678348378984865207489696431300506676629733511610359364384610879646063455201292846213440848989881954780028367807916012063734428571037461659593197972217246142960173812274016429694894580629952131268652090624744945296843580099040621606536572387340649637851220330825001022184580894376340547731082427068228732965963046954229290257012793101376574076026491301647503857058550951962875718764540649426808243831485931934180334964479660202526582515282969607318070545147806607368291038937360698828094640420372288910746470150786069439490497002334730618444156084630888111284549205147822626739028661952764874401200721870157951920788939495042048303564467867907092473620050326994148489459287484171700897772400276768423272657016257761809349432834864769720777574975797658407334117874173533692982242241022090581548391631298432573511085790316913311858795622436795113905782257068976139054677866463236909735078794393265681468842034108592051740564066467065673384215338157222468765591722083045971654632015972153823155075612066659470252241660774383537487146331728692789525949618588288597579557363119717291883414749676448872503059303012945037833896085529017023511501102349747776570834221905605147805478783320447075060060639531033980336003963146613359736524409939664692468619871188282301032344109486974867524350478236044691372305838813283869018967906296731836925619084770364690153659244815687638207930961712650151765320538668353257041869220499473426573709972290488556854467995277908062216649924091484370052702821147863390912391725937763766684818307591207766982079329869202019459666460563219218101940129363461649249391558781313190976052367260434446022635615866399963276083374216944359276323036900079242364958799976104460746979245634377639806781455872812932409483473855662892787764367667237060670777535088563629460601058552657391936888717112086711366910986563129964382999071082909581735522882952356857953597882854135619311911861688787146494146938648032463963482050058164626083183124782514150405426756161427688329214524574530570083534462466683395685654234294198699923753328564284137680533912873756551418029875196579005269247972907143335373134451044146536002741771496658338613796958515454820384271072345275950453561553502378080564393449116405827540373619772294071688044397289811492785236990298864876236795508101954036704375120822324823421646436184773780835027553569527318811363255026476938951975643138061906644466554041890738032894376094356895547578927500490328541143438094587244886554448577056485995857684586166448530385187543774238907612070770868422714721722605440888488240783269544049867009089359625092751697270099983227165692410560131744310182008373087507618662440257311832065112463572634649743365970277772035257575409592641421396009809903695726261782171881501900428119961647174974976604452213034204772542238990422596346580834029117520912579156652924787942492333277915833991252929235103272135490964925796347872129776568148103768933669420098852930920317004353473270561101398539613942439422938595251937121719012451694913150558392717715303869427575873880700245202223817300274757682269659295908175493956012198985665003588281713048867396422227976157672715507701445353582772322001926480220382176046909255850291922813859630734813893409793099382909193040847894721322978245578995240914611851147176877090153371352385817193558066276165156326579907146745306111590615628113178819804859960844373972912205855967134105107513463260329441441265728720286892290141287397444489225706224232168680883882431893343374917535937160256774015073921419126231180884426928129213236706431530027676166683817571093315478293193960590530695122974889344984003247312505354856436899750411594789789624211818019606368392985923526821257754585825352829284576775953319413323306278704887165808149017082058158894034092058292816596777733704346805434922173182933303402515706484539130607087607499505753256226199597251905835294266259266924681656677870898793343511120837150370558148049563783105636911546138051103156441579899997932222096068537969068361842735256753954350584493978902591877639197424971272719612174298598173041786215700997780896181935361930408668570260723409672151160478083749470728488176508446129629292064239967931702693139165581991180430834606940414172855912082107850179335815224528700122815852865170728470907225273868846177570174408054063876373918625169604262099760955362076173219971045704781682043580635349079526301088396886686047229707420889207339467571447704394057211661939649147746606579032036197144869030968103793185074895828515182433389574164117992632671051064754990746421463638585276100866303975547711181157219331901971642036374407193933025729024329685244053869083034894568751540927406712850739287466892002513752734892075426244503189628426499399685821903732597325215920466286870116939171679846820002970706456597595593854229407048473022021022806537530506795187320383164717006837821583409547103144557836855541988957544409621904587076505233859794839885060641114500682104998741231989275262282232665798865346346175826241780297795551252790416755352390236103695485633698915337958321783230271066949397243343130409122286281722004663204775094149329604792244884829590564799240006478439329886337942285754622066935840895690118940236041626753849207768549676128746523132689930180068169091351825941137770231045121599447761587660957276075127806116037094434935988409609029074152828229471185012372389585428537634090050174105951876961234039643016359848093185060098682259638081156155080882666992692795694198697271397855733086770536510759475877522396397441024876388879014025084279735595673603656673510954865453809734421807960967742423422689340611511989120312982963860450135579110261200619183911820935609414700834786186548559882449775765808130025522975329372928113963846701425376101292041309697415564784876985105568547090131564011178125244124014089724886122882389673434441112705562796142458397540867233836621790536173572184347976913167732813017258593865841482974346961098629305124826901612373090592987925592071464856110456088991902950433590786060740747500838516108914885819905005125045473429059013550803162790518096911556900957954341673519359934167461680212932667271518281167146824495271688552321936664882565705938867806249207467930676426762817672711592003702579638162939218779166160098046798290934266073050555569353429838239808335153178634263985606710105497465346798243835027381594652654317866056583518477440290165609896408423026179797888257552340236515003122949842277533891239067135416103831661160536367200623970959844533850148942084229490175465462200374501188736959757593479490438828780996819051818637979657554298622716579811181689169925648685974748101756169627251245138464508013111535966027899927350035676466802255635503706697244370158237928276375082879473513145406435207562792444332524826626957374150244535075372150504336916085150954634683722126955439880198859167268848749880695530673186431883316364965224690804273125919419791558180745874756368007528207609659780789960010053835078370533492848890470195121194897676064802640696690767904887576358424296022776270802328418943801451711519531407745967977046162492381853574881138507744990123518516148995515926321041897945060768999217364087575857616538615417057520142430527831985891529703689662513684163755791561879671721767292956125330753553954449227259906808645228495463443598317781086778645084147858536927984876929984939652009443682389374843710698610018705054776968159653819786239446717110034716294700178840994422993047148539786025073094451929309635979668765530433909130636221171502839569646573954181364588539355056306128155002234040151962494388175784538554617812389475968974157247506386771286504420137537959802838946663180950851547103917185321221175009595421211668088752698782129869724369129287813152592476186673220493182270747097287501444659517108778395103120414380459378769815275865679270217711630089495689552033170692308363675758534214427502809102278531344951458105063807057162966023183216292720994491130578144593724227651043559706423224960440546490157453075601130339545381430538701260026680226911972426179457395788654139593307937529620737165579684644352310335687244234250074309214230297852355126043804881009798460027028303164820918420589211568352792841835397343048071987101614874250412676680541714902872417736136230142174517164300939665322359474248242025411438769136858182873545780664040288584572243124270959441720164546679308014013746600046718278709081553993426837678312294008011406015850309459340685278567523771302291629194323482154004977203871079097429881466071400591610874613821124584128502927250167890674659710664753336998858880033359139381451891105760810570891766117061838223010952245096720730755819797685424673001176522214074398044965320888595968197315235685031084727476348157388279704751245917016180470602206147690252413150147914601385308751251428624901053120655216652431486278855490151677921401507953177078572664992223556258823360485629039847289652431048449710124974567518030675501838983288942874362881910973907946154588076691110334662459539606070956041240810460137267488306679216072706766867177832482429511975159302322169640274682155333243450933841070664896300898600313928587161986379540494920054139174090339701338034557617989462194972820547023093862040841079539227441993771227616788749610945318316941259108072570686359275847784166855562925977190564553911529678652145477967107466533159514879574415315745413771993653436387783373122625362354802275648961121991840384672741115228605373094716277754676388646844273887766036130219770110135130674423761111733923542438553833139533709474189384279897364443653565030091734474011224803986500635049085638480721959504303308819147127851261533919945167445212307603801321274905974358363569373175225481300519523984687234007383859946991134960483256557628390000171194036860836571692511032828175253993007139522792713554994368144563350727779352669348697239089907385389195865634560571563630523146392329445147353490873929458350830172173870423613465760272340411250804336158283485379372213018421264055550604303842238800708750540706761182129498834756218729537984639420721769844881533023350578590397023706740972387757127620195498363463948672696616384567699173193614678969530909213001193809968805747221760736695398390969677799849408898174109638398901496744881119980034905889636373608601882233165345801244872781640814846710781270168286792829017906020252039722246607986772571786683217860857692442116267642883172681442177284583876519002876176157480549928778544653279525162969473244803284501888519953399558292820401749272382060923959639156034814455860157577229908432088492517405348354694417893160775972950497053949200713446772448560117854654763934252213662818755632730356076801859673770547226049153273692214193755517405814975838397478719273228848106810855686869737976830680422141330574504511248648921513768731604538656707455532822408688221639029966697911991810018827937802098583109374246362646932552241337094760871165418836079900422487749421082754603824693049748255175679984695180033094840557990056066977350969961917805645983040773637866717053140318358186757095790454267651638833088936805489103973147275060440012691206035859568621252280548818871923670493860461380024197006973082040704896540322900559593455795587003200985288499765296458242824825010859959863178861128379161163403106385817423980434424446982753631996640228334169628240479501667884972635202266858750361719604492355524053595771979284302036266630111841012655504116246986985119223130868970211308730590149278484442445014645057331542359928594367205533832798239194458116357104301751390899384016085353267752934711198425466061796129446574808485110499778018054019233088221467516113076252689519604363101913592912635253030300166148218352371839906485939288166725543011759592459842118736739840538823288958858806219608318085607786388543633612539777829074104413973174060393959102635281877226832892287030374263018891084953703997450201970457928664657131427973128698458476468975848546358802930350020026831438419424752347851303112182526954665327989766427211397395128332531924430193164258893088638255725349710561570120855784367610903867915604917527210832191414089669014616403597347858926469268194412923170192850774979128231452726477296618512415250509743406898934198220772996259686396973211457339518876315609900938035425524230082198882322215002047900135469104744918279103618781279008008044928996924132932832556286021939048491887685877360772897409900056095302066206660588635877322251192808289815067831605726866258442733759723275923081180106814505375900526142745395459763961567056161989291262421138867515611434351896400681585971831912254901092057238597665716811955144517874122495708710164349046124872189577807076225384616140974010816845160703896131322116891744224362445905445937933824876256293975758272584228645980656251268733980673152092156052586672975176713900742714646454140973915711535968353782289114505051681326668520604856895112269851023884583646910246610608066485745089536415480475755613748918037783539955236920764686979615053150310107984706478934471279176774887490860373529917833044714437860841951457666962412361736221711838959995956295408360884015584430125634464628450383067956540994962419023172465915516280409515472371785739827304388748922022120140885826641176992295883173443677864239759586218141270568598081498957948825310407366307055494575306935214952499922359193464807862981378239841777550849985017432317845638597703390550730444090582319200598968028736698078650175424311798048552762323705643381675092873846879223835976026750134105982370742723549055247901662446262241413150139420120080620146551647117265081046804794145685078708381336343811894292551298809941199457736804695959982147747070839501381993399957733795193704183695704230860368189540975462559441777515696861858816771685315720699950931088236348025310793265099867520834612936540323986385561579600199275814182815075111052491728464482339355338162535185829409734738569535260142628060494527013806124782448110619243448155778234157197510107266934904494409910558962904009871759156930089800051932840151896606527372043379338293900967607543696957655164131109801015530239123738190245092107637094931786756401816403410209296219296635394970540806354753383273431547165082805948998071682199169130125415485706030607602268220846444917428109610758289323686345461277861878997404576906500089239246503830164773500509810333568605839351953658010349370180069198529252740562414700694636267280809668875770481270175986331442932829035219657821102696569188909120175021925723876084736598576165697672320487020339853858816954171879182641619315056031956173913852863015282661786557153803335130634408145686364490080201680370584779564315638836437010942050779689143769391201373712021378796375545227588598876006322731319227892771905017663893882744761794066170598917301096914404958542342416968176117793466674297468416615964074682171566356990907876130382130928740875785668190899414117752340721685485589734403047409670924006444656941442518035922109430935881054506530830312411286423740596925092740986837739028444846729129883488407431330449404064550355538008802167927083014706463895723417243839524161983089833414533215522729993398840278245459007632861660647829029335556316563665431794055273953768448980736029717299176924541541139647926730788636373099867485747678347338832938453787476621629671511393578040508408142732931603006164271031956574680172561431854912906735161406509399650025297440026768287036925155080784005237224063184387683403306110922123724634465617160127929709860293247118266915458311006432970602406011827297024780150678339883164752693672507806588161722722598269462945916660006865045088182974029595493041070353684224255314169081472065069270398390300860439211881664602160724159348693816726344046667873607318249464584480402984961644540051015896766298569613178735759608846334065826087432242121683120598003192647573665196801564385014969037010575933649870034166502308316602695933531290592366203653852278684829235153025346829582289870750943004872082693429549491187722382511140005589723794661965188736628305923823597234567439889075677220753389898742531226027074293715965805494843877947052093455391543897459486991736851495954091175886067099269616151447970613236089202246886116567874753585825230636395461663395963717371805883428208906884689228687321423982597075325469150483371107867489364849217837051908640251181444552239708699380055156218193934939215837465604372854319463089549538236390373827451234449156714139100914408138915906659645459658996351570871963958871741586794844844720750582196487783369093832439205987384846421177960973388150707623157972717737140617805280416438566664647777334707899300166393179793303758991282685520982544817217612698564372831521082726025256329778242867056857105896837366395737950120430114192568625222047266269185913986714789981268181678888604554326435571499210980023569075019383171952508466318428589369773776323002625839870538125660089630967786851068306300488818963072256600112274896135250864112928964222842619293668092413711115581791340851690204840349792483378967503647295801339904381067633997233043707452921701987585870840915549805513116247433193849346477691730879754257524699053606424452366747628164822792767121299873026529232731227424206703844606027331157466338932143380356050601664492700262787846263630599077896753042614804127171528193794333635859501852843723836831383856000572477660921801087402896791730767002895310590925946921512471887476203901946376153070948185183119210977999123232885907443006478336355034645867547569955275172656444855999189138060617770049126806682801320816456618767339487620171038875098253325626430835850389603624314821746303557833248269799316572141066347227037197964750976976360245553981987500870514063233311922269265407239906415906674363450099013827630720395083552600785899748383792196717088459797955886491806351164087508651554507350145074966980259407436087384165466968677909071871402182069581312295010808466539495550584912927705772093985993682535979942453065386008478039509469982943694249638204895452410174508070380457160362488573915026679094538806444827784589711284503775094315220810880027538057669869422848492798816396833868847875833354628993090192033159667912358534035621310268352179934472431148711242023554792181132438812549173428583245187464964017140927177438483078232992537225470582000357100557045818555661040531537979898184850386312051738748434249822363748940256331239193690795380390779647660536816395490272880146808747276447519852949643232446979432113958991315033773907300577010649465764424313928568996615068868660445861580799893396520601005398618874848072800131409943479169619690160607739687574436943799661428624628002679942842930282573108606248146390695905190381403463291930298552151230234228326899934582359168210046024830295151360025432594376307847256272554972986466801907142350280658152864307240775222908116832012701322041480462624525686821883711971988165527709369422119632119960301991545566072095968537210432101933041905602071711934729040278039642268493088236163844567284227854094181668687832385646265379452024444535879818778439521261816243960151363351446143779113090082617930012561459088783090149098755219395115368478396454110662171484887515738001598755811214700540000256808599028340876955321185871837775952106042921460622409082309574919467655380254639781082327404871430224872045986892628771077232296526684773834786335721411436294996658431771413985191901765763194892544540231837804417890211825733208282958377865949719708191485682281974694417156934780167360994294200772490469446550860895742319052257753229549039558663122129872692598164221015051613738255977665751955386942644431918407902560970276844479400058687902272531309344816021543058622045321534287464876935597440083802947981133362822654055012944498442272081656928152376081674057891606821941928147314088232596973362355017766499562557999395659550286577200630901730160512500004517815154928743961005380096907853628901284448912734328056121671099043985257380860114205768135040427988881489860368255266378609778018865319809877774087010995550182363597724639500493171745762267402234636195112253271399409415917328964647903552056306362031677261312369108555097657796481054496334957772306632527279524601718094548768263802279567589321750917122124143803460573296033980381711752626424841759321705617381481106764982710144820523331398889966743140217782856220377485635030139390819227053153329097685486775131443002336884591234657878340608050055749357310150810932561802960713072741015189965480573186651554459284963036520824196857045363463333442842110377152975059989644644980121499743349382768415059483838285471766281483687485697042053357561088960085385783350713680153973407708128222096540948065051656061702272268011716013314229141831478897874118786637563949217369962197248463169371066707676682026814314093187740979436245074740185708891430174235145740765759480343218276904939074159650728006667340486707929515282463164660578750348450459129415201840683292431233890110614019017342697754345188543849833118531043996012350905688696505111805861396396041719343546629608763532536749752048075984162471988546274873649223481615459744655299457176953060762201394461454637718828408669411038086595464191278098381694670411472140920656124481236173655655830324451469190284646995285146194596407220527018122148154824950750790978037110563009351980071904537495779011340337777931760752295400338523026792221185105194438533977437872427014673717178918390876318729308072884300649482629741847038629685670647362198408173211516118648219634098360085355416039772025050874642007926614300614427634365219969745030584112195521375034686337987457595235109739795207013280402569430713782888159149646156141253519299983341536617467034619955567107212445929623115833043215447117527366899448429791872521934770992838392611401783651517678969732129202758881782943088168712006179305501681890394478335730439861606104139721368933763704100466195937767267909957188197938824294994083032730092281264026163854509732583779386601308928760468117153097583290716850573698769024677918053583875011737527962746171960207350639868093457970376013320005162068354298860457357483278705592018034308236895105914355632996586880713761383062459324290247796733595531254506963243512594933396502611743159396402184141920070973934631927920242392595443623107914337003664641696661018557231322481259032495648149452957758101944114584318632231411352295859962892358602028964446416370705258948925248118919633582989154069660566477367722832011062101273250600891537651893755104214641673931099954287021777584482454325196020687279961676017298511185536689774773878596640121810586289044305683361656653846196427922964734992452816788382228641421957527309822761482285818027603929060341861318345034655706300861794832326586153308713965769645471705057360521059821768604768101124701386860604113688238422588403702553936968945228953960220203496931553243404615040155502858041214841964534650389778800554416508373566516721090528538247700568989137262797723934028909481821266370394974939157489984835878258932167503278376875110781584110104504600873794822689205158857418093006428040151706589591567537750246677270067143821827857232923653003825827545386899332431610850555328784634871274788061919589546648686071374889559780004603048973296905913407694680053292447417122809861948799755606598239132083733874238284818243096380287915076881485726060927055477393972330745755795834349667792984383012563582954239041775199354198698036691171556762896968104371614682657069602262848969782832160288301111697795855320997420050073001153557513150691858747388723610491876613164258782396400240049446258715486768802334721758545284604611243212936948332443348427113285216707464352963114824494418948804255833852838878586997401030306888913109420060817593700961010123934271265452374527325642691040434348352761607037022227252569412819082984607802953054257611137337576887485216317032342521290997317260712238696868438128365556165489553342993926385953528672189028558457986020984058799909978621419623059050527345426453836914890576341131311305476977232925876574331131769719136725250339770086178009718305486210940483237538078434069984852806624379659924281247172322088664586308678977649088793447622577123635758017132321666464710023204487549304516449995933077447847084338173072181649600465147631514557197304937015829365084428243133145104242513346357714983385453640950111891713159570720828460064144202694595572396793711774236729743444341911333044569405366175357577754826305366479986817665185274456340964086619281502338035605027689692906921794281148810746778276363021009783364403258305300319509333578880795075106944147839159004826789558305896788633856649314024210022017607342822210696009104570112229181161642360117715908740857621097148605114021256671456379695791841555076454481785882339244006144508808898279035141448347803683247000171400702510407068984915813042153543296418628820246093897728100486001596922893795698616672664405179383520014855295522621106259932842136847136427306553315226083157325158265297583134476773953492403277436493662737070254140211789074646811908361119977258879512456444719499215842445064511717639811818435350481439386423149898057101876214692803215018059077472249558589929039167702260574857447238198219257435221108403648964353010956937127633902674338748239899094248345455214418598298058641036509680025424303684320778221568070786644480789137142928207264220373957013206513713739850296226553341220657722049914177889677093039194447609790466231815649871056283515998861613837617777396899684760364747159221877921042424480009325610109895315458808806682788721862638143190962522922887804344053799931295900894722574287131791080770381996164597313249143035472199623054338622090910398905502348923166482185677993238476635205753976570037034996202953009575768764047819316765709908633872458258579829456342985964456627028576446809962352262331800318710355693909909133417469348676120620097840914103065199469975751671853719876963669825001804236333171693135240298691841964548607295550668133201962405937076971835200602033413522196986695456112543156233340288269636514524957041530340840364010567620977211439331252594164378371809517001096875311562754860360209698446824430376278819807956384476554696673500569308484738430754809233950148130656376491444195158179610245124027691427730194863254885894081729741478196293517033746424019218559334433754794832606188027622614650125005582591755334888777455973409686181713736400994824327060843647894556144587171950983676334576866604399760194052409883596920724748195000240988218796005221785979491488910495303143884609413434496411878001321845581584340473216448181848363017538546879637899524620177298095488758981115632978464208322561223776981795008137467612129092541601757888892415109631967825324201045005286312749650902965160433949020334971329255470385589187433835367659149036836083941395703826668572692928053734540895544926522855504520778876053243489228119789990239220359148470561457524702241639669665579671772193173378616465026223772477567705949402283231874629913628418763132195661643277783808204601494452602887002918684819516419383880824076613855545357523922447273390891965988054892348455921075397748212833214229266506878579007329730250790325196008310189637906122352734682437033494615588598961298872157731756852982885430331722107219999782739666041301964195699500452214559043947153097193964461701969453356539774485320193823582638120429845420524525150065301994549649964600883761257350638058646558968746222860500763726770305714561712411724700424706663944257525691267206141499702598759524568101679507595533864298129684264339745709545809064179621607356249194102892530374065861106805084340889190551882741466765110271101882989689209176714303295536873111250269870583694806143286323547507321368183363658068563773861556128545533153804201536758265702309796348444104387565896293653068858820752681307432449725400886592569096760835180864934662880628021376695204140768930945652495799621654824567884444970885944517304236969058164226341510226978673184724801815368300260567214975353126590106021303317339165515249439497295811893346787270392959465352750177799322079921492490298155990551031977986778529311861305509903736370523594189167243152962077131706173651500894590159845088089838669064780757393481906693991893670423524245905458938621926413836821768622069739934740557187391151709835717330646770154571443360069432835369208459505698603993902314843643544316039259981996539376642723100352625661183897404509038944322788704184373679221008561874621732818273967995420154347767505106464055591204635089531295391442496788953149313794290291931344946934878036930139882538528546279599127864158346313630115253777824411689581731118451294426067585815715821011602360022014236612550055874680991736331525558893148411190808586196855993131943670668930037813093454138681221858654224578142853253346391533704447776668658391962944948123199288453175123481622594510632690283496654471015860344135979188256559449409832908472261719580246116064760868705311443257770984752436734108390251305975801678730099859749394184018513425487938081726536436788836136280408088533243291092195122976985233963137631534119770611370202829839039788775121127893890516101476488627921078183788257933694597362092582250927074955589424888953964951014534571587467455242693869178431641099452266808840657607050812517281648613105256015512611246370489987564001420577476771905698805470716031919411492667276226865959476637404742471877195011157835697298892276532550468172688718136013933914575068599048813706466970455344004906708119921622698907837878704701106736053594060952196714657504564012766331537661641223546916899638405196324038813755082475168557920555071177880939521105376991791717638323910323714788519405607420972001421514628883132154339827448481620762056188409596652353010108546836133721422655687030945898968131508891679487829623484763604361913796640232728428886569391738851858688989914210019375678884296453762664268968025085334047715863779693736828286460648506259628978708506232659190936736926629863055044066647344506283500393222138136284668604430042760012610051677779143333764170616274602293117649535034618802711638589439796773647413246506233575377348255776803620734162760329572447765901175507629411057938987952115463968416591278117656623108703729675068168606894609564206069071084026509965499935837435875210250566006040283910109427116658052285748191012644734421042168037805805918603195046394135667054514096724713932212309181938235548179594968648477083597569432893217181597205230733836765702432428936166661220811436888375954451199283925235046189023399020443830216680641812189816135437057278333707592693844063878126390048956571847423305662937644114793689219811017032977343624467419484255482019790971803749346514640366438053643470367648056879210090612035772651473792752920537312969295707897127499980342246016532324508240792474476313203632366196496288941071989326926397806711371044092472638458755423360893523988949161482379681407690060076615425607027397974667821157111669442851498789342004109550758331233050455148782030272737351294809518425887491372233231120949575389271567269260990280673657830174412608023843554077777976308182830124081712485766908224181956830225834126994409284149493978310473032255976573055474866336814343978950636388668322268822151350298936058714325020194113574778984208477214593985955280964160999207482757718343067037448810365439260298601540571243659927301555960202943956799792631053195920105082851382560066678299273757478659603886661042369247843375148007360083191166387131325108712417201533300737983457114262820473401453351663902688830158856756747792705843944732539871806766817108141557704066381254209898598139707400582036791884643215387636496231104764368366743905894598962919115205270882128584138674384455250180741606410193278614762514218623732573171918489569556719129116359014441712945429430325963406644359566888456394750837513486091844959703902153572583130097657167414356676188170828467805756522940165248407445929548999465343709926764017306638466299208341541057632116621042254592817225818621266471780985956571430168944564880114835575960739242212866678354102283849183670562136045753644375786644586545553720770932514288015037546406987753470259142096627048620315922487875340781976857721264669116587985136025372943816570074652236938815824409196804370071847836053967764344058851627520516252199065871210898759409839955270844890252557202458216797005333053392560411065106273855393299331839037979461408289730482977350142741461723642012715424032084731308131258854503063874294441169323497004208339528481868071961958148166644495793479038212546437601484681913408435073259424942102652758829831101900538633579857604252983349501453477887568101406010844226961666743593042290837683790524179904024077233406522728814080870797085493446722969631990363753881225025257589084156576134948793621828341125921040184879469121342947641322319864856096022703129158501944536221016274598428048413508205582520860821207688135952551095147530585603146831470923156533855277377239848296128868047990830076171247547749264053263474232260090857274114586941222259155350188616136105964089719646291992243708590939248070916621088725134259728280710461641320874134321594323738916910667402809117934560419185928054842035240065884065801551103823690808207646650761727323342454930809372332724632910596666376556490217991512919538251895573400219960870814174202686983895368713841953774746648697555808312959941990408113734087954185146773320564306824872823961201420147366078771809712304473676021264780198300147261407606148740339282328204554560055174135984197417575265702000898498284745191981995101572494101328495728618127648929596901224866367352017419307464410632720860737053458357818620846414639807599846422702652657625698195728646823987492989229193240486511061159226254638612055112619204800442839211702942827781589666230590807501879849697659069780604725089182488395267697895382331295682044454379942190294274627764095331094670214695827098476451688249159056459747512782360335008419324315718240350271639062364990456385556153089620138457105297120415600344793504704588273188965193838401286070753921310876560837141898356313569112617331580687752099061989102846268632789662892464370465189099934492177315270136535227015830136366146671932414854450401140854993513273108137432120236785337549652229207669357108242303406335546608604069366638424637714713091490706394492145367941849074879807757116207794787923358994171139331733638380642419929052314867628416899717093430213915057657042260586964474542567560618928549941086051761152070042019729309624393864984457158115226051021555743791168812209880879290179110558131070858950738279302490944091743063499466546378482493376745513115643042790498094230034276423879087546699358120123004446795786090679127102346446543398729966685091811275011317583907650682971247435493106835774337747937333163746320706501243696282518695528582503782604720182775733656834885644330839515325933446044213825000602913228540421113394734962401532865105021515569284196387905932346203685363876167800918030168980134827587773686232043127813281145334711919003602488367650339085623310090412198514356014549967383497117456225232143160346147457481100104516084876724790162480868670039932811552922522957232951439897904068494652628192523662300472574521077642200290240928423599404873697807745336443215212237729070319184686025687696101320529861827400009146296458214712345846600740832489241809104758301474234668172592057873876864581700588283788406323682264254794570557537833531003385937152319654633255167515650045283531721508780447567740281840762833321063600745133440698730488753333632003060642812250562410037066945554606604355583553755341131757626317760331141520893930006384721674977434417609836145563680789413875955977423729458732873240315490454263544881606899357682773438357868747666564318974693980457272491500026491866133554948573486182065153505225331818209254022722713488223330946581387883395557972765101484960784285768737075683408141162173538129580064340199700186525960781024052897564168701524612160542576575982645062505626707942824165827790285474945667756618525389524908458566244739355949008712210364378808396540245732976272753273981839466383436778536241052499477696608080830275983381716791181807767628273671811161992761353275483979672882862706752594492795804565581087691711088399110242740133638352853878808139731312078349684382841786622520716109001371164616701760139148672135589257619613587363837865637128538221124745499220817524966666577142257070003554274551751917001419314364306928161461018993687099737141333716610950511054502628772258024827911806784927766932738481004818220555754904050231069067879237004987862591107868372323823283241732776374582780051895339206052024385743363664265203363300537362908300966513108664918510815621378111561644124619617678208608307646055976526067872774136393931033100370979358859211466805215306301851191822236041560139066979912281447665337347881464636298319106069752246989434648528524501236432125615449964449756776651052479084650072939873082233134682783659709434203291046044893671321708142641335479430679183302548704961850644416361998376014616625017766789824972255896706297687765464795652117917372819498844180244818872900479366807235286110919114167510007613605151780911958760442061351788897095344380702301660030457459340263437909854434283939959650379237648403868603604350503917376895080917452137482770971404344764972875191639049557566454356630711139589472752538398458216552976246416338407742019589462298974938947562218403003138558078060214594429358515950860030738543273987609064940554246807799637001869630608427559810075542191189464057312360721300256681562772600044345031735480837612160067429420016843723619234710826456580292051431707785816592086338187683371756937908733281169742157801782060786615224311945198789747630336639634734396251494114768109581792623698826970235813540956330834524873986559161804580846277232512348588553141680184518121703276669568494338142273368228248782513024755209990263819930841984762698056377890349015723016119186739612317125259719645910015371313954934650141161562707935676612696586571154107254979130097330009659991315318684045471353515598040281041223162483928141209128589357845231950673430124339243314814350395092145315047340358146431790196017197118531590010639838581797942550604545573373375189682923419799268558874659257658125303026958124230188188415292893333617287254525395034426106422959957386915289194136808953465077360106689687280168851015306515884630867036708351743517514665515993016224390772860049897967519855935399003815223683095226188381037176203258272412284328164799217785378193175825715551763308588500679605727838636187758851870365116939234805456998977186017314865594845355518274780855222802189396565721035235754507149311851808213931843697093276125212673653728591581057836461233161925893552052251957502728578467195990760438509487132041574376326140133634263611416552328096566129841415121995936015602881938721807096979338848115889966387478246601678108123696519614868237375609093042078546559218395032801652543255304523261821438267333584816617124949403738737802185974911672714338609298232791186520423505397095952338159328423517121823075307340062573788035853153837251237336216309774182901456724888626428540889931754059078799798012860639436816302023897731664659727997017986606092887097336991105550629433237562747908322031526010969318614929886872534938792160890042890487055093702122174956404481240657081134010283870464095180518722531824523816089632194934592913072975839560846682140931559749744722449839593902073772440065910081302918738147534932152333877225730222605001646795331728517039177808949353235835816190993026717533100059226816558946117549351584058283149123184848024070980260559384371492405304816226939659630489530363447137120640318853426484357023345601280815008663771213766533218013871272304041840112681242944352909721927115221672720746022985885663797231969612447941175200372426321331577930088018114327105633163587206286593712985926093911577835764925801775362314630281634616893286994120613147339061182613146814183273571607560250566431780381568132346976548589307513639638008971557304115391223368897699907758692318174672821935231355633943754017868611374873452581349886052158159142687674733897430419265066232301955753819649726676598424159135504983126012844045520793447251544403314533321811820491115171357995572113201384070658273137608665140359802711059203650053269482462254499170351906002760324025974169501451877591327749783519116317938604164069940098404970855496424495597385459545381425284786014781172402213016380492599116610710037051027540563035251705856536769508848945050655108514974037468152261943783291141521349524846526785334173992154887284564454637768134158001974291892839136162507025779548090174246037899085779515731433372657296164559507650119972876626668859347778649489482994828349248325968181913324208798703223566809982150666867310487738658265790184028896408830417089415039975737786075901818011576645849719793416084223009138147800968293637987659229190988750367637213775789018198312395306907372141367126436032265945380588615136917542535459262698268150094691191713477233949537305892988447306705794691299081273199353411636724926709914325170981849012588697775616159915711977743645851055402466748847974129478289785530668681362553519688277126804955956682702494193238379660659650711748039472497538444209996391712899604939518694037565685325230369232660397473992498616171724834565794057510552696595120472288748502508957753945799781879115131424089916271183143382433137280152088486673158418558326753489531953399297433396921933531462936464595567721078655597242865409584111453549068585844172204797959148543502112262836684847425329554747250336150029125451286888972101532661380963956174510155830630462855181039712750104041514243262350577730327273988976460921906343291332866386668144257690627884559627366974474461538303629987741570293115095500070427004601593570843820591932726148802268952228050331093768451262242620394088497501904024100781176703092768216378087039539262709897649223495279835199428560384140982584955928765433623944213579020349330288923801631736561759195583102053557067784834347416941830832655905258907627874121949949413073942349023000105094412617054159804677145796586328480893058133506300097963642733063334942489011579990487974641607865884987834464619054644565849030380808631287774067706069484926299182773786799513798130050548905903691561752245161678827010861114932125886663643483055054164582544006545288277772590161203489347988121758719028380623027389139935280838068797556719442375754941288527017107988076306720546849716828182900657556899692258826497061749339882007469847653554384438723902375931527007843329472716493476826454353083032865750676920348554328492377291425216964514623473050231930231856156446964156934695659678788326961981944330407813422184024361589275262175091380442765937944547679323347087812030097049826038105244826836226725046825302860761925547997780509413255789459750274754025405900489077712307354665602998442675376889657409186919005182630784860555725501344700324741363241008963234754371092863672393799246744744707707817240754830362484924833598559470360343901905850307187631499591948810699683753340970479396950939591518154900575598075898129579866686987520284400458043979424627412466801236985568809437985996894246139730789687983450165012314491242440935250588422560960860946233269561345294113991773902551176247869125471048647879705294686147403151177953917708606735220749061653683513665909226195208433368424601636977103446510487193802019374220679435653914370277021095003694198887835049679749575663286838429503578827785324933330963852646692136488880795066758923859903070806213343185647613293880495747334173775007063280556394551508807553211509291284418344847909355173551273250725179611912923670450220167274643616902133258863135010711731631473241286655200569551816573320406216146977583538603941824334537755135123097184478801795744138361282624740552895099378497054034002473759601248237902900967662531833560722765948939427660634484546850341697272293062355310133837227702385781602111815532943616302392457150892077172812322058408125066089469787837882168514801006925043834616203756234476803827851901210203816784092803475115135501620098713342956524758950506628087860797963874074769099719679086086708935627212929471722889319992002720914663967473415188919680438955284859437713924814929393708522393723267486332101020010673210063940879106065115153528080206406525730942226420052870801967899358672412560230423045050275668188405753178888996653333460229528586527273202098769042738593770778717367558395662303181444379025525806409058350740892203306928732631466696338913210585039975524427188305436437764125172968047788857664583744413532051194393312629216384971367808404476742727474193356523303095073920669451694359682012698096941571237031714910922006925020381614875324241912960244832502098283734088614265600374080472534922709193160638394742474403499009228058708345040776862553113433172031010542036972716047371892944189417324043110009705225240050669121262475425184002799234316334580266804778505451928136154189734438479811180105107814400471164080513620678957639904904236216831174065444253748804115351096828947716408476312513863729512785972601406082179292432175987953723044976664961192570219921997535593941704912417142948952512190793694594556725578686545543377633476322599812583731040499783833185398480115353947555086946502165130114438652288482368042472851076084440887508393262125034443488113144836683241961115457767428792936730285762280349536489185587251696447887255534211542009432939210018822998510238246326070018816813886677151956654309682194229389709548568860638887399704456930805818120349555997476186716898405176573722988059842357431809708848848288061673609594264080846658013431599491500999855243313744195666355149658275616106254272161099687557889570740126859213265778390535932004650788956924018521672001567569907403654436119654683035017803221803649618772402718946426442758547333354807988993523638897641372030655610292757105344241377090979576064366564622471350259536029471288250832310619406712010138712029412680138835364303772526171254965528277444473444939417748451897783814483677396299752791652639673179987799101368465252251880515410211115960011565743520157335115434313190383729913562303472405438609059331814046508080408531099207847573940038050514215949690490191349684008975691169716436554376862760803481845490459652142771195310932782371849089772756797238009005047247700273253034334262611194656058501697051821667854744795462755231488415187904036799947992084702325451983165323352184968401098330099422108858103423681840774021058189311334626098079586193371883261597293888868440784115511627682903051381390625605222930889234039034926564371498774704520182381412636698100975301629749616554999136701876258039586031818184437060041010794014040492280388145446474560465566235854177524726280047940317336980941680026723270465109255377209473542500510221929239535456361145511094516688327798485696794470866696222524589009141904920965293703349625100517138700999738605995695745093116014621166293080349060957677983368011764007903285972533939172473032599315561534604330829058141931095309373558313685962915511087288319044360724812344286257283607857589262260142738170601338520203149791946683809621112007977636209933362269179309554119196804114102521550752909946540498965199896304041874735358999521649584932032045507515843638022667154627473990146307181970230441447128170073938208747351278175578292155219650349730786142948690557115337106099591277211424438798333806584226290162587077127533324793298307874432983758704418586700773195872288574056585846710321111531108260468689269083072711459910981200547397853999228092025607026980081956597984425734136983073039484220203909884648385965227128095284290344502048507134503153910906058849211675083366278599779691176726112432738761935895303050779952994358368445300944570049620612907601302565378628321222984239852921948151611951423089694059196661532904437238533043545887077725805000966765838630192662803270265695874100907294995318019593914657686689432058804767297989042945320328050009856778927344371535283439826765205783811624283715534592102449892481348120162965098971000909395788215258391512047988048522019202424238412803025263326179003461730264353084405142031008405733050928961428038353961685111863619613787616208432311639058210749692487147301100699566318769754849270163131669080241103976816254129542897595962280556596158904718638236382419900138637200956641792955767657989819451813424103717128083191900439634389181698430117180645287438493818183453601241016635403507485710481305566593088984611951287668807984218314743696261638471177270017932588547469733260293319208482719748785416161040553992341525429339694327403934107014044023353081303953746348820893498785523159422418221962128215509265560066526489555673015926273194260791783233864878205804711206331259231127934797992019960142403333591113371398587318704703213494234132441929669004263873311701849050558417123763580803031841163659986094396930876355725328080118839672039785091973600210042399646633294983069921827480131832357563789140357134787271508441452562258498236696069146226197330890117612195257868984677502473371610188850777917559942377812134118664939569317977367457223666161705210857276006765269602733405121343232312257579062079151454031844400641636147286560619844335391537820270906189895992949304762375964195981015520485729640834025453069335284374090628933117922373354154205428236161564712588581823830261351265937999312674149875959786620485077045119052458805436644676404448445976245413843785968466953396381895978948240429277730531129834877668884177169059631544605803972263287760720724843630052396493244526232398778400307937891245175149428520096713473335391952719380125135960883174511993563996198848007590919786862277032135582555151668620215121294669881994916235199984547142434131637334729792806326852513293462122320090737785532200160969711390037890882978206115454767564636868196886270931681322333790223676995253844470274342095420773862267313058533310176329104749478055138709849247094336850432685260282982549726974972813905990203468912355434986502850074971147443923167682471218248791217968814760686564229525091868584476989810168002950679146894775583731605110606995485986440319439001928871468131695292051516710319885066243796947822275665139992471611996177930449345112830853218499261926911611643108071430860904022756186324530840967740392839315179236975459020948896549798548772989579119967101129981428532086749304586230961726269171049536582981624229104902507984296540841265467980269306629721639272903861470131730234333146274519035697024810229640389242904747655238879840437957230405513489208924945329013987572297762184197250079085247300584393426073420412551823429963517892537305924043192383177635512971471258757352060363782683049373421810584757876907351281855273960718362367872259585075698006679502794155568123958543144646320259298768823447307211423081230680336928670820593939348119632652223448995804373269496975906486759604745816400716985963897505685923889283795337948615263245640601541785655646721973932607246814102942294648763244100721635881778046659914721170667541176187534564597113862260183850213359289919165796206063389026957336841451496422971384852571481893288681906938158619104371412588686835152022391999254684697725518186414008576937262352749660548674002627224448855720908678421348811531258538034113897659409071673773996773804124444139545467997938016264506199428004725043588245533990751902907024328961583493283120087692670441373226243465013569375251857359920582472175949360551449155034289170381493976306369239429418361354292644561468213893005531439914549205582293197725766482897134037469786679959989026951069975706486639931430692056142585307284681793353387673097151613078643865570470270551883987705983502492440533861848387843177369836431935149102398414763652536875151055331549124594880459819276607857552906282692570494603974992681994033485342536724913291245960217349985746302491845484225042356873663418038901431136951777619848433053254456851021366411678484384937804704395878182198022159744301157433271267152495346284707365227555690195467002196345371129991129220117709069050569659492471701568023345644101368113135596194884761880246396769828647858667452129457623442401607466949511751525444748888261331273395043297384789677232772828915257787444315181034618443529927527590124753696549418724578349738658954506520697496473290229132440249361014081359971386975421941714851332143270623704037823388294131514984173000881868787961456368689382888417361119154530748700129940961696251879788858782534330857748870316411902001793693385235820393133888616644048478109492748413963622095430678763685050304773987925797602311573764550736788764728400103340387595107916671043121660905385214941559234086104310383768824878426533457123002331866811227325447327015281319439014808050365277161513858544712548017021337959829810616676316091955287994557944213074822149442437842705597147224322526403933768839613649779668965242762110398488076838813434704311002599013687232500797500630843053638043976720507886737628015297130697902268981710666496796763059770625258447113538902875217997249232051378188164576105421040630501370415204986107041390410369615215642272087648095317390973016677722361935368479554381394039155947388727833776991757018090267215761159238269450489214584175603934576415398114970355810470903544907849149414640832144143790037852325060132189961825518236594940243695706452083358493055350426930302512485824195251102260510353155830034417827488102674996070823204850077600562472045363623033468030842871847043791521595620820417647053299818071004336271118304100226141600319782187597544631425958168360407513891981178432563571832218221646697454465565668982360242040017431955750430635438962396173225482168980126705377679359184854360549663199641214287470601780478011885230760066330409768914087439890975969099745650707065502284260767725996157746184530020756380292574385464908323926069702524355505678786582161192351313661235911076907795234535292222093328273521103739609575785635907383986883195197445310354684192284086138997597942054876482961899504279927797195502522429251205285102353326188287673933753360289793088951896269867907538068689354679525532830239167367927994727129772198348928386701405219877132641069856948318261401693129081526194099282177893935885265088536866315540814766169524005299958580893654236094624575745167636165734424490224972965365122329375161141640570911835771791737243697512922784081466643919553422337944383889779968317084977889353776864443144823302064340909769097426399118317427430033989929537017066756413736474873115519634869269337849526649135108521330889150693215257213239747632406708932451568255359294033052860512270430902701088777026007029695030711930002305437936742095747937750582227277254708537833357547095979736702307113916589734061627283048042970368708445572320362229993604045506752874052830331795788994865538040969352429914119591080838933802298527319261693767180330324122392719191225765610562407348323782383636197831803343126738553431301664676841957510988329702247752769088099420215029722629186131088128818429300189043514181880739419802338441207467743587585739381892132683033455758369588275883780114552430599416347569532656505136905775199235182706571240290649505711238154731267917046840879562771304947446002852345207658313517158019486616394889739808798028774453955872203634775694276672014453085650288517024863881819672100800692866875195595400769490085678168229232327007497281205586526981608134554089461543036807559229380023378934162505565033467644642029201916255902476292710145846771157962227471588414684760959834163065766525483733891755833084120925970328316971064846925163066888531337189142614466888059229883168202403964314181202023555441943415427291451851123528679417953277200188478876742326562133106078635675477698079519661517091163538672216014899422245410086156740296995616762574673198181598697202024671598358452284501783776605842563219029380343072881790619473932720530063597533812118750325657943992094304061383297577589331643225978907782913814779631235719539372420606859056507163681916439894196192715754086152527564220770368193081800681575927906563585682104560540697313311068480850172951199330304535872546988133960477461386847159600099150869194953124709595085839035486276053811330486267058937106587568952488896456913819863408437905813980919496356866583406720895188958679046856164585984844795365347390525426736736573094116632327227598869718134438886008231232558705796711820624723426631379940284363533183713412027844406964270938229619384496863215196412964040363604528801606691397718717965489798740418655399096222340619691205346637445705632114748522766339614404807775244570218658377483103969282765633214778299263422190480980555490351529236354274662142908684459460503624414852122891105017631795351102783912519568967241219547862696583746390775016665209996623080948723330932022166593913229325799802338451432031804671016149308470032245807881649507506558398943350144459635251317823014841329624630493340624546292355283434658657381522535491561523538162490785985755879999163698875293133676394954895465666290689251289173265274524240263023836772518311997732693892843869768039040935607239425376613948532272183622828542409492017294974062197566529346802135528761187396389053858806179102846320005483092301889359736490610521937116430393283542833319097484518552175199457018796446421734238153781559545313730373065215373848417529514956734688514722643582443129866743832564338725605428499779369065811598311670512097225493731245777237919551538998773368402799426894041170924127143440979683402606957398878675268633527875649611036075297405855206522722099531740917080945319986689949532069015528408036522373050305835669836261605405050830934045467151508586676306973242700906211363299913370387665872430128247226126910047901969391691566017916188910906854582944266745967952116672256816942782148654827794162309321760727654715502470880811433528908777758309475504753138248441244550511636684980200510920388940221370567232894332225580504575869343753724085198487122890854260983579508737645908985430669646863489416045170439254529705123695850074867432074612398223662062665344534539760064281207203926005443343389797966700358094287298762688077082841794260879826803879438432026996947983874182816412911530143199008269222098602441291087070572531347928245181452501734758376508390828684845838783405050242263649758703478209788353867200044351902984557670899977485724636083917945408799925467278627901401704011648875915237833125274285780901282760880313051637085559286654254228611469855348607647249715766255062544517498564462284637828803121147903521512912866474701697966229043645847790505725560725035326174804941420065476908014798143595501429296633331896322244477679701653338993406232744895078677471938403588562553781942589209905539632397673149826415783492192891468341299674574016506878085786324373079741388260473519677145375718581818222901694220871778914707903996461676591706122019858760383196803664368371028415959819835858270834560984310333893862383397276515479696221439870818205385252744560599649329710522853976885460964799912039649562483777311264998047134723163964360303609386481992523484173312695894498972599354351221924536726571785441384104423608648752075915712908245857500550892573852276097589391085160362971988232692714046327325224891969040608703129426824198702261584731177446186106762576992529563884631638700868503029370533975622060118114787087252331017667956846564027789168902889351434428333574335128719680320195425263300499483766412488917148695465725238734092955011032210573150935660995019859889711921749697978160317027770996291146008439070911259649010609692648106927438026025209073212331378569154740984673251807054756817480135098335222041468784562266504872831354901424895592075429630102759993005154126542258000412571399381240091315425235994422648997606449849479683772881699309163216784925073508203060696365930504611210617060550637760241440873380912500645764068086742014902475480528736436929079082899437268840977713875664219654525691482469025862131501630388208408968540625052029750788542118632357313982747114262229389178138186643256386845116213187419307626131958829919786275535693691553993547295098879377735342895402833609782603214767544320086756095318620439787879156495250846492800399902679191437571109892535477249507645759679487372121309429548087651354445205342233303867749189149633723951377941312515132740070978354103634952230745799002508080017657815183247117502325746388432327181799797053609870743041501378962328976038005689276543932981233783084542483628265707665279989598463220361802915113587889272938978176023877066318170799804375332115319116896678049643382332865173768350136305976239362163751015435267048083714676673676821102755127207467114997794478377884982609438216010638058214662032895719506913271421951556606274029480388343159324359378999657269713096842614649457848159078140969212778495010933701727385573535975830099405824045416338579882243319213667515968886026699096585076996261940669545618858652456919871053834131802358395842453339597883860885720088250999798737008105352104790269973178964499522278532208926235565226778208732314121081233389356460443405919376098023919390876209578171814743628985054081709814778721147823195159026796454295283232902622252210723000641015208370559929950497938361933267449535498627609889240170089851735656897573103052119157872380298316715374139104875546077538314594391348340784970004049316188954725200547745255101619064249401048216567241112016879124573762113622537086953025115340173900989969170909099914934646905910189357651066387151941429712462701742165769963562190190543103337067622650286651926810886273135622623034125035244783430910317972268218366623689830733089043549362126480554708215762141425735276300704427870871023174884585410699891620835352728229145895763042403082959886340454155551443383840351373469433506478270780265600544996058405136476800700014435792353529539222452857465006974368669292807020941575136101268112797693488937507119201520068508910596034467099232492669075455135894400337063548917104846581578960117197453601903337927108414076520374868511376495839880450177676972540061256303282147640254839189960258748083751897931954152914958159472551516742568150341901434904570941461338724034413160918721087628233606533881538139474497976870313727958314106051624689702985762021301115775939762387817825790166218624730776279164050839744871379331900883260529947759774471609461814375247636115844388952683610023385088816238383594583417431658157956429263924174477571389320875178608919712852599678925099979662177721876130050447927274415081492861946508545373900183091492096066369824970500626014321358248051128476705774526072987736152355535196916526324563939013045917119820428414501265403893352916734317164268720667067766332567928231016515608018800353517501816937850412669537451870085245090030015377004046529116377022593519863329577018252942303722579086760274033172479302863851280231898036534775074340114819288206414526929705796804859703682918638151159144650481805879461352901804977320393064710291108337186126666359490658538644909461494022867024979882053673985143817464684888110261409160298832628732643531565414702443980921039136242058329946203489430396680178190512759110977143449342986778505243377449824090300892234795965932339511711684165383236989271088304189750088903745015628279868202682726099999541935627767905394083409548633621466826903974927962319444309589965458583671005856731439893713490591226625703367509694357279180659959254684387703832875875734381610204813857454597890227521139290170646805611610601176286561427652839111820402940818379038540388226761760405431021007312546336792753948224999734788968989595938518668888136901384129567310270266524583157794681785493968335599450195776062045951917740907521378276790225589817903270855024978691203909569727297638535347290095990382399212405896620700547929816971260375389331076888295661888236191061528319197998552261157379113473319006487485070683396935440738503763281997685829899443862051640998807924551282146961469653961330197774661452363500414640582457461066710793556628346978759436170778975082728227294949655534847085598947301261693390817143996249460235164697227144237018477953953742469857497604436646120701515961996825540308575384384314262580966449826098379095253005944696263181518709109003713947524376881735122855006780027076703238887684896910072629759993520648826973225492789387398999907304924115610789437228900612821003900161072914419187443110451375703766916574964338184656621105722233259354982056728509584895579411557386637850934039204094046060097111168839777759529899832688589169150493373725350172381691690618253622548436003481279895365139276926503837174284944896824637534950720813369940509809262615462674338201731711599696623850850901946476422420562065276621995078588067541581753375037077260203895076360263263171179820438802695249148932203917772809186724514312782215895295106525593311391393592711642607834145260546478039503482987487313107942237665227948001379206363034556254812591252484875341687701869076403289917642860116883140219662597410720171825416901345760042827148970138866554821618493430730136940334477452015098636957164497359227080624648136654171090570205319613185367867105271603656446046258170776648980127572300069877078980861546920560712583305836378514131906130439916420123354016970592033120201907607188335243498435682338001529901427594989368834751755849917180785283956370900706242065808636511102161799392631649022916516962887678920867018452035255674521438711796042588286185388403738992801213957242515998524408914945978480594311048896897278863088578072230763986087795059979220287137973005979794634703704424875583054380337461400627352963164792730316358491659727385421038030969513373405921463645875135251598794274397485604009585993370663615168287309843642211956701863482452671670658926288559158316389172448315232962893987207784131018380707201811287647420107803021263202999927149025490743058455400246805862853608038332089982032500704241661321028764818832070547714391154520405251189970675200977046140702012666485929057652010438060414034237028787115539695792096060913430985724009371247895453020105251320204996244595946261064458239993998331467394336347462978039811165371342369820660214310340184517045633793790231257500122843032672539986263406437028024962961086417399127925096805413199911421108091305555210183315543556575564246876897850488712887517921453172739274429770208246314751497419382850277198286899297484405897486586826771243312612307609134898864237404324547158199027019894128894454264841783067051348591601788160743418347137165807405921271739109450353990045780582796912188200356129448389971321195418614848776291094026964719923372791164337576586755858814091522172018062927775380192044888098508580563136828595585991451222834807955619497199432894725200597571066883449240526692135541101926365349393257620887770593796230295388380273473028580170442947731796848729692652834788778327566459894501544735307950160261038350660657759315407408968535366974706014836549335149131882475977175460023235341063953162788019629835550015733177764018977906746963067383781996105864445629883133265614467660029925347374249551554938656748392081976177393515182216556744969499367130976651777335516988758242407541907846300389139669756551822305349450073547176715444338562938322228856151910898908232957998219506252920510309620240505491523714414180816251321350830108743199883444021806891423579752456930320941889847618366506802603465316285821538206968895014199710645501648807569392929854587230980553391761715346654784088513331008626729404285726270619464480784329970680504676050727746155964068748904101483860557708576139786478938808554063648854442167894864888542204343129974731948144344343596139407517579754921032831797756228274836747400954660671470496781719747741015938636546861530097185288562478702715979794448799777426653506564024237136965640338276482743760695339597672968729541863148269599249522910888916806951401024153632621172619407501791152200334499360528973022367758177683425378720651940361039346342858522817127905454518724944662861549027974747012735718834307094625975247050362427103397769558813135968384542227377740028927005955290557957990408648479749489107569078122078376491202030452088115342495961595523094392851935249951523871339227683539799717160854855020667862607743563323243132825612786348967079662598221151890541589053355411266011816338120055445795175030695884513236187128488398833261286393256719384450040345390043841997398526068440126324079875556532292904483940794700695791367602884218423936913673981955906558524881657831510497184599644817377404827722668894659626567229653081287796612162512868711171858977484266413094509020778698328712946681999323017428919285374034716196017335294529227640352518922528236860916469570298896171219215221642435985406153879966034865056504412427807445418869439780559748200756315013122344899920582811716106297217667626199553165425032403036406984593817517649054045681093756747374630181412645520111060324738364501718247839473622352366222305092373650177026524602486643883254672106284476738430933227916733884501308778667147933839022692390184846412630960453480849038407886281133843941556857756998743403422343980892565020893412950318046785868793755197875900463997264743716155686139529349059335435310159156741530809637819351199749866837145635903294062877922123178855393959964432898763776061284758849049326983573559403782579337671860561591656999469107708835509215525958015136792757825212636139829135462487142908934886953352592620973137791566488135765507020317519656347272317673907244918905476602812736049339082306351014161299710236550591413866738477080392427510131583241499295731952115460763676173489778885847566537761941219183028793444206646185835052091095496454380640274831580983484509002714202336840522073463527923219009084280571809983201783176037850490137973722218612888330331292033176993632406943931735118959761147469300739945517358497952493125559625968307045950351939404520361719190034351360670291686389156736091025728251049338281563750954144139957977963408998281158545532024862298620410396977642912050396359759454198214100340598985726447819588576374331319937222623266396239466178066409130486130167810370434953593972291561767976831494277025998242132200647143645645219189815040136750537099936673914568548941962194935102996111735166183154593085293157592427393509792072844073319129704153784671575433071415134749070795615717705209273885116765565802719933996313118051901521673867281119325608258304924464313424520918010696095237473544280574380791617043531122183404338016716417220306211662239092614993851246666817200825585364375401750175578673255057257224953022208458515421836966448838565514349653922512650898223908758152497586814989800836977856974448792195186776448123785192848939526283363058706748219890027497105210201052296559859693924940768483901443165005403076747108757073380540085450526408546248614667416680833388575139996918824597238843457905931518061842043528578866694857806595725986392125030935118078766963585749183903946253058194844001967157576836936047150508725573544334223846829183172610428664137000142934118338483465951478513927724332025233935632332701613557958737236189148218900535047022865169425890471370985316093623841656342896737173616431476362936477808887392471189738949662233717187667961810235911124556675920459837124342871238255137900568820017236483053859066368513451771680221315399168649700847183309775810217180992275376187693638813893309289566759079428523758151007866459204116143495383098376583137077434061024659544578589687414269281445941227390427587808453026015445703189319706011137517620084162741956108375772890026555711879131059598826444622687098926026949023233175172203265282371546934158224466712901795968341187661224025319028601840326869196530406177315129350850223229001530769663313877305203260753764877169152482330994420577206333127254916804089954177650718134791597939539501830313274675550953067915274923692780430873017875552019975625559828090095837095909750636118895994890399381076248420462555272617936053204714113938195650934307816525906617727201968123727291838029321119049032673883808431185164433847327825738505357564814306259746252260602664910224160243719766146990754015095532504209301737291299873518174911217990533683763996629526804316174492885175387528503499280457924296340940198265561970810686028898514004876707948093867662947130707041549158583733883270740958023214570867988771047307866794882983632915910446363790734120446174239136897699260717159616221825347879043484819818091532955625579296864524387914430069534323258175774041381883467684634001443033594493721059445380455116879359457671701881578049174038645635169417048502607379811164177330546228939330242230063124145766080696942997974563359987390827951177656998146261006596665863395257556149384096095757751872385943289783658407129882817702605818745183406458565969514766252853581834908712554559987655085605215199250487202006728080646118702249704315350729329359612577263928972832640411400181259571161095639977254035849291551140750968026746965488243359203043118551978480583857900159100512603900769511943074090494124385774116862122150004725643265126791389701672040543146634291093953614881021387417956386708556467980267702541156898325401993439299981973391417819780102489711399163015808160201046270564583167108647547627977602386551078837094874618701164126525117282406182850202750121687779718742141408376948089610760463332088937966284263545020023118091578517318429151609682111605214311548621331030370259588174470406282620055525870453655050655783085336016106448826016869466211394349887838130026062317044630592207558960890645668552340675972859443429905124042110488757585662992607147538506827440599486798504894161987758347831727151823697132697769630332648644145837571963729870903899687603044957799751326253554617925343813789222215303814346769913945713531214429616970114319592934014441582208080753725868863479002980175800020724854921380551726486148581235872358258259751736435473981669741734342641123719255011767772949613872095027231899555821966237697888744001015891496333495509554078063037085484775353255259958893797199766819682516535956697393991316771060925351088045498949238417947296035178772302551138519291221118428341543210374655499726239626726725939998241590761552074866254508260848795256372265580409522201054057156760793279078476027854961498881862132159212175101392627067258739404950691270801758364910689804211127588053056552212382271610154815257905060931712077152603152229461178879599397414221421437018859440655393876143154442883045797560805916317904133055809455097622776185614654126904727170245191899468570708114143387946549721871141629818544032009411090922620689128313163194599936584145626410219912741947179615868605482733069705566770456163572684634178032671487604535091500247116889121466346061759057048198365081953021833518179677981683689752900290115488449013684612639124995813695132972421585843229082356688428529740642139572511775120257906206394809603558353774957070662137453827563595006072678073279037090270899859830340186745590434514706387313126007116010961853076538990518349461809330053687525887885795783871561794414745145567696130119195650752559952449225228010973478944760455071248685109643491488748042138021658760679636899846784808627677217404458769590830176442760032128682739954245125083785580793588870015081775732315733942334529724303662179292913265761017324344192343687856992318167356819436461684281197439742776584107143399099603347053258346078396015527720773853107796160689737255434797500879715492073625230402667240006784731432890350966221283666181296174490702857913196922952979771446365269471775162125587161399013477190377877919404547918387139915467061154977989967435227059497503921247721122930021660408623082994553747962867188983087493451335509682778103710539704666224042021875700282299303487112533839844318073486608569797189005840244737038187993486250555080068558495333303558191843574262207667991001550344963314446593471533466839834425209113195722333997192637462381568838355618388607012309667617077531855633506532691480436466671105637725530685946418366297925130939161924714411848121743503061949428208120789991093917464973214215035119563908108694071696744637939653200398314480560537005328173494530595843424860004331202022601440253268577018398915294214919695493166750827610052449930985616332451221982363281957599358944929292937772213326730807053717873200062065402086722854647071881095063578735586297210405664666740049949380431400844825037179672453669807892923252642135863641619612614043962126231355280074041239131078980372449253431754780709392437350095375269292824587035443261674493874561183242430116410010721741071241040586003227785428589026074860252191201369742373196458836643951303706345915405287336375792949980129104046312568685607315758791248803026355509372357559318500070883022955345951862752535780675442825619804136363884432113315356854427156362936470066090450173005807321061331088771093813246998894855241734725415468995221177440440845693072276969886485090301119556738093408509210825706051641211967763674847667898741659669680107964968661353975207133744214418156022999476917700892599747245942356060995975614849562035216405950845922571223530489664916580537055666757291557223580474547041661137059090318398333427965648051615631844403538464659572394603136611875007718370375484471924090444305492881370603483076612797434969500262104370186642242362081082432012326096699795855484658591958831830183321025101262768905806757607677498866378784452646292083650783497273959408968151401545374843249534288755189717803003149306609527283834385851295107318147665543044062507226444586307572741070807892293615032339969305684056295102798493399678795008593458588837483991998104535818661001229046041710657713283353280603471889894681691516425151676726416991712175497067464552801176513047249979711115695868555064669149748074180921317162520746769195996663094979744169363068797688684541517686240229159733037272766765904499920353292518788943613562535782172949640371167532403785804482500884336578027350815794336462990286715205191477835127759591343955697811099182201561882995363722886728473816887271338272022173506385492665753935952920870171079121161394440941916425877274076920735466557941356893495496906973099502830620578924572145916008749833438593245568400787711605019220570978434262254995006670246908350753141741744081688705475968225066719901127345633042690130165611560778259499779895801923583020560130246601018551168624155819520830948205601743832191703903157730242749490504879811344975494282249350255096661153451577642586053565936445183253417290512644684494696038928717998942724581929211451002586142873479683804632981891266048094861026487648103856363778514252120755420508364221977475561191533584911673147302893816632011816481952153179061627003523532789062350220537244039642460313998810474171738489494700003984348559841447913269231043323587658227792628302230618670365145509839877178916848022293602793005088202677184587130218304120967345511441100984331645284837309149559487058847976840981540818560083493832750609597558915200575552782075375518662879792512433103074739336178104224852906852974233869463351933334055074090084559272311708674039735407818755034247353596307094353191677612138776402139111443646465440957950136044045453379839892404536197039884212616197079489421204570496780946556075060651945596570555550499129938443921146884654591941684141850639766241893716539975697911730191590003707979190099926692002472705334979702859137860160717829435155700108148218051140326854255190552498481086645296497001075521685638483589205877814408252480773811548474550210063418546226343521034983855117915118413968203363767423267574050720791243656914258042875813770886952703954391063033317021423004044711110427286150835871283849231411525476156373464263530144924315723766291633019387586784395074390577560379018152212757002503767186681803979249305614946459425348263063570659920109854186896900562096002941542138633345751617754566100093576243510161103945645689052631162064267651442434303591543822548025750643779550989247127911376512916418954863999007991093177361920927462396332707991961005513860098216254462157782648680605194746837783973559014608355005910572431222205747267067659114407180891937521950855628466378600044710234742162484867298593271124723851880356899397263978522685584242853625073859562295406671699590636600961524136549789111768691865967373105244333439571837174753595226150824112648300368487146734749209065162789227246358035565726933280946169877717216127848797108006994688107131093091618587588628440759600388764051437107777130980835916734660327766482062968517876981791511951284726065015542420963423738464086814910132178996624492389766737214467803891024190448232457956113699168943542485255906831519109799712225517910126979028447581582660520110444897647760988357215957996107620842606546370265889305218710132091953032425916675334476659280641863432409932646119756294926259838385792710788686085556146022049554766577389670479643833312665710020844179400535651978475627647890829468744916215812754099008581656757046055970329935790105326803932908855434530736245196161803359104041276239137100593510159834169154816557745362465914231515808779345035899391867994615910655990486248264718284604301097087499965727855255415605742275279322904723054464434130447841050439944395689155150122859933088350196491894155702588961740929787163460936511711183433765104136725378473320914646144527181486009770261452503220950312264521180550698459363793410077272815054735277758212425975712674426567231533208728704988162968485390372450659263163251801764365257434780665026747004443231130130390774033971013891441071572168882166071606814581164343331200915742353976241988913493538560609515711636953549507658550002205173954973745638727230451268216401100451355430852637166724806301642393650827768294614780374953838286613650148889777020634266333087144357971447704451397996742124331774435090433259119399791368922804595209797987426804434354465842737197287884704164456154956107116703355365639111660863037403393583694272689767049514072800256021455644084507761274832998862743041695024918190442370631008424890299024725054842534401829823358496099346294862310264246876354380896175261364158535584087843877148094193503142818668438210678920692237085437198185870292084931550685799777542670834998834100082463978089696851490322661932872724021437868668193512896762230777496233136658489174811329102317043176820571546626779518233102050957855744258122278284397216000347438728690278146594258936023673233103004504004270045256701635410631980538688539003135811374136076902441763714121014272776679923995932135545332838593644486333116618243169250407498650324802321754915336453340407483991883525205489169168291171738446963385608757870727004474588998922431367648854970458749542891394862035457962735508958664814868768966253633585585873725006133538696813557121314586706303840549253711452003392047133711088764724112830571558397044723045418750529384605126340011295995982486846277851787828716680704924190655617097245262331385029934585441392485958442626774362170204125087223777149348409445373855314071900434322737248273008937434924397680802700459433698322552555780074565528105202482732661361739319823247413403590356363082300733300399078514839091421911080935624569598898415166461209691149269296376211503236149454557471092386912478375918189426382298868277820223757277896739322375357693277834781454258559279803740032509374473492631737123968159722606516061025430882935488628856933830757549890526955712819365596356966226060837017391881389969623726206058746955835758505648770566422932456720232212568078626318124147252202686629221687617801054913841465078112519172956591120028816090754848771377272634770038874979501250144153404260714908649221630912075581120725919264869677306377687350943307345336610516163556769714864630940088433502188123920570816209988612588862510431536385737674055104852055567808558747360718311103300316041795661389945218495905102171820193365516825113535426200981661468053527004797964607159797137533416088167830635399917872915502888615719001465017244971656378518862183799085598699161393885392532702719234903364529860116412780539566578185383840980966467003294071417598485654294252995015211462900135941032855791091402339702401614779798033319649911933658401249288647558039044427850629501388193971546942495933779199791453060289574147517614387643833705236963093746016473243022122438775578454050995391323437557507315103439327111289437516871754162368492438497221481780659351915220387859571129445875682184921970259390758123483441338286681955687910761904273334448723326596555575660550216880115821100315014630443822435521210792593081122381593642257437921972358773361864268070757787253345111751203060971276073009390784651668277676649582934297259367075260094497090242258627860486800771151065641295728853242333343218352213729261117771586553174299319229690777007026789538746725173871023616134372365025410190086889031424137360761432594374394300026524936417802133121790779017342359842282167723448580488742569052397461210135137023143475595564170466098113090459377730379620620791098092589839110639198373753935888806288319735207310829707866258633731662651514905257709520315500709594189760891897821613462154036353550092262525471843602865066959473769612182750261667572644272532592274275825887280068485428192102318154106229980662498725201244359893805393978612981789882289341327734997174311977090947447367114031733837259417262156111264679126502802536694170853856938358899571671615148979795598230785028653110021817829325939799115788048071421777505656637390868992892522718075105842667282527900178109368112786645962645272524296689334639904883301606719961277310970502168944036794744844727737553209244316594548465540510376756681056721154786948728271631765664798091840094087733339252989717057707857626494242742277628213437250791630490845440570217799446278142788944609031584393123645375995053840984862166514529776450621082040329972878662156249943130972571804186302330882964658801382174890852578975269755584572523564778395716717429792154760908199087155368291650743142920581788441027280283223286839678299169239885524943385624709319224223725290012387253799028043292492281498900440349765275158105029005152321552788308714883736970447601336588161897749964632294103930449951600685188409622301509820735425874186208228163763935042288752130055902744476129035135066440123872722124579837340448744059751172079009803050411331580293168593920183852674996121163684835434041368470833218909339281217295821262166953615925141435854968642644870586128115652901117086919719567397825674677565330508626597308796788373479236144990643036317340378015399487188279405193118253381648738488778406017467886749908721520499292092784997907477772434241512586392113446588298684161628658286991898797315764795906935839934241216213743819673237834135275672954104886138843361306032271117856773136874808435900458476975401390435119174724000609601117144466818256762354645183053801481504585244428759604754982424085491949915475582963431251034639747522488146690058812634098030641850511434994624454499242510738078451604650073594862242854891487135324398383266339578890278091354971093377443936847149333552586291374683016695943439477956698206564484289485942000395018115395124549719989782521718489128017609922293353666946939573719093703658796784236640180474396633301775839413617985703716345279753583006216712210913579179122101768896252256425659533059114931739580600214841596246814470834146759220819711925502084957084173673595568794038121049840147323530316957430329695641354029600817511229377568210615612388112815295514239850729643839128325011711737565957492577705798236404008275785577750858291039475022003454613373193769559366447326423130971185026909525320528747319057945010340743685407839483694514728112437795167238208218053660218615839286685512469514304468323739326906697557938195160737818451584237160288518422017828818739384615440579577177917942273476256293997502399138035087424571306203248761029599182833344204029405225636421114184524879051883300544240762900346954564976931788596872892671920486911316341518482351739089978267980738746345353565699276648665041651271670571471819190134581948413286143821797822683240741498808716870745286092441970032571313045763136935261740482326322474351650935685075019498089911332473592588325090285240633095605195760857906574326329940459776968008893345682790280963438929474483767051071978716157718519714491930982305672909618323525188092207429167061615600441457099025035974116040158773480474782746864729962949218938081354193677247896998872696570379380356562521275321051818407449816694943893336521235953447510905715013511925504043114986757152857103192446631040288394680280037806100282213286668464907440912704227260437049707977065481833395784974412326048286568769669748784027544892870933352949098265201021932809397601594944838595420925705418571284128411256051354793914708159692224281223265524629255801436214950135472753414613751038406383621116344739427777528950605807938209157655140009695429925215947826763800287770580751294353222632893178169080651517706069074978194135670057306639629624747690091300233457110144681114076131696974666363147293576914841860804823278069887160999785634690966331127843208178437942628501166793320785862549444254691615097552715385242083039053216179756987587532360647973477122582605390083454679086844124198998402644650337055665828719621141461597042862203456579092277888831772151366829538577529724527471027100839940050893001548600473729348864246615368060307546617441763117183900346381693375561555721876173595873103327497107309306895287050564569161766015612349694543150265815587158037442182551714630865583038658434885401159774589386093953102018630823895994669512746112964437934239595162866019642021467191338671579280412388416753313843168974513553150672431382789251870419518825204241848229537683218470538281436543321210427819777857699869293976933277581076409021873309439969083397817590220543162009671928360895491242432096825440710808922713065154300291444037296649617057690861984720441069813216722528516987056941247931650497597352518271219396688098436341716290240696868814061897348911700033224435604636519744981661718153302159944452729620132037170638890602823543031142374054828888172909871426816153540616219965871774326752797068189000046799829320659374385048558596749348258151898540300760573092039836672614010620846607132029497994714736550273055494212226367020118123774887279931409433730079727779159870972916136304237795151772852867428346389812783818745051485661630356024548066241366446266570533976203292645444400224275188015743415396699909762766315188637912235225613568150689306032460031834852074458323310415767325035414367607160970208859332468401803533612064379780932529223322120889521007015457244458496589108202917852344997593671313864714587423665217199631597651859408146742591058522558235177073460624839896210278684930815434114730076369772791810781540631077260583749838666761382513968582487496795357691818942130853165375336769536658438037059088741980404792922265296417193146425518448228418035576296344803742374224924019781523604461203117266073769467520200914898694785585116811534452430051970137921208280043819745230996744580737615146041650153344877123186543609427701529429460696428269413435243299233615683444106174933832802394497185833737034576314592492253516537576900525901626949131838682639961444583472189427262636067567381829876953153617091180762189286708204506413182812633478988246021651115670273991954982068412623853785215837434648481484451250344604612866847509350834296194013084716696700640866425590938056289604778802750573330887970084256432660681728172548543205691957225237225744926103030424464945687916380589658664895047118674539328219902716740678546288327397017209091583902707516249768675968660847486667287712964615969880852927238707311653920854903282857663329918361129305414353601417737312642705604200984499955479930386430091851235181924574721278263230027778987734984759404082308764805957148793163745579021182714292461937723994312672883651048388981118625251981229076366476889240691423132500159822634082499916856798918479009421488212015103961217180821145037214114601328504496671405489719189740238838016394521470722313311767581555720013513454426168632636600460324273912540921739649842456412515917757970814425800928865165631847891831013263949501932496015101432234779976703135603339483403588005804619228289739348605117254192102742602845660952264218040255913506017132483068572018099164277905164899368722782332946586252569162038597867337073540242273573968360312151624322711103069431521219112234004466768014266700299606367336193685997792484559266409492928517732397950396137214338082430776843452278239008325033511088295653379188434984791181785508925389900966904838551738731469157215279935867960143148853434243834193511855166111565732890288371181678298425059614224153363806812458546335286507143498356528301016587834674504155720453027714783040813796236458843463270536600351398594201271586177528989936780678031219134245051614445611699104004402374405675152743463690497521665276705175591560177058688094478852290127503549762302631553739418841419951751853855334742159111017812889314524173029771817698320449514123571801188752200277629286928432008629461598094888439102316887723707579116462096513890068887882272927810014185245872281587052567416805522072823388188890597509763424927025485803057058350281528471036842988329187412805469490693312217970804082417571275970521947977612793458889102327438290971654336981628670098119282192465219895016269267024001318351231703728347196450971022353721322985684167292576867213370719534052478590493282878966326845868695896661156044420727494107546247573587761439312317166231290664991976352700100518054419967418235047389629497206462638639517274754192274803334674116863276374532274203671975784935410014839059107601433925088605114903669585752593965597221079240475504842756111009233194450824805856925646998840763532537496618580119021114584242316105977062055633445262400354669907110866420113770726435327398124954008334152218892064003735972143217315384852119010753798805368985956067333593780897717344038085905680191433883741544664941497624844667616107987027359253408337131765827421932674746787807116423708029300608449722827229971253757711900949996793890847742906091681646394811871304438265596875382793807149164424157352697577819420128018115637631166735313639860272880884984113629263016256584384319362501091942267344279528203993639576947007353952331593505064843783697328060706480906350699527595815010277022865687838878793707771485069419814050908695845981669463266994843684415154633206485552874970016313932851657064775638948846202786574894800990298663591332171483306606673559317495084374170217873922881844233763099481257221464519118271161153663124660437715812584795472338118815620838482275028638074599667929577613988988050489208301398496708208335464089412507007135445289591838719658225517901647657821530614865305486307909877167360680462122783563722232894364250895176981205559424556199099711912416040953032371102627603836486353559535515127606306267792229207626213835491126925478469675444424617797737353503569557709905189046701855231321057305302409987716015316261182828825741843432532971851836557178229198461634656839604983101463373897356498957573350507656715719974453795891282241514653457326249012599345686980388543479739655471922179913145205147408941502487654411454036459217779552348397221971316503086937658156943848194808909898853640880795575168029948353663497591803096065590045265667299817202496175033265816149036587976658364505207044125207953862622170580440086671703230882757816791443769209998194842812806195567903821542060426638501462368908258653658544167305789589371033926429095143694426179466177906654502589238161883015544983272337471686728084602500826579085072091126171934708646457730186195803999911170244517502801963024639067696231518378122415038409186166339093392039319463337100055092379412477259782721892665557791090314296909171455095710620442595902187188510620901989526567518249163210464851877511583694499648433256125090200614889280110025250262964590681383012052050903285370465260965594560675518901677263934800957441974272793563294960245521362344353087576773643113207147543048279900996632700874027462863524499136393945821790480785836403406712509262306443616271826899289083139093605653828808537372840498210455398982377401964893559542285798252217370939289937979637710314507934360558139055282996209587168091473651203552759994136350197403658112417148638308005650271107389091199799205373776368994172390953041373253533477758257547207785320898782914310218749682742497593143430674957374756253325761731813184118363167459576903509772620809386481556134444770557663913189213081969029047114335927204424765335078488109999175288733231694883600620846082347334416144249450354875425728319928455339953079304996769882419053262812308370415289945347616174352422311357894954080561646255677992851085997239259498034957125816674147945582149962540611001919879352459153753489311657546571292897309415463399264638548090835619917675520695305433404388964208126800863246978487408440789881747717648165083222209408493391208087427447643277630573875883120568900982843890346743810101862387822054385873403155639700653902670307919685803159326953206636272111602206016919229416364774545197199979121307574561089665567649180999010892826608882847684161401298199552895578966182478059159406939521272585198370269162442751122578585233074568689837918670779021466429113530625532969181434512538849672550377470551189482210728867545104517633360724967239647962679285103812528016174449531172360203098871900711375159016483379365698597134375928596701898003238797531245526513607042435880854657379085461358617411530744683490108613804508528932490268206329823751902053303770787956642440195608539012269108634525704096233721523488841007868938107761057176954635447565259165396278215337951529818160234861068468897952132133222458668494900241936372342070589690117349491963919194228835262621481253869382563054931545109644955396945871560571264263328436486156066538255851871831036058598631580227644847745204048924576012664942845508743794145903496323130463591064874758002599671014376878710421159858362085415505835270503380010923719751357588831919250088878918769842202241152250486136390061209728585299165225415358687597368100367641686054702178156849099964576258070250378969419718662172749735057209164863350397706857356975834074146164873836848521879336526259657086792827440516540543678625418470296594733572581519463305082268994137849923431480832906530719980295256144034727775672479748364222842947516521572148405286896741393682268965034006147896070110083568743711326709945229682374631887725352011896235169990041868113864523330315869341917285112892146817802830716454326456364454986791821704215377708293669206971326474847080052062283650573168540593169993044171166135057198925340366397327202342108452043415171618667614597701912352887938452614429712924430707272811236970091557886767944630034979861468091311505461364478487133023146083518603917137673350058528469464324445197572399084457990608150601416761208580296759497447849771995386757467018664608033053366129879733744846403320820677442064950781189886776217184724400000813960643739886795190336470607271775973490489517797559613498207757891094425947235560038600308298074812477554139035780082791857272991511204856940255868942851551657443075747331340081552127267599753291018372505385731032427863119364909540864602524761552005174062537306665492625106036135909005376585521053983114859367378334248457634835489025417711997797003388112081929723780975604621762081557980033938441641068011800490117470234394820646058221268839551681056580296998742747387683675705301040803054913926456961736987997339142604980653898748639613274682952292612643714838866961220991379001836195151043901475255491790493268263332417518305819514790860269392210086202493340622038192487325741741934153610004962390638169453240388971077201890724454400279557524589444875878602504723916156674171951716219693552604219197495832625808378521610549235014000732882272477789908741324564856845331083396244343961363539823288203341945233617769924475403857853212528029569303712891218984243076616901561380628033431044076444729661296518017975133617951089101835593160382291968611529011011739767943368134966221738043659435094176093685110349863816795484213618262509881560582342151411812764713934192576210927353503222909737550926150468689042909368416728383570481823366199475892568245224854679794909296943298530046130965661125041801117089991018234981715954839947014895431165357350448390693795479730407512627861000119004489058979773095874493896499129843013412546988097136972479357770408552476255124151812169940571784582832284389409460283256405449270105691142089856728514434280081598308456378572816669394458703508025410018015060776722183970408955506112683009801673420691145080170363463296832046737883139865704962857143066668155743904679355808194239129336497963694164432826089905287826463261922090380529663812292241601417683780285119771243122626194819496805431042857264726231762337468142537804622967220883023646922989524982210067009507801763950557082300002191899642194307578189083285153771846822748478656162341296220717619127588076907110553068336805400416713022792779222606106353080115471794077206075057838248687534733966605623331381432415077940118430332502879709348078655429556434003181082661614196815279397619995018480389253962850849118297626474410105470911966541917313532842001397482873883557683648805734197656058585108232542346740378425561019002292373960484061245615741303532241673002398363411102208919921794428157664095517672410094377533860921174835929884329327250254291355032979445827160545214145686160600912679565550009467460864708477448954344775659975369683829558092777716293180217237012517441507971316068194308308898999045432186675770637822383144494470820415797464004696798846410255200248584651178042020046928277713673513574658307532441327792127124946906556852021782117836973062327512658336750501560872988643398646272320793420954154466208973922258232712607708630614228480587446627809833155564008209010215488022953048490126738805317980913618589093928295967821268832082190499655703514618124689673540679649543766713102329236749997985561436820970828784948302793484174099759330605328951703462524398475067926788265792188934330846777343074125992623096915013131553771396308887780515722489335965343869906757734841467449103783862096681732000080374923020778305079566907604183987589544316458837203880526134325256843034068117397131089231832240929243618482482826519718337985858999152201585501905338220794531942556545698404270029905745298418524586078953654818190007827530895748879487391220731912125949972701484161165406231298260461601467713244951959500998401294916467981155323612155424820281626327680679166223661150189770294638211878007371246456078388845378065576927982570509263646712127655590138647964224008930250515900303670115962886286000212142954606376431354376565769297622047708688682321266927645381873392811170126641170052398744871407033873394316737395973220258524814892193571100120139628080215927972465610309830172159804061629226936832385391083018966885187304422959205208537098904678140021217134038417787296119959319387504704456715406357109281387710497817567795132527078408547566145329534067932949346914668303220063401375641496639975048528126981402106394766237943880204534108082434243845193431292711574739119243262290800103249255536991949250001810776612261386018635592332056244155615824664574430175060014836740073938819912943079302243882403643418988139745647729972139352201695445228445187824741950443114859189045606803794991082354032955937918485955893955238631453055959780545643210362645523729030145746745856303898565854516076406728376194515923191802309427651453757750424938182737267716619688890558639986733116885872666300519028766506581746745896768831507257346292798290197667160974235201838072037100283243145342960576896638021581297013469210142025380949285886200796295070155787796904374246005931532493752592741296642167089780969144961207915375740686513379106435340107837394556821601165083831121434394307562081994996129696095480120817070541556981739970827104586776278368738707328578408217457965248702432777076657980747583946168936569287929747363579129354684387516182580744993817430556078991815906248840573804064293605579630956184194300618964114250332203851756183365906040337564466274237675880401854220946305996989659675141960604324071368484640419102440848571488939706749203938647789708314675399588038230147720051862064334237315780564017890009494556355351661491509485626211649176676190431943986560972295625854934033676720953104391047470237566816020961330511657330363064214285874494638314532167267520896019152491837026987348018314138523608738460998803931498555621903087193384309822606495381546360930994414500617658204582174256223749133639013576615737443519609021774020029511437742085818595601368009133599422671701670239318295822504744731415984248493530285706062633652359385389907261794622294399395883455300957466200210259278114818353812650938036661387774803021854583391139052680481542058225591703279984655802973989144092587717934280442365705917487211604322648889182901113543044866606554774056754049672122589702766068022629208647392053116526807340848186218030429060817201366413589945424963410494352497204442088753681570639722471005777032550775797602350713115511691264051334857319725493374370199812519861261377629533858521349464602855861894453457592133607219367610071245914716984504081664344964570634457787694021383628972660870371858449073027621338104357694446847198999925642421409125535048078478178364143608092270907645818412909629313348298418058060931377268843119916137177040533941255346746258458983887669932884403982434409184864540717790570869053986740515572776995266344558032691713670003875233477517423923228599809233034106947651159936838332757226770320312317061669613708414104405223001715141127131301216979786039679083842237015848978275000540024891130972527377929674191370889760245312124937389740724710760591794881958775372436996395258416401186832532235024690739422265421202453800100618599626827082836000126347452249425290499264958343311616934546173655726847205351924955654959615536189884947839835196014585900759895456890752966972268710789482600701120125038664373723297841993416825542514397877917010986972204145234838888667346113062279239463496714761848072450138619581391528993757066676090101301518450154079098504701681641712983536081465354985176627552821844411384771536010779642236722500647784571302354673774930646274175688089577380067787719018712085026230389282743675851693794689296963740284866571105136147537466448441027790605268931635820858400790827351352071908865801845941300177190925108947572085777758047578326820457826058806589591303547753430079658981060790032270967802226320315259479299469450798540848212312766407231427302875646561836068726467043062259175950292475900526013777639421789945853713598599327483525142658987490653011746301067814835100906465384097423125888141636524717426853620735185379058509074248189169477123386010326753068699200819037634877616755863391021443145775639222344459569825170169207601977937169045504199815753567223869283218393467371741713849923740730763128719856972531940129017758298680860426913835635943681399137817016618228303470321199102230318937815068056101490972854331260052905351548203156276020936224411436654099991181070876819108131426808263833826821600203231699444257388225164003884597430502850811788886135329218816790462861134833219844209154707917838269350183626228323897718474334710670961722538108662725919322711319827819412184930684690208318442759096055364644742140886799212445219660684224525736715264850179897515723999382867221680566821203120140417795336088096538977876142987968636313043416191757353385987124438032344084513944688006894415133184898873244572426690425648318286676140756081524111679709300300442829636159179261284226497216563366752555898762560259785515212759921474039379028366952715879213717555047070263490280859372653471613095322393067390273423600090044282079558820513145459101305546209917439405108195710415400930491484266598770810352207167523138126664748477660103460737233711348090752095987868454268541510431356209523477613469654520342367451212662608233123563994067682887236631635972250495486117085599504762959988859033738356213481610665147036550094095950242576678275563982938523097650009963576911642211537046870146129376442215868034761847797442762410364080166709256284407305020063336415122076646954120111968765953149257612289294125888459039972336900774620686402022751783435760388571679988321401026551485572649485699670562987813050906466859285619134709157602588155075691426871854496129092863176066333112654338371710043224928474990695425958900128190063186150738924982456572383603145987841369664069706096668665989983222477013669288956266662053907797473921945555862940975877641553678287843706000813610402136624944844806603588099147870880102637987910349184722762572886628872494526994303348983093452536469622510526458265345511131870702800803123712279541467708478039386112408039214304780158311348215241931490742118675905013171427877059320251524730193723299778589503274018512079710613600316163419814661560333196174196848629533746554461867661132581999314002069203375625081094373422167611067521664132322511566057898815012092104236045987097542110910976685928722114798295353893955842567542420402364104489806850680982520491530702023990605232324536510114137298693771326397438202515256548350066697919874159890491598693120461216220746582707594521075927706977264587658222914095860342077706698925095539288169589727884923848052138816572154984666659582179628839878015059900463951384095312451121300514793980217582209377865754100604645139303159468963916112285976359725673419889344868339535185251389057138862597487579507632811869987135681724232623694518391411242288624976870014127202120830453377957602435162233519203672609544542261355955683910837429119930707477312971446347581049965798412460876103925965418887900270414016019421358901550232096052202508088926775189175350576695905390475643317569301537019362106301427921874633027666139947081659829105900402232042427128199037374529085631004037258597892650048221236695134990622642729088319946732576247086669289214233964458987181234910604063209349049072836314261231873401981161231284057140591097585112570295239409803363061313696459256121206339220305907358370748994804533754381596571980346881610901364894107395195294520175042000619654490545803273662069642956308703606985352276438612270202237038303382177264957874838458080634710515675416567869604950855078866002034402436385875757655484399791866054776604522603538059109568051889840429835028604715305522729377041993540829943568414694939158486320887374594935473647296625324660542886310617219658117770393951040932080297863176896950933809439559471889527649281903512794704418520345828164430577717314612065115197456233688112995965995977321028720230338346790608314210994192807318443465606619858291473019000165181694358050973625855738745538951550740211902334345976233044532154893693590185544084822227424731460083196772217165120741704481023052259517393918486297868166713028969984622914296098149661291910046034818942930290747141500421087442363772476594798946307828071981420573163261660073458074425107198195371931141279319662384803192993962776963794570342203883444884627439270587329066425213338267802756997607245122755476243688794805417756957153684233187747807992674214051813242787074977420319424077097229865236633306469378854343226866764110603994729086397112245814070314523210549010902004813823242411193384680469359404023405484988519003003972372072768914799654024364521021948724810610920675372544457494416457942192304390305274060865919236629898155571337658086630672220517372919988424226212619675832392763069717716191200312823742792600044258098081079136479145661511830767939900005235817518020102092332648299845095145164432317516776834917400111836966528105025976190112305746613123402149016133578827417173155172728999785577323579104178708519829325596716258361385338942158757519111132438468779080208761420155288192740381408247490501502780314251400342485407519271611756048537477286028937165000805542845318646043529336894661931069541216513455356323483176228007552380279468446136493358152664626720116097939690203769430829233799494868760499252975872943672826481090878058007286105462304166367290671975482404790057555255549312799429787952724978196115559287859321621499058966903168096551279499051776415025010301435375384219218950172766411146795103008468692969243830254983845319527621464781163548736312241588849652084783557312312167953633698975497833258044483840660378267625418994895606633044463688936367470004458387363539963751093564894728914356861623772973996458999830939795819674915447319186359147031830753756730766054969226933337323367053509612914683945745935955323476536349645568135697937410449989051729306296981630234893749955318743649699355302666615799665879460524232533252877837188416903609172624435479930735037292052372708276842350953870956315838405322431330117071820056331396482357123120223458699405398758027491342740123618572264162979411569890266477487799233016089501060849038690231604572961568272558146334540077022839926303185949408541683720056354941576408224251068622125992459042065916451394560701766318032326153260454223350057740804138483460625199057141886360771269931041613128314463781629627822543387205400648587812467264285075579534054321695033715458285500914530950063781373962870241984244905186295344908631026096651251531069990401468585438576348247398281224385410582967255506842734166508534209186561569951638109365328136470334423706868151484981116362410834918520452125438220922731414774420824424913310035497772714483337124882906503372919625174682165897399631167628955386650638849460083814012087424671888921807616012389208957579108174153387178046962938207800526762450174063466466888841731432155759035587105728789114637582432761239114414790639045894386580402834104369044463081567291767164898320215914716387534679483844682488216555555832370097667768225331435779830775381950274967854719358346460149056782915771964345519075145100678643090163812727146252206151456895409304067940027927463445901640888499887457766075149086910665308988562426509287527149309015699734922340287865191374265423929178303650050284830516228815255780718858157394045607149593335464483720725428922205772270680353065499933429777873489153314044708900249695406795566393558681019380284939245428689127540735776764903966494196452705448267309173197041004864479740524786462311567431475792161962362377798023309087400721497028208340444422574370961483325067201596728416826595958794445201595933843444403032970210877689019395227041026925805015991393980635683691456103768288738313183325484800906645120017989355325274856476225666199408965210033185239726306219021357494320836119639164170384285969261332863656435389125056552678248061336215101114704098209483965594912451501999086994509027002951163407678950291638324295528604731310687971718028708389719483202155422078967043769217859120149319592940392322157636870924095860109923126587188364610554132347218204783788629997993791952352690390965882642481328719325904554231869352493523570310943434230267931962148806146799432532635455534360259053262176091420857687850918863219804838753486950634293596969082573540109333512676848312571523191104649074850766098931921271223063495816853802756272850624303434758386229590915147566770724578493603582853607577064346086265271131482528590407087749961143572403592371827257457358167477044429102046268412650365036243437311476344920407899769151972191771440574859465528358623966901250656287420612943755356965182103080389659341023996463956925422820585525107780966096158658455216990900840259404829943232039088491874756931158563379852954289005465561478042847952608084830683226195679693665392479919575588123064819461730473083885169787548305475925140528518058727816104775581587539430957013261288356458462999496072795748131207264821688510619451766963002601385193390664788121824967633254361886994611453111992593677166945402639029551745363121504320653346410166953294017661020970611570221477735300827044834241910297346255271834064863744690770122360435288520802283856786250841165304389361646234547067069901187396794246419176803537810157040543075896191551250971143968552640357162217884182100368159683590083191999162436433478660421518963522212991144606822800029884629568370353245468508613263088607814394966211426536379197031458640343692768650303649319839462923535317751718371963470813285625052691405670778207449081830604417139209795653625787862665159354943632177408025624802215962965865673193631237920165333787828941427469736433673145309670158513770483249848983168580190801642476526952481872313517405393753075914434937530367753666380587795061593126505572429770635873358783943058260317643055175778075153207445796322550487408131806715307831771378285307735098435964859985620528011627681552894951547707126713471257272039400416795483146003868936370290713989497509965527827907630590604678227706181156647279552264583995081970855591166500263931770473623482964991599244926874725907314538511339920143816352827503081041307007600827758279839096727240027337920186549490559518460239750420711234856398345668308143752422143081872196714404061944826763243110378359146527625099130646755023559833363357655675182485337190857875572754723048079106553637813960061506856257165990791146763887969062475911878194898058582170923237256707355973239431913799967008780814119193972245879162938097360106632695961384509153393261016911430681932399584739557968982363874350885470580061345152716201554999316522554631351375793997708829113649270065868579348254989874353322889274076152785356520495689264635704047001752379555641957506076704275639661672980605353108699231145825246123030283351796749400109698612011598082635249978651803814797948786265871945932142987732819153351883071521430669786835203088116119905382513323627477067261696564472113607251777756660771858656556468483166869665507174835685487926057205225206199337587926351156913268159805168045620087840855751943383498948603197331257502745341761893121304379858690755683123924433815838604900278152391261246692000139178665706496545557924086222557790870652126995386382766710055446585180187351269182532718080241226774717209315177942485160043835349801331893038338527229774586876209447035237396077881280027361231758341038224482189412313622748192947092971549013185739855613719829776397828698662013408709259390877466353044651008717569082543400334332159020051184412429984801094689072441343246452745420169987944452324270209746357450516035145004080919446918697551549734341261247667658207659029968105211804488606685789920100657394542569033285504505062909675258752923125647530975874548858909184728922188999797698670847892164182002692957657062154796714878269809437400530895797855206809594481926509005284547001084716767445429092946456171043732330093541003176064566735809498190647276050795663398537836421633116697844735899526577512697499518988137302752744253418946664277651316347408031070456285876881237589542131749173122040696552328706272140527266685792408575593476005440932408818832579644955286778232693938527461313451929280158567498241001155680234914879270295203318495899211388992805493716513595543893504859910770691172758579129537491923790986322205658935499154851821060275820330118208165623002444382466244416532799183213123117005862103645520380015754904509017576163160720945906510149056644409598784665735362234661720442961529043114042538154769617353800086725055114376119771933859033891498283711862164356420191682655750332952489629398878985790817000694143238831704643833626513290486572879102609039937884013211093660175348678691038585284885691671625525083997305807767598947021218769893047222106350113677602455385131458191849811818899566735362036779169763956340126775326413378201337801921787439903701135741743863514870868377649102046973796035065424291299376823300166644930815527786662834672617730517482207719911447570354938126027529970316365824160436642278580646937392555969209457838061870335370106443787849178722958691941629674900485050547588876315443120223384562837357706949296097572120692716489741579555211300198117840021847406725719609216788559405837721790779945418799127102662302217777540029095095204637088855858470743206667692812766478704010260462174066122252925872724020468854202795491220574114527706531198039082460434633524335146012680471861504909508801818422167868186933069338455969465090678065493747718886619503297631966020538188479827548393823618948999000519937922826005174077904475661055257355120767762072419586909231686261313501301058386686743472239114700523194750243213767486143764718977284557534947199075620311055374217456483751848870929797999087446956595821803779235587232232590182007992023833184691067879141229988982786603438050041628653622779303294408816110158702627758269453113639113644850319678512315118328087082985336874810629981493227816776541089259159039292052635585735607832231938215409001460718026576216932595768077119079719393728078632740371979476254190717509684032916728934504049661199542450360534115266562193375353490272564696189108035230520290180278043759915737244718166116296083711017377648398697392665036008802323730356860704148721081245059393235442251903251671141592262032595167216327809258346343687292296969281430412780111215152416274356075228523157779734645439046695526711086826165104181467155029372685461388159944485756843584049696127738622190934916342602152504186590469190230940108050426966350783273985020715587523796378976847160807400913512776547222495368044353776390341252733337724151345645195602981567523031177946173757924719382491504828991441797003596268884363500020806922316846748546212420923231275155645498881631325694075572841346589811206186362273157688515028669421539138131553409330885402602186083348871655426751823600578254859417021677571431926083764717453554115485641860077252052324109979422800156696203587145473494668964352810413139135364942297014182569593629625139259151336020678057645386740495657466521960079711536919862187071755752243813329573299886874850590508590192322801285239589524258713846215306275390422796482035176026093436402731697364873084841809311333571736948170292882093043710138260960090708265818074720625898223831817453925565373653996523416370023755198117503220932485799869792929102119677686144185879541014928553827240926988382126700621007082676154141919377157792717806921345166155451697074047158098509385981357660305605304437667855623603577959663458828800814619662953821567352566227297763203340040188930708466648433653743552479731037546733100678331452107309305084894077073718264431424386055111255051895123612544707705121341937586631004284402389030208578042553538920621092651783603053257315167701184685853750317538098706215062556091869825581471238306044796158062020968383040936028178150103938084313029800497859617336213407951120608623664911629282566912879772793599174812739407565629786982272228046466750174755946097336569560287719890241024968277969280992473727087348371188501916836030871835797186686566272096293355098244228083576943693228132317151626483824348224610751815528940632740679659435061905499957620159349765743982984444353293725766708616009840635119489284127354252207762827883621823869057098688382589958740406925312608468489668895190804097223088330265216338449198640093323901175001211520232902647141854075686187747554045936660090959973357033343135893397511768836653461726736333213581375621495322498278793899029999790948405383710706955727662149231042341530941820394346664490890647633793407725600887998341680465351799636622318398761977509450567062772060908880253589859840137291793045964154351564149461819332874217064236408900802919422640627702094079240817088833824364849209825388924707316221805435988518663900873970560249927740008804746974998258649280782813272817069032448938665045779865898176216067469250850347059638156332619637956567384610735979147818432898359016242290237238470555197731550394545013256417380304094096394795559514601466293955819786997193928901815218214984862231281227451312675204031540528985352311625439942907229679847149177864347516192216461753261566709279374110529479295306578011151997927652322489276902944151593431116709542557764993600214851194726659888004623253821732163723196004398632520455044911574276759068464995363927613313562558310981738304840874063657191682762230426095161143058296572233177016478082344239164589737901309432252860873536665247658283160017687053167150802248675682784061379749022421370034566342393984136949892248702236560809065322211936144985392197823155614698211382141492368860834409834938793720835343303080602005424682580394074043070710059190484462867484640778327274728718169883985453516532123242420840598043289804358801238062830057861713452824104376995264055419049965542175176337405121576188933839547498727561998041902598490678672558366599000210983929897526799179272933067869202035802364517712675047239270899028981477853628124722776979730986452420244498087175749090797068301947309770036112603033525750164496172362967440505218850553619710559241467800554561477652235068936862908078682685230798809751276761640578335809201461473943127038520853541389999786338674978639525610296825546613502233668552829689007311621914272191193805710647433598894975677301130179685746548132259214197165853522693418559615156091765286840614006328946827054508059071995858807151156176266167493259941131576530806655484175045929512191074326617154696759558561919291647558806649471407870648965209018616574917844328440403583229336969489603639930230961084161476085621262618255251968619439980516066550653844097772498523619160834311186286530852031684248951047961591888126081117124839999412158145525315003205960030609690424668849546122696425627840027719354684815977200477933796676420153635171357370962700732913021178467451819997794889932371207135653514910792108131224202257530424655906530243678295945841346347001073534565771509796707119004105757153459443229279159825701954994196127245533669595867630611090441630180338502067469303409928982263251936417287890490634667036846837466032371867631354848333972020571679946160104362588561650571489289586337315487559509318222068369192966513838286271870079803337240688988727155041321872361377080711815507350606427107705127609449514844823252365263190575200981902453984434564725216048012696129604124661516546088258348054365385283438433027144185938963682632679247225667614718896575303964968173554722047553921078026018783882244596808398124807996602990339271598936929716312209769829121291964791932962068455154031540214795451637008000209279002039766045881585384693184399186077514772522336349159314036634187738922579183706921675801566077655168556251022435602915945266471846824569102207966592796948903893098492620900548729993958512067607100950656234714304919172616157997110900157109208596104556803663283426301998927459751901632093716719237357271925889809032729753142619514565099722598333639593805528293030529388579741333543357612770995839256945836477628830709516086090268424592477590513405802858993802956237486783657852746690739120132932649092449211885152572607079196653326132479664281650779318594597862748399528265562980699044618860377510477445224388439973651691834955743982298773677145894239244310804477151720077884286292599395297585659376881228852131083583365955326105284347307272807267038486950275259736701381500085560535934846061436059526828468180972647754180323382624481561214562085078091802516643300214050676837525177073085395110054083532934586362742278699116971987974172267490790119666008325348149671085930209901031302423065352161923969548129786944585838197715557650611305290755298381347588746134269036428673252726256426311141880813606587988362270764025080535953238430656535466308543175933926859916094884120465370509803958000402311045573846502513550657302698855614495099626882962789796763600299238148478592953461252192862981526802019699870637949416269944172069915423295505463006282196686102650803594922352901040687219107061193119709437283377738047545629165483560857865478878712085918561830854281916273084788607544650447348836636666225201426412326314772795182882342917397478698493357348067964304816754021552659136595924371916168072502342494448498615894985039744207762346208383646619873397184286051971564732776218838230322588637612798081312788010163821880977259740972226701050943148687414317478877680673488718487666055751391556390757098323937277172402987263005507333805089570513838590142281595480597779138418431961424098966708961006203375052360053530470751731539382597647240813863085141963384986428636609372410052127307380442797274626276580205678578364374998178735403556737131819062301360150009572790196538864705933882262886702148824308208391421765109797408646642240563915812688350236500264235132517457733809539229856419496509818303732733223596126039300537702755286232785149837684450222954051752704530011701047092227832747947176765084904767099914571059731323195196223102560388820185959654027617698417680600239968649116843079354939737689074274002384136919157245548800648963942506452481895940101936303172225386596791771105426063604622147779231478911861524765033784132297514283487416558670886355456222695760157976698436923635221073181915377572704713020873884344827130070045210615601956781417276224483721246143556628276400956287583329008475471220898982605850777414646904580299424711919453766226919028748970507111322702684176236174834186389981543840158192234806455636328600532653985575182144891128568440823364317338583302497846168852505577528025771923229339352165726518199333196448369005593704760352211067754092020626072953076392035130122210676756076316211731170751579005230443962705395864952774040733213416189929907915565193481322009677797348823122579284851831388394161953759992707743083064320625433737748823443801847493541221614945611250744284755900549997804166523057572027773838842157936632681267053805292260246246101621451848848166363558457959455340284615263646080922106526827420708144657705965200408878750694732395610501776441149761157650119294309141108091878040266252087640467767620614835989158008250392960218538439643685231301284543392486069410251888974378347575300399618130606784739571247083835446724150159064898158778294590813050195104793295924843859222383175479391188798615295027046805875391196092152877477963074497300836882935912184021984387046196381216469676705889675466651433372357225332312353554027455374393583685560140546425441450647709836100331433625913675442140808282091770216769343706080641923050141582014076201137157217082979813228633736136638241336185319522798221530774962353901370296126240365280192831138136342466889758923677050528208643132078107274453695111546737020473482639369336073265355136788423387303216128111991648625735726247902056219803973628760338224241269492707103953334759335863182674456915841790241811119267769135016871938613838593873524141746660170744925330873346739068818242779842272430325676668741409758775548847357427619558074317778585641870067673944844146326312921073478035446953213622347518933457473000881908748745947863072910819323009902080676098995373106945652923559400733838363713032609867487342094200956271426420917716233198793560363340591090840678665856372692720609755269688295736790869169555516340686626569602102361358509100932129185552535501474020290730159472069755290540185244959053061322593495104137873700073722709387550999017352864024145786038196150514851824228038962655164046138574689216249024808276097826044931518429172673043861170109439789631839429373216424556524853047894643399280883666778087887462856619505043994078683677580015031989875182995010914738762049325764307696722635256540452568102964454651312349702489563489904135145762339507690467175553319340308380496456646256810529777502528108675847589021180234671543770146266262074234592123051584937768334544739795823203295317486231110782108633544490983533359541088005368123434636584824515869495878215487286816048858991951190592408964677558182937254826537131858089955886148845648709374302502381351516661696810287256520665577902611090085184166229836597811827319870627352235258255859857963745747016925161581294871680002892100902361861897226589672104681877205834212609526021866017105031360233259757364251538918151716755459560200858425592737802926006625700522981577497365675811465566895604171669736666593062906146807800239445523147771961252282042074509796252925484343391919939183264941029974280187594862195986928662611408230397516468978620294616065135156797291135041235878130156518313438144732009745865027503564669729931765027314997958482145715586323432023705213219020657360430961837249728210143491376010361158909177047393232870451144548034456517361269011508746850076654172779236405000126019054471329898655133016481179652493793377117709576382880357351716906199464747751192939756150781295665672790851355241315189621324871731974863099156250318359133762841108809496828792319222696248317686486467423576952965096666545184116221624188621330082754904843249165621310931822900848315375437069188794562963118605017453090971995297650560380758642340409143288756565695231228703733962165250344601395789612001023241507754573139634839764742781846200638908269739632468125639479623673943026659236865295206716574122001529358471082115871080924306161861338413889573125997519730355446187178170878638728969718156420399629516106374489637713703024018254230339375152235991253424566825451904649347613162116823788914932659679583525909661421324516250832065464887895517375896077450585473075235721625709170976913753866128233335658692361042286371057514012300604715290189941904255895714685392768178777446856563281427067345848643248679819516943772001530885386115452786481563720137549030125575294870591961136467698761328687207550287967133865704730842953445612773028149779370798617912790998518568215069249939768767726108883656860892860340786235868257739879587469855676372109556716464967305309576670616800749024679851773307743009080790559321085479032266707443327101077592307962862455034265045087873859655447254882936259661685701943617799091209471627205486190900154002966098899819785742953563540274469960587785647644884245657706439279229850950270108322617855827464448111510356343711679221121633853733746902408862518899556733290142226744297403155524655365150178588459949305561911219585829908594756024273975434159784150373372568470468962795091322434514772141903869156040864561576458392343086100319346991572586735196383010014460697413278941099518493113574764441066548977974224967976056516346669707952678689898638147334617574825661827803269059633944558918952396435616902482296402389581843002120082593142197029778127307812697059274679492408865145650135711690385826210574407960161107262922134254703471088192100764862399957857075335440342690253702528444069306023437163108636144488164031727150253410174536528724854870735346010184861982127458467065264838721869109664654096146386987555550773397703698071616805786302748872623101600653427098996238482297042442531334565467210546220088753072804564104290507894235747841895223225040900186683746241975540345036326415875819948515651530244979857403413073148685720545195472450529470865415493804525965302783516275933618726531243453536712926859548342958832825081774712130846447980155541286753594618521910171895210877275341390898418496633905102311905143933361387996644822924646384900932484506615939595936955757271945268854889784990730497929402931183875592880917086795821725844165385995902723170738860015640264419179571439580951777086229039620771841232754214399927399747564482361770170842166986627040385888223577077800061641591215884742719417083290709631014259398585798629211693368029957846941205643150649380215615871221882778311229886854692280026466251715193456954391525392195833003545838335618120640701684290398166207778777223181154984107070478079713769029656804367900678610835626810153733806924313587831389539099225022188799186222414023248731877376214634915098873654820293334675074536413867607000607777537741454012056566810504635464006463629215757807895862419059767781807036243141145124259363096883761653358187324035672873351019089476428399023830072253513872954910175019186497652361123957943136305299374465287017994544733096897546353237284671466507438213481805685624950102351564681532862689779808492208168341449976898145213713406884404894921870394877138706362645947167936793813596933697168387008972385371689257682514581345186443212323420906032206468793999256854508985769934037406185115468530780406098762942875835647394723414465168148092403970428055814106068129231506897052220333608221932248429297788517956037944018423016346545650198794280262076904072720432323516629073733796893646101353658419904482535148981370276259214641581531260488366272096827306053681753743394499769710185875565177460423232715939167189016802786561384303759184286522099626752725569664766379807177255125307290601100582487470852910879318761024356118902332369849745520473774517816643407407044618133631511442545299034672051290227996868359761616257423987909535772344377262138125769618760673502585529867462452824164218338969639644679791551658029931270521618419321172394006806338797188009270089686226728824676872797779198797439736924462544274783652608364110635721469736535519956056738032446767142356727278832824498454976866922636061448023757240772605478623409406510485910427794456981298137954834759676741520766502277706549653276147088921722891023164060998198409225488901733167791152411241536715725141830290005934907674187692465822617861567904587876175443132672750578815978962721247551359133807078094854294301694312042860157880190564887641049902223419936496018525273510868884825833828263255538246881127957472778002602415427543900607085612217740433905395597019502863136030251940160163513443762194216043447372165853629714302482308187542604993716590623103798246339478431899489502108329975808970200485586664678239336425959971315399292627298442962535439996998402354535291872170226683714016733289533425480504571557495630851589021033324697715476651910445267637533220227188456591049030973542137230128746971798704089967098868847879445896580895485601371032587707951688157703170423526933969906483577765069641863127693211737031581628028284515104933229898132095917529675586849259765315761938480191727267805800120989714970239974870272132825955865398411203655106252550888137167497690970223804978643668162063237726426468073704745598249107698886923963349385754862239279277904375931329886531876372002873811880668746815560953688377874794106938097293332967464729032045410803851879576697051281781046441913780874957651005732612482403766352370392854776150760142556921178013009974070108406427092750341904017350878868171771336831533165031675813178606642305895056229603738730644551589881860245963643763083100398861128107755170101717439977360798854038599100710574866613917783958549726084589473752955406194818577633368212804109334006425360630006762581230982062401723061881091183074390646565124829100820134172805848767621345115694457188629053389201425906180618897462601920817769069701929523265581844024191272239839892551501785826869084301990034269807855037512716471154538234461730390923558644728074714546300160228413454381444043569748104106057279980139457637371414900029938515149593328871927053478503787323006211887338825546148878705823902217159656131842824878420441673123603915487602074825749979519249353235448907413222129703027316460721238650468570300579712320241229203761887616462132922590141626758096159266253969541907198414471094134287468024287801628334105546845728818833402893279864263297920427721623897624195755212492038947084472917903152877764867647803154003715801526263943298648078431580445710336241886931175108520525302597150961756988590793384353276465150582689284668453200209380565049455847916624321019491512069217694267339217634707394953848464378933330474482682027809786943692212116714674900055263778985711245044511822603351033169240738837918947860690920806271753369249582189040899290137422561610583466584857775915027919410215096581670421696526339632854715088319218869342259407332345007169176349347777473905351498583875652921656285728305315116225190610251762717830953263054775220756809023573907781186664698605079156602505273558726567713161478475124247313436556624371275813939384859606732661663614619515972832816784721013899040787745614884787849285821877288269493653930869724536916678354844570262098552057001628262387780652156165809188195392060205284938415303661670103874098296096781272281076735312292091666157774703793209185395226066420044523982896872717286094704734365177310663910099177639829157771986216821961175005940235920941399011988201432442453817419830454027029490916281461714211000177258658634270551509689023113658089383479742080403421629907969644288125724592996575091968652817303481988850133563416827043329914314729082254093578528017980821692502430879099041640440264337278350517870222330045352364542366795384820378416521272190768349583332782437620876082520304136121489351540805918074414097483703254768788138300002121616211792187804236635373678557844535538189471310063819462799845882682436728157324425634781466981090004236762274111604224512818354725863692146208081961378716186729072017248614077338662866700581414407892484425609897264183098990939557257348490229362284413960558638451263996985178592733973474264764425797185454770093591477536007490786838939823747054886455011767722108357305062908864337798987254172937321021418476685936025270187417641508316841937976470727262536957872521410944932194115048327678945978686604208408488051701194438669808382530084329134307836283965663706120457340016270774972835210190427945872345284072466998265945599685874226580723385254471463393194961614993335002348667023329225923821499846115294420903851149916018138380034495749777291177304114636536365155542532958920634301866579016666450939014572040325675449428167889455306242397017882805173205547515757472058082598585664593306607530496273797901313371482651712818506831227156448339608869333492091110478287269516874302882654256345105642878623788389455689250806633388978037039101486459770951850921935903637886998664410671895641374664322935589221820079816372398505578942968393924099009812384814732699846857416571791683342212702968334117520356722909019017828431393003595159106047563713509699599735361752544500932708471436367787072307863097024366848154998417049203998523639027596114682875345421907144800993652232796209183979770302023837205464520707769909095943343553351856431358370395948957010079278177620427174124310701279826899847067236246372836540109336262273354926518600411690788607597913651380748073587709362329808268565251704622318708676002292900339413986527952636967333882416943136845939487131900909007397893476669775578716382296700087333187646981518057063331549882962638225349869916882219579146307885525412918269083567756542735405745388552389595230285246305035788433165225116266058235288567596190016039572033909194699637242530188386632009405564530445040282620719650542979808303145318562257025711236029229788592961725564038332282854524765343656215667243821167858610615500764905741377663779590591589624988215790573610762357291004082385341480427133429139635330253401114272528308241183730923827006815085931264916718053990907354127022455815512922360914305821483248663954258384760000489967347677396947648687370736391916429286678069933045272101350707460144810432035076928152649304635976659158192354422991407447686686497968035956326645010395955139690555394756535667527615540908769475359394155001600259848658384476528738773022983273500458969685061276341721955416771911639200912820644938006023879449357505197677507292178358920294671130572873858801226183207985328741440908367175286879811454636552897536540988835841224247935809358208218551161216125772695206821060263451646526862769621746303291004325691028817223450592481030830224244865188380149773139846201354137326523593162023136748254188993080657047973325706335541566813027311007200364702843140201296672063353436341826699587920349212882111358850862302481325528539542214452696154856540951333263278994778334803272978739081640635135850735781911031732088123583756855330633783716857479261135671409937948954264869574360761822699234676355136411595069478373692878328404979132164349293446092510068601299564693186358174494341788670366081771824050738432821076019936058687155224285819213042092633061256712342625680771446355396194596511174873543628062915570693380964406117950255689919249129847618767783722589339798585323240976100611577130251890977041368878031655864870424916021645031185983618192679595562809193911004048922482755565414571723468318317432244127511089375236505948721111983542625245149263063394760872489627424500057764288423841236824706177422213515270843330808216981655417208862969724801556536758092975430350786337684034442042736508231870590212982473245025652735884729545456183065177680761767588150438377818032263873668740268617112704937168867898966122310562752236003452525674213901406816471738702514778602438559196612006401177093406373157152873441087518189159522288141650797807898001131452248524387414118508644094791041615144927207253377934943769924205144948458912003066564184097510589380488026617407938580874476169623730264652807051785720660106501720520334877264729546870399784656967039116639759344456733075687511530624876742919406149853485601657893987064705144336551256865724896529824068375366397517499046382550950373019084666896224810330961997546655169749690636717601924000493549178299035038512249089992147511887973325161398102897874932899323185706706919861735101185658054375062391444898973637494127280237806927432159669190139379529123507332229800514078781186950574926748110875105535805290130514855631991375981259338732262492015582413919907559506727852356042848339392970927125663218783034627320999647287265460216876843776934866043063941637087129074949104714448584018328817101196692562599028258014130101020959896847327889254704348595386027043957163675899045150157237170918443440342486822090215155443354837546337795827478038929673614761413213258590363143663538540339634839804003312492965584356530462625230436181570671447831932416011818110280873403463556783608589390810130876987794596906407607084623179112628898431371794758115851286628189806916526441221226395828798125310156590706260128025742383332366406515726377538234199846564917965177655062227914514606713268219670086232261226346142801230116761924182141781857780568814991786372223790033854456615166432729603028194567788414347411916080308437352983843379543089003215685218257789015092222362317378092529965625898229878400972168284700088214365717835742091441144923473343738568050216762436193373900051992588966410389169180876540162557154811563458471021135939285302830568740560903618077153691331754019138927146039205379696759656844548837280090400375924367347657002884467500432562567358316200941534024675418853471474182754935854013692628571225331293666501858257470120517595613000890343109931381217657833205496296981567239784448050244544568933930638109985601481571503628654568887939345422062174939004729343290574927837188451525051768661860226188508747739349997338763784970788917567431980677503956816085005397167245404617636961118296336552184189354536561074261721262620263943608506342087646512017395793092150781038301659747433877054732732760808951822337535345188224716168055186035396775152062157415046151153108587035525243859654853819907618980188079709618908742787970672852744809446621011341293615292716572532970710606180445761228231866727963135399920425694313529877432693170011891157152974958739020384098331536546909763022280508125717825958903899577773226597275584596145790357440233061157284073957745739634983925240995997184915135224999221524224818390632182475744118078662214426287218041700047280445308788164440552417710042575641943799216303081919066599920875100092521087892888115401838620789328616850726312456156643485669838883857808950161934952844750725379547043612697901528374928452778227555968598679777806272601381786126133752215425925733357364456559819816168673520246527864405997760738081739450713919489814829850271409821531080430441564441966307698718363655918265877554849697048121478056045176985365800287423182163644708792015086415820629679702020618988997111374104752445421336842211308183997356220787724393670603752293401674143351743866156306630219668315271759654674018789319840722072283162447530487229799102398558938551634202323225544531433537808595924139656248015532039018974991797339070117522519106594502371919211012904243362617388561658573423419081851403897231239932720812475820643341507659307285443196809827407990296303214679077963410881493029418297654538289430315678001225039570755058243597838938825127975768828982875113622641252587591778661179092462175534056968753324618750402077498304552971857637839657629857221721341301062652031517284004753360146251634327356656679963600053160764187480272232597784139117322746908116346303599592809048471387087307511365367917830412681079122395979795604014968341235252463907502388216711930317994861751056819659432884687795752753755893065020454604791656934313442838982244392804265447548227297627444467585148239683835220655917499578006234601467757367455332639004478806754847419873830699253260423851601737077555754151081150706799632100772249823452768729356613663983292214508062965315884790681228409804087807554807499618469863148819848546537593803253570580218244235489679998772453014354699908292776357768368376424319927651260000114754514793427394046615754279761772805647053750904179934813577241197190071889036845725943001408606426320126293411849404848485407853407191734782823965654135325977400157846473136036248833377020184862967030993289842679866170522683011555211141573325834691514860286530803431467023112232045558019388657551174751171631419444285508554122354011331145331215205058013178060946221261704900350318376759095985212338642588512278010667119806911430569931456607023680062622560694016849188919471595682255037480352291400675817814313470906628713208856397469381785742816700072406714148694786220033094225624860960032501417880659188444695450013868149887653533008053083153540710914442981947880287338989774542916342070341980546657157918363637535992404072494344367241942990920609713471641614508364061602990975331966607621023878434032591784669585237094544347217292658900222376385610141566960798017422657945498254072412757987895265373452089369156557488349469430035775302831317975003307278060725231277773708803996480546801748271147220571096066085949232247858955049362872269517298488996024053765989920072782541373736077515802087874999862075324119576717720058179117783446857556867119388960088803619037774873444968055017871386548369729183515741086740296906516435075220993479117763054861883531869061145376438118484498189451135617386479220267844830240234334514637642155406202069751845961122034667956737919515962534228236508039176483259329571427725093442910431477814341037266393663252924669718740465135014150731502770892449724915368865982843624760372062086853432135743437111019390430302275572100394053642886226966654662617383662251558207931320932511681793602003447065849361812708891554736557070677188541266326374952850990438411618471580164917722782246584096033810954003349884844754256059759376617812396599498437789349839619216818350087667828891906438074222571980093422488939087344129070529343452950379000384811039612573927626968448542701065245976717599936896143984237090881206882810612459466743145446867613472284517315121655166256169844058141716860016518507032779027591399921259807259821330072749276543058253576729448622887925779802890574101204053590709849767474824794579149008211887472898033986962766054932536105032299898314485919971092957759828514451727147783683270472582620511046538261305524713002496187587194375818187421654837413520795107565600169464669314267575554743470067610897608463029409082627716847288573028498481035221256636016017783245475616992866228841800636802223292128842025450888569929480644699947673393046444035074918029095687807777664096640912775537976318492003659072504807393423945480298037645819323656660441793350706039059344666370028127703410782346970677039203661981722368188896907119861805751573559718516440553900830200160859237572705003388632439054029627124522938841693827695358588056429646968068885026062335831020992079285713807710493049526776876684533670438156694984556525948866269246106231708772034754551045891240835685660047282827658347494787943023746686751387245139210652774817443194023788477660438277691143562356793651602445092765335429166723685504785575617896790710519072425856995326831868180183076560328130839965417081823766431162683709400778750907621215086921493802478227480605639367417636495302153142649037442571261674121117527056902225606430679844396047477290980449007575720450756990813450290174321534832362317930616967281022290727063180492258915324423097792256885626655835023159576527395025574669471773399080920112414840834862550176040011411105214123850315152453164537844572336641757736627687484589433180476300287222305492520469297351289506848941299617592551592908472780133726478598766693288273450693934589220750621529479614534548093083042314077932223799787197599504190834675749993049290677906305015046195566192331447394369134222405823415671361542079057796482300915452845598024103532031410412801496170042270265837561758171936670907362233871922471731757987249495930471763056558684651671346941159342133250477750323556757142009748401571675342037002815057833484943089593727578924634981034873249713306268717631894279296718620995026936980432528015992012102525827801110061887401205783610019875648729534185892823163519092637490579929468150066080285696070492933663424421829306592214927364490606863998763401415353043653849622865677381695649516425003900700391999602243551034068074093095680446299626066114844843137450806083243693404765939065805030017655874183097826848628590432036450603498094562669834536161052484450758395372963487366271421972279191825189993654795317160612048815486893136552723609867172057326537051241344256243301210050462060810291733044731080780752525718531081313895608251545641510544253524020200520437956478904182798586991211249881499782257914482573501367866012217756032794830992774574361566593894082431070008698292610721251845227478968626772362572680092612761426066815494448053333799607302125470480191071902290555701254386222139311940048735055937791370861142577086433784128513349894159520248890746612693000410920130989402405045052526050504895783091521298953227932771625299953791111551935635716631237736663448942676365844152634930308425005549389115729468234458797621616535547387216761300080462440281469142822407045354396696012330128875784567483267220741123841988517212842733193665410936271111356604115182119252815898254585503554815577321919150701195717008951592354858790699592804703891765397595387477315801479354551139855119396838034984886214586426614948717259737095405947310373048202225241315054542394568366004088788995324659732697914248720922056036142602278213665650559852719048925261603407541430977856196108010113171353743506412918595658024837702934080316665756942891612931735907501908984262817885950154136921207620062557181841530899283032219156779100443594932487330939355189704694785022998843909412724615627521595340300183658683087595793576845604865964215174411797511443041508472771245646666392719710690831022572754797647255378013743476364240131673544643410676385452670832035826619713109812686830453894920203479806746707286700981316562318288821266992687351654666990989631705620799291286009026829824133751944836284396374164108912266735554599425185664355719924678363679804562982956849705016153650810930900209109666829555145865307812479047393352762911415230676124649892194671737234435319829527311911003609606278943289788932948303162263833837796325301073717804643964519120080438422349302199495815125870006623459142965325081902323255892819313778220694569964537861405994148741732712312388770378837699922769507081063854020737445301926708163643996194635794050006768605870975267341582202319357061683249916446854980466768255143831026396480380521848848983392198058632158831490967824061264507598819790699656731944136296669972613826476454984215981090578706953401675410433087228309183323863923615041996850820002203805937530628149686788302111500815001960773218986746297700992920492759787685483349726376127094008518844754525987813895719587931080138771578195512040178543036496777660139484704497543289433812341387955340458226641752553712437188094727910415869840081541903152263233915913139107941087647923321526874219317547310660216900996797435511693774931059930433676889933498508578405341504295089580543204102864891422362136993965271220626061897633676592298644344913473623743665124573820171272396392091824719218884673800598172098423020964740372777915489625028820232737159131391352875053826312277910220083760629467067720432295818932421071749763150254649374243211747776750742120929738637616283257563416095570951809699248758385703115425709055890634054079933392511418242670814382062208651827415906906639113545237148442855817092909393892216709257099918069040481181705528893062008162205340290609475384796450401888767153961596260490542053198031605948033791487129254452747632833074447689230881852436159151333206235066416204682753972664313809864950988390075583945229129967327228203454865406354515663657289277024720177257503332092184240851951806646922136600757277175296973252281487404476827268799568440502387668872406228425313680969694380367115383594078859744264384654774986725913694686284480801744549167288329365761590542444517934525616613476596245139453813528311413939540019370126093489486433260430318309652925079161641536703624458712126563306536603408479212204139290282965989379644424025364886243847363818002460684254454491125524477217034446359530862789797734638679586136771509772916139039832403335322492734045440802834932748284778207376800737191239522652877152871753999614042790442850296400575925195868747853645953293806879384296138118765566895427909199090106272016166165464419579751638713272146353880559049225640122553600192165599504475866384119440416648453142427777231426233360980103402369532570736876712936218740791518972328630111741483426303944368856577005849335923880561474111714000938685875716763576091237817795257114481837505453333840579044847585769146333940768028602981049914085150555896480702865170043010761214334479246948281066091529594515840589331628819118241081742863527813495370197852209692236769729053299385946367757502037348646882295527539497962185584214135718943462329989535326576905149884089520735664461113777995552240558344565045850208208463100141618274984358573744641344158698660602473792590569567433599778363943991514862639115361208283509371756791519664776793103353591050391645903627002967037391604228310657361476551532182122131447417175234036612064876938203450378464474839091705320931010337102899020980260587849065754486715233243016520542248602734985964229133827484638374930574821070090963758434712299844614940851759696242103134724747887454727507115362331650547444830629717889840772450312772161893397658872407403852683040267435131006774926487579595440353511870051264131376655315640537530490013891356756708820420481877779758834121468198829390377440507259066247385939674044449909650956753922711474272168725003994249852050781976365973248022126409388888113205309466963751199252151580284959907936400575332448332799263464250219382208694793145391081765303059370362854237425692029447544832414455009570728979894562290466559945242313455463969079940315929246362825825531811814359397160801170759832359466585688404926671035984411939364231817565189987383029334975825593722428508618001733665414243035778361104443728231503556855402682738957659497169567204952147414481904681619889632971304585270037948893092847101228303598041288750103210279660720535830742036218508097921528079775293421693764288356850450639992295338923718822330447739672131023653201158725572682871564903509052928979416703004175417058491574715843811337852880140420329855248614748156093833724393167870339181253738888379172774749398000025890023614111332688803257731937571557064961126731698094250034849248327623121369106159863888301114917612517999858840095376549600693864413705275937838509686817458024393965998091343794988739657661629682394765190366595032136485794674209936014645185360210558619916933828981366191700536228297858892956581016113058246713878210071583765106198654657150212805790813685381914064801260513221658514581148869923350825863411102055673068445347475270307834098379537720559031980567596676455231468689483710555070475071483660896096691808752771457397057358278629221406247826203588800298926039826424383046084877717963723283496670627483635171873330192261549525426326667306877370858545911525732028287440128730804377292760419079380223880493720900573032058549706042843337209063756937680352220189013612520628211248034803162223622297589253578027319403042576947483558072373700125495419415154711257529866929238232846005396521788124205185804746951150172945374017696971442183854435418047609528612602868639316227835710199543871570079027908448441092147194320483649810866130178023408948230476096274805739718971973706976082310812910739539446355884791931002984924336716175972223658543597062221357989672361122386368062198065304530304109740880677815239571338848042248772990871529966489509565936508474777154124929970354083736822164352406328490869908064986863775689137939016286176329717721960398254513907320690819163064372043607932988083107120311416536200819483788138427812733148527209199990690550332925330774878191777872876524620933197256962398051378255307471432103389602273510420304662953689892125843739949659161460341891572452748023504048056801355940837797339781722043915976477216318731652672455563033034274332120726358230192747125858570640150126070582590871993294327888833160369821439965679189431443181843213481468619889045959132074160239410697053071080558869107108909401077287164681595775169914164984016227287260838761877797533943115473651089146710789195654917195362027718635122035465604516997404581226987064574522382558570677278835976078168714868323642072805625432964953986409807907011134949745533207011221582737947552738459022662342003961974764949020291367279993854323586517173918554517841730607630493074256312636044686774895123399079787634414983203821664568592759843536347332987134072275768775731092558002459770792057774669733315002945798205438855727343997170038174839626430195525257982411791072548353723268955604162576644575506256536825100793279918990911103393406159534842547871418145059697570589604373978534985900960903114256745309447120204068316413725315403001842631975615183926703873319434312746080492356252323847272996270128290918537085232805259469609513566089855776615066981522381242971450052283682095005642962498403765838861731672174297886924451143557570866333348197755506679202436633698781063229003038722704748407463653018903670493978155828373933501453797746781124556410272166593669781094620565319995532002953964552473686056202493262956958280781825492410270254299060237485905220876988063486490076746914059514276383079829235338883455605870057714042395654058245307795869871761667465486296329135335753951593439447389784822366855876292673850745971337290618012907249511144915357533352593993931074914441513895646064134368682210292979805549533330403856712653720765543078643656491641625443332955957091447904996741310792086247191974348630431700799528443632124633174884321426198572359717455552368241365054945351393784110547748378837355876890067404516330754567380957174817587583575512948281450688451741544954200741465819313368874448799744317603374376760103486401593308297728287786338344070540699951487464474181498825513933529596977440810435435951985790159505546639639338881216948319972247927772306753554867702536131365555880801435447369098047913731585005742036030443992629181284659727169227068449805889043189825050497682746280223116150150477435809694872962515277856265136313263298146448256660437155083156901317214926566553395272817650433121809832677103057840256296054628370019964360056123088303773148508742153167971845203358188852454494882272041132133253110296964083848371789319034305511798279341148480627918397737403717897642867675183945171729147834648408739979508949139155635723960097906198263502757295986787124424542580881532716867019960372516937300625294784015873229656617956270382519829646988942214880911517632255727284663637594939941763592599196282234395819133098517300811284481213771266752356225350056730195812399514832823195719045510933492097544128205781002087007035863721755948117224084586212532708871098430204817356514181390955840642988350471624962281096840959562804501934454343718678474529587387054238680621368724318983225708333871464470780837443523011827949366427443789474125934159387020447353764654568282871225514563053617681287292501080718556609016530254263980864304048632644460100841671332722420214741717159291942886955733821423537038539152856150734043777640696882914246238174332493880497068079209742724446426725296987896422746340475543155453293227610152771850131117194891434833359208053594625416025924190135113356188596045346104653583829383110521403815575882681288911200154073010422233270477441858590564678829894293519030325987716919649908963533882338622935611415261519426960913179972303693129060998674356604653005217210651190435037671502531233136236146315830585406367074449143234628403838822771143469372806484807220916655283581244633205071300502322952523596879435410542633394856368150507540667727687092695557856733340780831894457439279595204208990405788769121272349739256944679145076377713113495633615629871072330401774591380193205318330552140008691533665744262263432541638823799665592533446712359446561081506453289427488358794046705600069765528966550757518105108648627064518844508034473844873678444030440718171610425798422660173195515337915456179636739220926583996089358842021198691164775014453876578520145515512189953858447873513179888611418212468275799261428604239514594495626489325261367065507496169506177519281410242190919538258120012557379942350035049297318547629594018092809444430344244161235269858953859232571142903594959279885285674781048600061378587083918829198093968054788979429325229143167829523346605316686223363919761136292490881003371725370280989386817736170796631068092558007715415096599451954543915147608360654230382918060748856198350138080292571498037568047956377845981920656014560432255381081525568531980386563158292288059846050431747047827469003196840061369452483733864220880731092784522486192694862071381187119349360887188058633284449669907921687652548595360977007125587640314727902130046057399820801090385056074946176820252748281663316970080676234681046857395867489534107819858608130322691306644137518771953044262279085869801228350269712639899607258750790825311565705912063016769824476042475677968942829441447995582884311993339884103603955889253516530680039484349231883644072589750973226390601883627241785712609007787238138993511956059202249011462325284905445194807818291992881337530739501570324617631782692371134090664848073245653633150443028669319282168570300326859846625122749667270386501711242589105002144411290829688411488077435401597456216895025209020784293280108591499072166499298581598310479326373961824658378903075853776734160179012250721674215014586582929752690760544695040168873511529027553533433570188390635216084905411688459099049121316427508767453014829975888487703141245869707202714124123523066793936104840824337517560304571697566888111558955499963455796042574594516118844420620517632247250210370245876692871275483108566112468327464229273632603175587354994316996595629065124062781901695953133294973011214818934868064426638915365135573432021859396273417966468963796550977682834475953001685992867007753007186723106973482162105492306616271157948185613625191088812019607966817353729116448464454623758597752508357165282107327734637992579523024825429600533707698168101959097038305862749004943706116471004125569958517316305939679366951482722312518252986296905783004172313664784853001729921676595260266395034280685335329496991971795628707240103479459178628826329254532003535606773818191819951333819022299424365778715720094970720636869294415181197067758827184180852212834048887758331606899913665742553915500589280267267613062655140897939281769786313768111502567251504642736041402667212960102139066618260986842376809372850765433164077686952212633185149277637079082343493695448501418875735650913256001183175004472117708875536818799887343887021483621848456914933905565370588611060019324925947463800386755883595449855325415373719872707375111699448929958897760401853544703783401959388653461683648597979000823077752475668605651554853115982559401234120314547769671707727727939283953871015004615197526501321756477159608560970725086543653550853342294411492487212749991190053947179569182315137611856605782712480096294979045062751164591947965879295075228373184766808900230629180760409187263998476276195865365743297535320202782940514626974295173369845793021224873415326285638567886093252160760128558701396473113987013847254318646293627818424410158747855637515809099104117302847340642746476027046936956941919257192002538715896694312661728590864488639121174074006101934181694000215366800490268958182801372787331577400545475374406853293176355182029632167032855442599068272834987069083848798534774583707299123397588562991241982979914119595822207929468597519162343234498674666147898563407260079396897269054965016579522249377441001572620108174167790117339609028674519378891896166486963928020078031077350793010369160249095271757601807521726099863528088810690704976500697569579500804518867203316253777769448775861483201000294935511994566643804086778181380151720321641663446416818506598847728481114391695361803328632657879166097918011048229219555341445696699702374982434521741001314988086580362310461103079491308555416949292412249424822858429798487581271983637476355426871885703265185896519582041927987844177214549860738894752599213688571745186470880315672845383591777354382156540507248744565718587302469256131849734898351169431290069357172558157660674212311297504457606120234159581022635764140613667813528547527072274039720330787814820539864058921896671847480301581120512760330841704561731678779259520247684063542428028796644552661011170872348759672961779034209908811230873235902001765347668236655802565411959850342542009207120481098515555098549012979474782338989669745549444295855178935233640026958881844305357816778133053953177532888439703883736439947943365787738500163658399046470014458554828511569949198341201751913975809158810884615726032207044946089727332959889513181372976882597908494914085759605731110957268724104401837726951013749503929437804212462384678616266365112015186168206294724712157827942107055670557309185296202019000166217531634140088980857623556186365081388010165216756065058267874873268021915505617073804077534541378307287105363274931420857360157313557942399233646978759761656139280853175803374726238310976481599803353037915893371023654355805467577396459830755076172085581251346670695182603576343627168110723227157682457479082966842577901259050460040587977869711937814520692840820678249666447437093998119169345569854922307222634120287786666016293111784458908865396362232193613329740368465308786241403171137028338606775315583484391038809424648408118635180646060844744622538652767694398473792162476115785742802880112275474962558420702759492867950129787151012956381655597770440121763436062919449722525164191924384705531365870601460360112332624504629080737607877536197530218039392419753255357285620594773958248863617190396662946107688004943621237560498413174385354116572716541042486728179348843586785058556425474066219002437207656377577808868017077806660034013497847516441498011649636321022704074694720131998140067275472787853829193068305472572186524132945031096309745370941848834956235468074163184493371225169163788510451435851756491965314663653685358420865804035499220894847531175414297299035792696722143764911642721100482509122599642411029514690377248461561814009250446039484401756932280594678953482530342504383464627297125315451484265082563083428428998678984185928771947778377909242813470733688179903834284160503478424659774802023590453447224642118722904679349505822989958389409213789478430991447992762935653600042759502959386312954657836542420553871470247147855386890857030959674093660957579948496997049762572511825262228029492944388112830683735185179842504190195874612322858441358822365338428871348805956276752424015464448414393494726952407022444901169572351411594434276432838458655054163756091845190299336813254348577660335036770482670431739906709468891254631022255020123957254505696293178107194467619474766694922108057814647844923551660526492077570787186350714456877942115745233623570741659023324816380625159473864468360149846162233635298865522074455947911642742980394482879378813411865391578347935645147855715884924144871963453534320290163654327723339539971607351146937520257841538240456563880220848354060588946119278402955411403740637147412567389462508445745942921585394406187284199284460938261144432123368825449484854436867498138102117197123275255890483926729487186630061614886625267411522523596951806785744034285498804803305942331885737662677028754680842835314974826930632518309568436450706407018573319202777629906497732636667763332216481675791394470050867274756927932598038808379453919770836571516565857633497211480964450859047299889088784941746937945209642887994538816118894445745118553722349615332364743583374794079283727628018104684717330507061567024364325406211394895261574116598300363917759074255834595486296090296443289764109292449674392469954380922743233382156693284965394536860655042785457509420963651647431250498310574696458409170483605948757524137684328376424674682077365927975014806171004791778857879898995344547200999964531858435997892440403058278234696259749354722169084351448719807317027496281341889805681023253916343912453427588597999900866061405757486644291042872189630548991393598586575365583492619485993633758243104990681261667606993613486947212840210705026824608419320809499637978934500211288323895200840855004462273187703933431552865930673677587378136895058602202707066549620648010501179725200211462497663879343651026807711017528894781018985385758359933933704054881745547072015280773200638531523608541499310080194452376921755469862588411167255206625889225064780150088443094465917050461450730683297718157999614725050220648061280558302264984135468950008586884683450543228638354265421221910470606281109794027459653908121451221273968332036374221416847765071225728871158082557426622614741530992069573289559801318664867222514828612695146115637028150103676377162009379277290297116484965502175890050636898475414544646521463297159553330003193954175080838054684985910507408529383321134793717175719313996030879030648507042310312054848035689374541901910358520253377597153309071731842112311606361850951239051941614283700302410166377904212134114915890953317921387076369743235522744442801044532309897738097714433805611733185189320907575342493923397683462147005112060753727869782541094702508460934133804359219713966608132916522685445558277345512830251778429777729625888299149377574920509910077249165813975769832815077021536585983588234141136804394740969808509848110162259525805027003341288583203129525508556959131416705176709366881989474770568963531120645298213012007158065649204757369039195421918584882343906673401073619838772710755071697579048634014982845363736902136688739479440004047529357925756185207480410119618904277897570436916591201947931062418479191200323629873119229953427816073918165456931540753509630943879897272512650482740064668525431315769186853470927244474425183612911295781899037958808306093160533393245921541488439465654394120476601256822511436493276637043192267156561920790154212883193735762558887034688768571495976726913041061755734765731924695824531210074856909977281910464989225247724782843330297699817633466270180376498721739461102948733424106875894810961583885570955938122235305537406282401721075902733030076362173298179429290454225959925321994126311299797043431330204177634037198748573780940862721028375250966557118942756897880222279131003955186341893329603661223028345358847898433100425544069542994589254034130983356667828624838641889082303475171154738391358283405493533201309807489370227601216967562550798645030860588858842943308296356277611989758400910356451822208432018705819697327000364481423659607778206035032978936246863187107263942494609589422567603589675373836550229767456320273328198247147826494711989318515753944127355303121467333446785307490018903306177056976379691380881181265367877451277335188176735889719610632865989535037665489262710758601529562586158553735457451733202149351214852646800484423756863314722893605836091710357808985610244374749793878027773188685709373971266860830012163964018953294229154521141211796440078195455397626962897587515364141871583062694814745348165867967336672769575531196277427320499124599631051537702948340691554068537526375791067873179779728415946812506924460277443027438929274576143840119297728625857125379576299483890572668923832459740342231356192126761590979987341615781130487490499618596784063809315948637729820317350090119550932598573595081108351758608454245229541992055936789654191228353702078604779762536071400521784998286379631594565202405460507265878322790020666208892376486452815573519343668838619041755653421401882975659249466461331883651153794157144962887256493390461597902850124133491742495124803839806700852393684658515431615189999865323056328788265746041105338588326249585867155844434826706243351372786459774671221937103706003990475408118042097621160957012911210398427660177629145743712239364938185037358042086183539574498862726325281210493607320712222978696947086874009799698218892151699033484222828933244203703929842978564980072378366679378405198092535999393236344469337197999584499249037928512897885804512065916544390769959381753487173695400615500756699655832427281526212718487292422592943696374613090529680420101419251824452032411902030518265920518342991471658517392520261391711231782542631143064158007957241202112541097913867007199736034670500231204786531813024597161444223981033104541988579567012291097850333114513729170682327215203051632787520069498349117057472237702432873787460192088284323808883266212108218073211078701387278487624493719458946152550571184094981697775340963997482554173606765173445979597783725676431284627968816644691390266081762787886265758789656215332494040627061960011713366714052605422370644522995486196101421034086908918885019948397360648569632735080807765308052731255985553731481528417927393258598957875594090746039686031007333411293971440021277557112110526201190714949447981302327363450205382354177494711562184026176360586310299732311049515964870562517257570848943571161632169563884602874581084693557464377039033429690219447109318120530313002252193882123220311656230232753575830811354712126145320874388177821205015173121266601249248292599193712581668853265513579569667696619540492214631959968020626137128419652577519984294328435916472795261804321566792617913867502370040072637612313353840093233915535731311191688845026294321481723703005677839921594410320364000610687320190451651744229044096090427196947230415426372246221642044810158151452873420340809550994318212620238102763990748756780466630871492372084365193042574174211261133815317875148122967366312560828834450385398389726029531982827817552929990774064247973073359155634196169997580689818316055140277589983506275373667688551816933995047106480328801151535412750405022203038403401565527801781084635911202505659678936157067474185735129979345999421744766921007907363142311425457175197396928700542239639100227669089482454215083505154591088575847682422531104350554431014662004944569195117402423500610285469416426963900104355677117617928232360472084451073644261613344017445253224694147187469137012877561220774382378619470522983885910340410020534441778057221555475937646264049023314417683529122647060135160467482090283348190849088898660350866663267707878024465548020959077944625607821467696902680350180963725995366096453239151949040659559653700404728439462044614353898271373281828246053175061456540152567018498160972241735069303840369572587487832395718145296776946823945230355583150504316222543984770004922658364063860576263279622808852297431658577413357431572327850046700636687639290586121788843243926951413735223774591907676138663324736619788046340303464214358813880127167274674709790617328377469304126809714087120744257779127588143763036341008933116531407764589784907456170555327362562251304701368254179446686928855508892742319643550603958413072011553080487435691031033557566128017472627673810630021734473298851928435449136680482021166069439229382655848401604184179787739004275320541046505238789104913064908461625081407892366871620722130944821547716689943076186801044376181254743494299521147316704801795819154663606151361747903702296568173183849624643082932140518620343895853923437684088995106865840064709127694145751484494955496061650652361659079448177847536252492342504604642729614005408934492129806831871509022893678177946076401046751678738046326163861944992653560590393571221245591886503432207924593575383452066365619176067132856044772857150693383249894419624156314246976281774786287280714387388056691129677104236503383877268025792374366647670104203410990803443996733431059669690220707185199406005025043100963735462005090453015582459613494391306460165890345785403143875057097109782361244013351347923249530703713402195231831780859880536903558201945005326470353281721872786931155168067833576791197727368427432009284235291628259639671907563727668673944318848888884309325155014253642128554587848415070873113228418238077290900503861653590323732680036761892928914483730140020309790627604824893147419358751001291671757731774623065155177804582332490059984054357373974222045130850905569405646108881408746440623615511817373717031871045543861104803951716420383251755017065231268829934101486986856759315541758854841523223646539597564443063293431709956738184467233117690487605769688878093321801014302089139947088426792488522224624275968712624336477835597331473764454962748727619217794029683066333332654463482546187763510592586111032679396208315865735899456753889849604157695960515223571598727232405552002885409934209534621209820358250549885541000651435578724423852686017162407714698061036363435250618117773369562333821763452991090013011274530690646520043782767852705799702823929091749704954132283936096742714876682137182547129398491797465208287812119451624007485645411153129676381410939922757047722971645758433273801899670414327826415483027130011363436111198480364933286814568202227561038710866940788148338356245320390154868395506722681600299778284592056408111714476043280014637017908243673782975762165215271284472692929997261307324687332842180974930879676939966748707733531801058927380106438780219151606944854973020934377530667858855047720084251588181517753389506736191792249158943677253664774073245843678745663892539738775600451951104865084766668067824202335189366966597731114708224889183773058902366794597347792476277600644027931042267120853158570381180046479492556195752426607475018058031659303396482959945130671832047394153913821153701451872685176422313309653469668241164820091808688486464719329553297644286956181480278356023923032931982166364461098608693176918917812460333272352973175520138072581247974391057916016501472674791273482547911601486586157624065169035542402826627542670135533912798079771759336885379052114477449390130664691976775780152200895082869166201855069375983996921012609088434824453281542083422309796801487124871069064438220138395192244886958544714895375876949638238040894450610899514851039309849598094426682579186714513941988037604957537525078344928154215565489247172213760501160369670715920595774656658758446350270387222345478587120928590492907487078236460992146270807232625061678867855735285888784947895203329483491443209874557259501088208275417929332516076724648773962776074095147105418622374945977265479799321631413895238751648567309445949650689152853767553120546820203824235827186842407470859786305975473856126136955281121804590257650699583890257902138705335745524579265944858974108473613759191907079266450767020402153927221709173238458269522865043387218736405651941871487314039012211279784464143233382230834772281773473250507075685247435258413506297739387523943241213342979297238414117431636959548958368191727261128689102455912080592110939964964134650868142333413012112627525977730654050622669910523252410131783976915049730909752159178183755623070604135904605760242887965323164775240504305338221183277640635906205549500402791557505042820642892723624094191571257230345003160330435109917067205108412282877864351260665140523314803377915779962882209079740866801291866896891094289438916611696359666792382653012850737594323985806778006329685870579431210358548635635807308782281127089773584886595555888039707685484761844896872319126559616477166139497343214658274980486232276469982222917159601746876594204956717704726495920914320468404195415925923809810399499540971668235056961191721995209942778718722523806860049446913904313141324007931832934077340323876708815734070533880931983943725815838662111776139220219357954402810232432794672316963586200840967131520476507778404851226757866431790475059142045317875508973973927571399835800751162421434139347797288676596224217919513876294968386711879848577154915564174170652910709022049300615014115686887253074817187245358077149474768318197535753133168794220893058192217198900984443543218808475040405650748886873899707180258012440026207381881355007454321368031939957795040621556479305312687954695803637452047642578119242941349038511564583749771175587544581805261854933769007245842078844431692978038798144312181610149254665059975632720919670210858831140054556878725297561129593855394470321274285037471599268387065326619661290125360152429311280758235215118033386530606796074851749685569695859336633546463420432978649101062541978866379957450062147844038777944715181483926267795071464420237617223647221295749378585382688252355008300715725554283167125270095623045782941709519033445761570805776220090618845014086395822736847400954042015674427587163556524635238199543156227375264016190634841683915258483033877125007877479898546003882203868351891188459614471769551726246182068254370001935538626655917064298510310295137232145102546046861927405256272679938510311777573187973655196992455383500161829623908896855405025761008975161018252267829221995050820803706336470750683596582765108995179837500674111356351312881659202401321733248956410805481294975804857867519694874842392918864350002087539554752755452610746399325368599646365106621153370132360619168959657076130540743289553653112166860684661047408504477822398013891472199410960088779950507634102779617958986526436764968662535414929466572191963407198944191240451993955722000993844526319696235117003751526295343355302597439183211843375918537050834677762359258455777692036256460241539446329381453288429013970279933544821091846010519822999255772263662902028553131645404330570484342704921433241819302331355028803840385974363106744881786753910730980333971309814294158332080733885242716204568894842973568789644491715556388755765046489983564834727138891249075674152572780628908199411225271858391635160987733198915480677323687567914183324359386673053011472185085569025735550812169250616905913588529649423556767771340550900782589042930131706580443382001729739440235355814834030733048014094822159487562251448641337256025869292535441268241939962368585362860793911440460831994026010058721442815555790896570078391276264327698419664780653482915260119224559381804273235820061044814852272790772094074278394479993853715309848292927980783164086554403138224497763667442271772976828800059853625906678730651568579329566091346264981046565437629205178115491183768789208496358458612586345248852779234628999285833840234736297364715045515888689328187952488542819769381730403700968559380092159035287229157742364456423727160530588014747882222811428347500955106155749694176552493327393517988729588688252183111654273712707115902106753101274790839481788388736751289378114616880290139802252237321582760571635570377471024128713335614274944398671583252724305776280233450787216541681800015231971690369516670684626576499176315822160958717001326336077891000682245501219821026354768626652314157369623394667950275202396721907778172167981710374687369997959524545562029341783582886723849467665077843940448676669779472801348060181054939656790314245530656891067459812422200553046279789027727383246231183070505805710730426329069801567013425548520805485158228316794822866899955531071347784823919968437864334880717031813075877575423364882013895943856609059143815744111507461852720570327603248109593187402355262648049892485483147203066637844880479980740911630855022166499725365088781198785782103088572320363070194263196409116788221879225626285434283920984810109862126969465461216716984730043821199435493068000864340605874945523666492793884463320364750064984845394824294345964443684064243083942174207108440228762735131354441289376866803272052236131523720585555868305375139341558485096097936943264981650161836547208712257368135782229014793547424322972934600274580859686951852643646275703752574032442745732265981542405789466484912538164304664341328981359264293921903707004263722529928842208805591815138361161289323009669628299982654924590313646940374621488765931376762498385459685539479442800051587488308300946332179744999198691805460196131855174244726809134301745145820963004197164493128350117333471763264657109492001690024521315286133557921846463235726058283222674964962526011422698991143009898764417423349346134016040928223314406454980732234466351748520334167287546014791739173236775406498708294526740581887120116862971430314762284633638151785909441442183436622804152966595173637766307334375955948263068418858890537003956370187513599288937385183612832034364865723966713179200842883696495813399674473164864979694007586586157883519155563655320853197795755553127659098629827263733641151409966200332047748611114997414252661567767373814493588633350886920367426219819916069437275405861902111198226142902360970937743760065525793477912491109261454647213271254229261852407561621616849694489331173639439921497314784645838935312175403824879576429932184057425207999511891656885652111821092463619268645548299103922919410002126472034383464105864161075845253758104306076642366921462676308202528895654118479359609772385302406488339117062945097028563997034762884712341235994527293359257793101487713862013591998433960622275359267816515077784604425842280032595589811203978266379865667262968608107558192686016913362840423858774126613852757073575538112798541755600488957426771486729328301170526859822765382790166160938851554443307364602846303053807443227298179902867537283777637518569806057341365443377264966732000397677620841632621962432873857628684910079810877268632030113593332695876935667938863707030452280159738116142468315454426852910453953522686456070056163175993988856848923800169953439941898460715729464587877196003958905222590611904650138601389830837851610843583915915172907377858959210805701318967659810913379634231447774971666596381104899422175379985353114314040507645834631655843487803767795544550755523785806077101085062437758176378177076054754531525566448752413911776160118379562378166918249185700815321042731046275017454073258560338302616409424784881991635527879806635851531205834615016526706109226103992314628714126732152810698925647880161823179137742908960062784151088759692869820160378455388796691263019765294630133507566392831010316673211639533363055210811614471082022965842509434110093941857799970205952346201956328811975423232222745484110838843057181885403238398155501904807702851768510527569090257130321877880702720111721259687036131078509898098291616156955966008162196259334612039142316431851719067570842495058657621903450233968128580152195794396962705552545008798902099403804653164585073518869712927944816630733270984738372520588617332530577098277478034329352040414127188355817275397681694330718306948048405688648681049538206563139528239468793566823707373438452207116201956282363315230177987396216049037626352937242482140270811032318694158630846847505467340845585905148116379489093828783376469055523962695767980672497692467614414252667285682112935015329087513723135144572956007822810121062099066437540159630899817612514675214864886744034505418040201537674933770496533825237589034942309727226290610481919652628433280352105887115903313681093665681222735535678609718389168746822323152095237613834378830371292590523846138358682094741639623070759799196779419577556594372291235104826013232258152433486249096296960105224306258464339272434597978983582390871787170609025575714181010819853886880102324434819580642366303069220073825348561839080391827074151613995055169310356340136474218786574204907617624580292745963925559887033680947496024647563958238790313962742474042999621525660096775952288166725992954235869996871468495367159128701700021311121647237316331324750714333926935137569268967003997674561825061487854198097142276815458907947914797755162769054226211118205460011499142711093183414913861043503477956147363240682780464654996998085502215707497871948056106205094782978522203271536471121000044878042982791341892542278827506412129664031122661731396514119915314304699146501052333550673314963420107668867611543118280256230449136611522619302022039758208297606871340328674080251058084880950884253685307468183007172743483200223879003043565968202677486792199694849534867327260420016073483293020275030768805760666182049508776489776734601195390975957346229686541897281207421067168409817621770476176858290492199349901448963995806827666158611082850842183630570312304107751636347251207562298063626555242238992989368593076472118497072293976427659629435594396078542433430403983348457087945618375805059699580504249771185186792311508992049540844003276828306186607742785105297354507596978855825026683443304269928224308462878099522495951930748775103950263030710121775703706286948615875960192210236065716711167720041425421839084559429272870997104759279221392148711283774928276857075641173691524733177433329725751777837399686543597269051731530568566089695498745024994916861286224467428904366193045325554269383924491010770785170223043048185182789257196047312763644288145984438230323388796945517518020516390767250850383491067375689139593134333648311098711797260687558025324290856683852393795717978640809323561742023988319509490677777093694876586155467732094343026725098951211444423988641929243650542500891000438668764079295570221690069257777093491145408524489193494127484220810443225321005225665880740630691074877730242999124396898701195729807492972927982398158023848176305770636982847767449867099159063939681316416069388649010692029607619841539995068127038197434768031839271071265150756506937887296131411786743063112019719367949001149931107001448240272224333516986336016824792570668995499913231342747161517502357771703139748491353616695931846476561323962849681309478271403575986934249170888283321955917017986441382326134468427695108988533515551527539294016151255318810354211157809984261480932940827337706116893592471199802178069008710727847851123342585668730147446728895254961240870317832039274404023924126121503942448163873127806400879501550991737769150368988522125529716945499819442180740809522714205693148872147955142000700305412044333166218537975266203379848106568375024762446096944679703841311242500148053352312055994637237464107104134166116303987143851609298534603593299572209144120070238268814818230305665009668126134452353404962927092356239493522320026895268363312858232912442265106154419484469771922051081032032063641621327550394398828719425354093599125132865351214553509462659183310937735819850815492125017391977939895215955180672795446440629906640087562578145129953321334942198922603227176175682199051069114865187644746027852685847200684270749172080143355091751660916221755689825686360983648371262786932288584816630694369690386866770464881890333446538789634159598225677574406068745812076939383681601617951007923854528445653894161169472461962738972585373554799357228643483481454424091823556162238108427236159440878303235906387253837009084612362554294003580880617604631631187969267167697256786012436451714280232331898543151507492320429825564350794461216712067071863620732789135666198104400984873464888380292438941879431414602466084321060428825437464743473622469665727429502090734105078405820160977061215627186230612503863547224335900746940319636413048366240458622905670564759731505265268184907917413156768339191736098027096454967397912224240023670064836468517141051631074025386004734704706295301363077448901377597552712539385925745216305915554142021695697058282222396438209046545140899050331439784320161604006057542025682067330945368466475154683756111313129311405852060354580784816963595766677554030707516267011482540275425355259212517772819397177768009846268657096843221835652089991364337742189145899878971530135802329175004789755972564139716432346962157262840596981474087588831056363197985742987221974425155584437005688471115917704915699847358604043521436971682910530420312415963737001281521536291046604423249265774431095119361571838457764176461708349157886490677005529464012399626970424177982258388039885865612491334022408665501421355250865722529095343071132416668969301644834979292064438004394670012380177974397693155706982778778740647377278897728760720877267627817713950519089345806433068894405980276761973239070912163467954328698226535689034961128981687047977500782360749310191040453775022401257504610011351012319761909652983720744894670137310409471649373698969289719555095541894192157380313875201603046833531440917259218546821056271768869940783532567102426141043315056314365999132069353102019839118484814136632984323354935117805066807581104786435061770663440054416937083651932514291572637893806027403987114053326292864752381643019880312913226707386844091891979818059822732192233641061536118752805370440006936927180829045823106817072950079916608524153664825190403942206852151720113043937152167618199312071709116855171968170372859934081590692187539959434668174093419030079671419458071492012321437417444350134437103358655477914522671164214028798134232469657430677989292985341209836703594471273789379453607512888003653544684283066152770593447412070310720352050602553263821676760330048714787033374897790475905119919187768800551170765197550033902203089895569342151300686764763118241728499177214241957867273341851047413810435875616630014124983332091078003572155273678943595281506963121170540148013329256233017516733562219108404640521165420218047425602927689090039794553394035487089924671687182871256601938426870318614121068994224605326554832462565424704279291498738060651871862614414255501437947767732623076354366178674792627266414171613807256602692418416788956611491482210912504062581182094895036356149501751558538590538934862742567107079748638963137461827130927784511317171298729008906801665670341761639014901449189198470549300756226043105826888450715778826131158124342994661730856971601115477992441607699236392968021893075051733893233258188120816646832561360425919358445016238467479135443325279007908000884821381144829076068878101186040121945617321197294914345555297990883333063723795680349822976688698880501326083585941588715356861112960794575093774700989970222420610448606188269822936893073276501793419561105364812566440627955035044342193114406153670949404765218716110870278487310260371114829419892578562852619466791388777103075303537469844522714030837823131356104660634074528538675296870927617281756180247753115679034642270110846116023672298924164989871451673748500437087952235725892689164478795797035396351654699708520322671306227628661252576799326032599277023059451159075350599691718661532121839739450589185141790578842089471308172686020711431392565113911602728653367500337060025138173404212151143141167971355519867124264155103824105187903673105891144459283978328578055521701627194800110521276995963674043661814706127674279960017046269577435094298382491727258970528268993136946959674538219518545523024230278384253090854800598117024587376790950492710970200046352754254716062836807812564818696071848650008978017650593003267283327106593127930956287667150197850613141848617793739042108607398904864215680428898477404541031062441681731063861314923489829304281953578859077669114769060017046141431369981420195800895625535810569772052420020152404042465207700854977432764431618609910516453842406166439996580363985334762640844067233379588980840184813146873962648088496967828341190714257414179351487943209173741648207591972500196806335949840810403946245841828534758439893093335607633535171986964065222820098743336123729238557083494772622267459139878665821900643375626556708094873659360004012013976994288316266976937419027572811596628213312580309908186719792671599994732767689991812188279269262050796902609688400031518136785426969828907969967200611441524949599135499026820765229135359774401776287505563678775277918189771849218549034059548946412314396675867703685980233049153447288422006461518585760445566149913791409815863613905351881024031939493031396587069180892460341545828732010378078328026400457647363450262270833480559501895172204367235478792484790848146453428226836036855069273405084869632766316363626436103181949643121570272205824710590481703734766960988142288128585640398608110799484920362914751736721078945428243489784524701390358980427423948387995120900281906196302183141104183125569849917543000298649082109717935381589813912748402943241138061492486603164701513611441725130543816295238456932192354172682761798101994060430455397575789661098889962932608151455151996025770844019717678260268394959783444527152274102978695589602912263438422330837322165909782805033894099008539216696933715114712513690528565178732035364040664174757111208838978672755255022779776187762851250308107639012537956880667051069911154850173657436313827644644106315081895878013843168898150035722994761698903343281852572641219899601601590570344832154481420354531364722157363766217335901639512854458059729613634274488732307344902051109935930395928131131106233540855301380978129117693411767472656345693148284845669425867940272283969211967142786082370305871265142705970511669075607707656049405958471682457326444161906088106250052999390499139363484255899279061469137449381131743908867810824661226779499577606847088357179130013889254919747464892582162788206638592978940028617161635089968153950169488222959649087775712554586577902406277456466306171844660909610203722616651105722661988718690121123171266376503371366195613640416383152877748393736330688209421613216630524535913534180069836181376687069653940354756633121594043336537149477646930959238969300981400128339942241784644205563237494195588655711194316694852737271467564523653756335053509412852207071213666853305666077261321909502522708001537018465274057299954257237612149467917878965007136569468737135176790305918478610064408039623380366112420796429413997711425129876886867921225957681937434686219295951677575041000531324400395025464813922395752867205865519232630117158790394228479400033136342690616998950620767876758438560822870023824965949864636677752665992045037949567454621959305615157237114005818462108111757518074505345644757510714665749712865786315633650315766602231179688842427705143605030895340369138751693834963191055830789057412716342026745639589480269993499817786194854032842580447507702036980614124210028673402215373717449910382344582974841509554921321596247503676157937457966312344970024259048754209753638392977970135611075419890185320388102189742732523058594975715587194203968983232261543915926799278290868887615557685464475145321007261057304480560801170778573773389328649161237160503874393425296077270686607945226852701748538660878391908769919482286368822904126425728007169449539095109147340576743373800121918003053695463732058708280805897753200164261899284086477325987308523662718432907051379690482767237359663674840326930152726979023622164497413301896160063187906680067114879855440934850010392451832128021936240865332423210524508273858292767376786897769563163429912119100591829113834570602034407039439907252794704037332666845969262612149740022955755957103432278935145546654240454639108135515526289008041313778076010047731921667605609414922322407692784868581399120902381939640553732156273729774599104058612708010290070504258677834997604617981249277064647946914717824882964857597246118738452310145846252578641151645831629928871296158120640245726063641403547330497684819388717255144874553637654450100877635889271103902432305395570440490653526945572116823174797871552238218275642559191577705234494797534728754967358938974553004384150971639689492450460807144304749513035389552683724556102677297197728705725821702870946559113624443233577013976991376557635398293304745890910146097951793963836877464460537498870076444958945080951649086121418118114411581564291339894359961115295201011090921555683192510304199134569078598147452550024496299217637100825950908527991666280411621947557560789072232508109507958864428270206382280010387548569653277918391881527976247363914241737035462832846178043497804863650924480218673145376029381667225397967943687539811790283665371711294928570247615104247420000842138002360062172676961056825812074825607601554350440642235719159196941977102271332798738703896792455283998628387190591132170912873789416843478073616601385277273955441007922885144206989860752891765415713987494745624257125985568853395179261811411336833610766327532917945450559339496798638637385166987245973045473517814206313407336217557963303445751588294115571035936965538808465113377889907662427115213645717203151474033444220592780241035621185552820148137193628045384759081159535583389323856214906710766634860103899897309503665916470566641224171867684481673261984942860931134161677372869239064541281151114265284706331872018736436704722444872339837797443917483651725978484001995989141815015793126867143338089110041903011689326088637811101739754455378220243345928025988394543313408063208815585272940129407793591568453167276003129428022764844950476102469600096742914718709227664733535016583182900802513988806075062512920214133012553262594653676747309362168786373642132964460223375978804951297875514972248087443902228201432020596011968427496647339668192152955843994899885203116102251830415202598254493913162379529978887575226502512290536369684360947156894370625110146626979127317600028931254504181734206587852133573296292406176063815154876772319483965693053534699525436619942445025210956264327673264297573891341063071571069910120223373700543344089633164671795453776814017523414051506354724718503582851697756507438745756936267425278617680044452453997404854142768367107660932077570907942983930141059108319779004643928663925750793425059315530220828571812261504197146999479182206173237055107363417454472374578734058039467476936645480366302107355949982189985637626423275851713539674381852607692065084359430503711580664018783670247971717817629383163717022957319704836788074289104234588883010286886721425473460800325970368961540232885177770519917217722126629145266710012765310268209249444116706547745690453735094971291632322754658780012455939359516308363996632274294348761712200788557026742656005307931914553340826613876110867355827477903388666375961583271482304260564293374276430577214721933660349865505471404495099572243634921327638523955999731969353095676316483499549968997301028027802976919398865854260910458887056358320119923243976302079744228989401532015194448119038656596527060940729656109179989212447788381061826843741004533264894041839167807875194970135620682606775929191105350811658871889330602616124002125821214814033994922065317911090343505034390454997621909575364444525216482926318074514847705427295531061358123636098532455513223248335515655454129898240983636464991197823377781434368761891555932107150996663956365938986943906250792798754309629298254722904075303083946113679418464217524479603336781530560815072859534420751234621210398363494646351037377902646301154848382328115730756570139749838991587981061155485503050503636496837319001341889960677180609550919301860956617074936923809984165020752032511775024105153238559331611462479006013431917536781535650499158886565712350699938463972811055677418554732449419261844928024491155501159258266699761842595938239010778981740501698827736098775733340727463982157416590666746092788589793482051329859635872596933453096696290638936294483721592179809649028588131236105122292802613207290203037173818863673426755136120799039925518682039336771032065058320844753008022685569087787925516651196271595581080774995884106815028546978722618515860131053447401452161819880570008041625337613442572210021654343034631561658533495173578097862727508565637495885164700180236193907427903572440671639515164076324041355275140895194010983003077942711186582186395498966118646661099619006299940860587596046798663224125688744100277392946459761010313748499025202923381823521770961060957659195594594766683174301715233697541153774488836768185487506225092956404236899388699298768391239262686664320846156824079022630261007982910762448391697770166734393015417974906409591528006299294903821114115581613597425269392845251903924580942074245031825729775525278662144939889269097946808742467810124936303589647736955061635377554887007453752449758789984526715159661468382897965322026239279415134409484320718488021041761318273983635494951702947582147526052762449018796654446649739244787466755473039945661708734966226893310826578544989689522720000299020320082583537843797977369051357581909672545100919937820960311377401693468349060050383710720973704747038041652357293760594740896213944459243835928531449324528040435930091361066138431197723802901386716437729516975408679486817150848114983580115637500819174652702667078725450710386888115319770856887642479441717346985398572182973540634585289393419510108356692217870537347189274482770172261276210352914754469238439801713991195610779279343015935215314745993861261917820509006372599982898894955889352738871206115924964334575620934595969589991305670214263828062338258065675989298284336747490064749636485183227496296504609790116798879237570409360382848804716962979240866751329684429378878772941508351768983067081406319615266318811220002378477349857074231421343513439785934263652893537973642429692040481126641630442022108037974958917447347438656443227759256025211611275475237173407904939907863115861150675587611892241620866645157155693764143768398316378184896712026202767681796543737474062197016782354228153944851947225361548705617439672423373064246004849976028637046458157121082361644243157513464991574603126068454185442041237379226558141188867498425275628890619413680660120653219110021439726944250119861671108107330036621019057808024738532315309998516187068333320104886343370874515384771497826611878623722809988768796437157388245109948454863062677898230124099899097581400196627238869886506274362245627422245273296322526794005473207190578712738171313037812851342121980561614421465646442691503834615205393670262682230246569921972108499640448169478246937730553487882650548451820500688833920228718257893501922575273066347117689744075489969911848879473693360634435416669126110324171320199558698155462486848765560817440191636634896009939019190617462920712907773668987215589387284837290528737525874975985961334065562071716015864495203965747017366445291922775112214840250348931592291227909869559740121450086899414500905511271563163376029880649036324060330561686204113765887773354075456197631169473595741926526340690247748847944572162392019734910646093343372691766139790561477334405313580357492837236048996535724635224943379170117501700910623724139188168622774311868498446908349544186359947934546875786992758967934359461801422179022731703106642181266805258674639855873403937218498674760765908540664410993109094772945319935744022010625194485390415415526088812523951030988439475273993114805239182883072640559753135854179285589568448235801810309034536257287178753007366905762675576038186841533417807768785265764648568421372782962361444048072918752970847713035386825280794870136077858688063826118846948936000368731308263796070062414166949217007493994027036019655540144551697605983750876665466681175971464591586472459604126213474096535423088144585788737931408820378946875432258749346631550448394220982662120659668920805991231871152348374702391595507308602710826339080613874735946982617225627698201596733587437220072159330945504087100400399942661058368106542565990177452901188442727183727218360362725831032448281905897988132126789383763958601684674505449443324514522505484121689281406198491125336449008055827019225157414233973363675146098852188562888687741759950414119016779082981087981003344059357301768838113330331517890716801004922540370928686019861303230570442544784070222215479202176656810300556732604832141594517952453198568051618281505026657213997833551878017001188926386998982862074069559908072278357357779572909621730678231949891745579649347442916575996742116312045164586488372906411431594941509515182091440023085111902279845254724480732842462819580994286854608463832259903054647649844822027852532041327924708230173153128616565550579171362996704713031426448730651102379715183685917739210234921316552818908243988795415241739115173112253986123777571836196603482334596559830148386962397935172399953332149236858101002088396536196102769272242708413638676766805151657475748563564625170353005141588510490785981397552708684580512916126285800204718968981352924537708654009399430857976372332850049658513167781751512268433533078245773850518064016232965300638381959412748406362238902079343730490602631682082711982449135468358608191763963869074513906253163988220966167459039154419658753509327628324377352725202481267804980432472049504118993199214940543188074334131690442231993900033860222664542777196527619175517239774122974951286228353453167535783582220709404341988363864269809182680393908581168419251055879980600804892515639869235466940426976508235722279102514965535944486457602176056965936487953786533245377528958124130077794853700355049141147399480942143938156352492220171960392715505474624458908615503493223913774734037707869685065406168291574497094550626382970653100372399096282340488654676899984695588097389221024809367355648416118953594094732694994712686683205233961592970988264857368430049479763187443162188318234553009113281395022058793163265623258760678313778860802164424755166790565084117869227838601069196311097198475816715731470665697912300900167325178828827410830916378919665771088324388689878978674017775152882038377140196042576067201055687753278265635218691440514152606904675099537260685010068090898256943728822872776565648676808870099677655931857488641807027672434690011360065705215856354361750940761714947286060654795860317080028458573534984667736817376311066210050901688458764469636082742255348277772239089617162631954508907163265513944222052245418795010013959331467784869602657182477423453495333444771634506251834200273611712277971411311859122617231398748444813023822630870020376647561102552492817268067633003425723280804501881540193689327900896802443495972820704182433260473622546140267129807815880955437062014862913612635784250883858338782266653795318775493629564875602500860564574106121413018369740026589604409861312097621742384636202861525070517840684732142861786050624678977696501080649374349880099099862277821370792854968304666222098761258622567872717247167377035578495656340871393998501192299094259418058176981522079135941046599560291156759645478239501654863240624304637484578282568152943128812348142959182613014625826598216139257451027482694039326395848441434280254559104213692669377211520332780000393317776968170570254195752174712489604084544287623419145407680501350136648260299825900164232712154869371719412068321272552365052345556418750383907154725013116607392021495916748164340813263221598174979207596551275566968167643653758490253748081725681074376104128000072521684248589911600780550526407002618947878950734929011531624607524519263824942659394156618736353904725594960863991920062863682336027619298747040427408239445084386606571473781482439047942137100041607538656494404511410074124886806751473820698906404691609668785103313915166401519188116985035278776178535991037499542013170279290003802979578697789403287244351634656250680497321424730588354628068268165892437445747802894610446371491051784643659270279214088700328047548335123375637651551375378098576409879201846635133361399911777033400307102895693247139414760524981189604991527014882852024419188822542195201446041256428572415492464257059932891400313757243297146432254316392880340022291819349556620226076966186628937982848485977895101864967826497883200445469321616668507343491494377347068812108358780025890056880927969843488668087585701693627346958249460678683477280531671377574237390038809941178396060563229166560016597555053580156393024034148287631738772041141104596217360600247688989295562523609460344139695232850810365425650972604178598707681206728880100023910871519624364523796139804416832063530365964676313687390068052160219938617457813716850223602735987525388781769570658970014030845593396538926528173406606711769050436459772081172396495445511722642718961760981599942012489444507285004723601677638055159025888050907442739799213222331442413311991648845309847804609576487673308967574840498808109636753283188829140569984321493076770280540978594528661414371362317344982844600683460293612717822106749057264144358401834185994851651076800890074177523665779838604146843077088125493398182697670055262829006079738879073309823758192800277287984088625205550963503428379056679009165454002163495231875810214360373915740287117877160300780822335691286752443479089318124833721443790468663894642970057885636863044936222821903481388430016629231837956067072444607238733666853072166528177574995554944565185559723424418674617832311347789498265457911007494983664005565827029167366585553214045607089219928798671479481486963859735402952568808294103893219539940309403610203691475033305666934106080254137789334609799833739614913375462998025277929027900916791345513186811542072604921274953783786454961096361710709188526000911344269986862316929622364801826595868745100292864895706610827112629823850714862796601026196462321518591359134275957938650083254680378818734838328813195125049360833016242923411483345165978995971272396619036531192501338604804306304486188000447908604951925481344608504900255462465762833007860019217266387405860411633426956945643704915210577481274188789397147340883696435623589473151813116894612249353835133073545324940311141819475918069943365250972012062816399501326849508470364280615191302267679780022639201330668599605677214188606546547190007478941819150355249004228131441561831914428785567165644730229663519017110678673781309725128864158690241440805460826302890917821063213258761198117005989653986380809188690195912795109738127829971614968482952956420790483206675614246675476557587233205314395682059967364852666866121309502895410003364475567981337463084255478098626772133428296370367370965722495452872713688536910875501700414755217328991375733435990511783082527866531543756320397861262818741433034787414732056655753749408565333160062266533701902018470700757883153841910430863505738806360161273972782653247433950791181341387242641930845040491230169581640029796756536900230972283833060665364338989718615947512701375079835111861684611131312062737689107099269662210895135650642217273987902256017146165687273472857258968434196646418926743942796836219750130920908958583675016146955315856490986029507684898990618752496282483391013490500531615441139204791836988664199277581239783215494331922266440217385719362948684012165008302830800137792172492196190735591840055254509199283204004476179924074953796487227402800768440258460782807399820105011703254955794246349886055398877105094563464875016593521420683920709161690804578842434158840652426786931346387198159787751555277292974427789855021844295381838111174001518887881581678209450418571910423387050709675494289068837817131515778788289175750964368231004558541788123812951942389881369473260093368104043532759378203592609338672854710731669349117239731088777421556400993982716487209646400626288644814066630645915860478483884438639557949729858913725876494313032863708998435233211285235180380451840456453616557488258146577569223324763027318292194917123312862445349910169641329343828192270372929479623957492471387293235872189202891321010227905389793754531929818805615404741750885287697239955715024488311996147288541405026873271988332698202865261947579132123472321800986769869114602023818094214695482488983708026784454127238065539207624000472883715833292985257303931579897749630249442881891109687669885038988475139661758721431749950830405062057337701201165734655031625247491152692209220329333099183511253103441520539021462572907538189151660532009353573433085308322069236065495910076621021455976397690797104578360746363279797141464241921341413362490638165341179913497340942791820162560195668960082585212801935659078286060316159583630768455444971390778532557322451861121457857407153520176524477866536188498584909073773012207410379043325948649553043039924539744599365748694712365220127983636463974841504171079015909030527993914730368383988070020900067154693292472845084238969055746091753412436771940164707896905400321957304300062647064001902787558367553538009538610004860907701825433771071842737005335530168745788579712547856669051060431884702717068939874593123590595787190640021351849962237654458800368438890730888882316167222706569040622846542647867174000304355724505656027888895414604361767058254609324740762750986618005005295085365132924996085489794491851679901108125042129576299717026071355278375826011049259788132269386674462376581478287353996290607777926958370206315142465291572402754749172499871674492017402896643394334056523013998752411975824906808668739963334567120262646588189112205510370254595835696613685651027808513553265192407879356001177622256223040047615352084893915838200188662051697653985508279177228759760512649996776380744854023515354158861958313761064981407872076993476575643825204686852172508271398328278023431968582180526312778589776606799260449674841607147416701768871617759936302016406670583788373298829072308418101361195030635512781921033791248351139203377847927869910236903201576635051694272788615314605043059382799483973453696117530370081091753888718922085260227065408543359392176194167983023280540493611211606272078917213275539397891040009296411075427435056997070124087820368696156181264339487476375430672800997137514749969251872832338346290173187993657672881621150607684683981168004325183172727318738731299600470122693264241367429828234673545241671187928246547483771232027668284827108118680369092997816294357245746038736757681349325570988491808106825780139927175874113342818467367935065588288092642433542540431975695308679888851052939546972858904750094768215239855018122253967804295649744732833918502734695958654199465556673691528040340133138523044251625878529442108850786665786038977471199474551850767513012313409004181669022733747711313184768662700684913099851041398448581246504416825648502296722547623957826994893290396927660069560824794949640936521086240054916593836190226949279604820384873402790555892327350917834321489255163838253716769046595200337493763489361408521821422032909437058819366667588045834899590756628481221717417541045388594073721522140152539089290837492661357473726078136250646372172174647014375086607442922610282135186915422739595707856809305717805298017449920373332616447569973285579636372761314520824128584691269607757403603870427756792896116769197980590315556041264193433135907163540228494522660139637945544578210401916809536530029326175963519302554231994320915351604029480527363372655642113755660228078082580631755134690631312522976636461710046644260609758467511826059626478678423988469023904537053899442147495735527191644002486825857959538119556379445766293639864945783966889988549958744882404123217688394930611865457764406132278492999831436339601909408845364855064434994151324368388915207524622500581886953479022755388162550935261664564168937667729224566504570593736163562061347149268518398302030398947301417999580756219293679631331168574359230118009742643333166799069903014627615948353571702091082769723955995166314448471073661362698999333505984917293395425037419952709397225151152725603707342856528645078682930596600542273721110760198519572780689792176654274076913441389976286219849249060295412613922513755303547571083962124047364119093950727120287171933628751633770095537644141073408534587163396202315745080910035511075780543647788028784564461111374559269736190641865481500991913835142603110017727213944312200472061728194346946568087245025425776902305881073847908338554154241847165074085758748657872414703150708059886569082696823014504860995389777639164844064040829341079695803416777203346083361561806902558655568372358899731238055981740946878296315394198561987980715826988061570797223797614254329279969775869529503192782879344164906684917238636963066131600069845218471351661540421474817450009488880992097347739713235983257241469422608421551314903322335194172495336593827506147678404820368342762698983505950538542288632376519507559494252034699007486142118718228855140504777033896138465324120396838273805758302335802318818154783577972353098821826806668466611431547734771593484448806242573898780659094247793855764139774362957926616382350515925104772080640182248840770399104272190682817373627884484661251509601789565516530525459928298814514569304332104855209998294477199800010669178316597405288838955786848126826045339494960298145455607700848563595190878860293834402955424992003171252049865974742598736775262684612036794969685779240965332835476295744573424819628298513228294768484561704144331417227074844590541854546920712381802192147731324399677775088380262842899461321741075595242942838693661707776631721437093935389756151285406507619266962457528425584578329101603399094534987005898426549460671285988246165724203031287392641058479877112616415588725366990503235172390556771478887978391318460027526013346250384370327865658644640045969089342795828844204278088696174612766423095010464466975385047837147847463564808983326747617454587149158040310259303179027827631577683454789695340741444899298391248726705590977007205476904532798018719459086653085131303165210899807970074346353062010983654398809891666431377472778350923702120438433461984651298096246078250815373461237950954538084583615556802047058813000097967076683597619730868260068886592967106593825585408003245046640864300234241212400637988761872553619470063378617029731045790654393141782794815822556747190509137982750967128128713624228961995770125178266159765174895929800361299252420612636288753095893487054970567237427178203577929799044192472925523930239803281431550947442889169030810451749778337563695823623476421007681521013719611874239723046317620571421827502217433908136169108704379094648855723334709761794273884863260136382738829636948538562039289360469072141436918010869513262734242292289810831964448162660535221857302959912689580980030458569356950455324801012344693633519543209747039185972395284328265027486233685636319723484135917780367797476334926966839547919061671080912900977387892259947355105509369851099383400641615409041268483939276208344215731183553571811344809512427689467664133329412281968424211994084251819552540466791650683408593554438245089575917839560688925508875782601407665878873509581824029795935579176629795546144709687801105983245220772365184171365292086849127914167048844999506587623339745957283976609985570063073621061473108752135185691711434545980978759602717407753584494461335317219372757066720457054889162599362446073191328059099258490440334268888755206475822517059592546909622484138893551731674282405118514316321724941688337458555953194018731728482852384130850463928569703430415301672405519384287113990081379861783925401427930866800447993203217193977589132581730210943862837880298064147801527435978830543398833294182197356511263261136927889607220830049785379029572401206852511441517947445933949372493777040244508489303559231727447268310831863032401617405028558027781989587173138742286021835156755111294461931637970374743120482380426808382103640444413209218792335326207553690778947522577094400367361923684069089352580775139995979544994304813393366972850107387040529514128379014523051018542970679548730403086861911553445347207320205415889776517186773112110767499098606332327532194116619491673882421153254781817447137215785413060638809359771740127652578006130429404480092282094876208235071982967354258225010243093776426053158501530780195419132395627771454506196608712679385472894088990774872378074763910904139773269472716774720509093761125451173132323055545430594168575254390209706595639872379883859809672453076443365605957619420165297991439760503275536179970539083043062659078539157290393348816599695776188645543467960796185133274981714451454121121978391800072981448985394468652920906232451119991343622769035739511545852763073859497296401481679584183768596081587808411854107075858197006075679512118775192824192978932913697957488964832226447315201857097421470968832720126657569386662690902895227617002789316107331774777860576801489397050722164129952981111519705356258334086212115137343542243365384892109813231518030759958379293352988771108959424257614669669563328015165572631308730691910976141911192140518581566800970269012217652933246150024857148795508157765716617851432063595454269475894893590065216458040914619555121413703328570096981386040164186367411211803517572404165098969539160883870508168130659168784000076687154148453834548426212615023424173732704551418864382038138481187086970477480757052496451958726427467497961554145515243844853071277974513504891479736271508769586642597923948549807121597366111160771179404398754897377941523326345637497694571070723332500579924632517961246925202073600676059424894002313684684133269882064204201793052851286793514397974802663752948519413208709636415619129628353197632264929732843778863988273125580675834585517708516296556854513930040166936652015237941259758594787680658599909001647667300028803405906000409916352825724542776048195330414288258102426683093238666065072442129010650129519704588233709223842813208541788333949817017521868373518976118165536097368527921159807792862468137647209527948954492003629787509278163561013966936442051626454454078040877140605261210096091892851165917642142102408894486963639560136738394573391600970936545456252876594838530152025217920016067376184593093820281029522221651826847506249110612600635770187884080015456395086775836330889674102156127847438534916513504056361497810493934610278991346194971717620354779182463058955651590284410176884860856124971688688694560069299408789451858960773779587537184535576100293123615457372928926502125776799891636431122490915435124942451504351543159772079679480821690160478404820074511788521534057547979157359023720351567919331466238811546216888330136140286060894099941046694191077604573661056973849342736025666561894417850791360269218328225600772827558503792927511092274123298633761630280619472587934405605682352397738316196870682817957106987986220846807864240590940532973528986417326776352715593819068276665027822007075937364234472722949724352328688747255223696990149016250232239953089558714841026847728933314338512413574808002516901515273642797232871920305183058423020023480003195737450289144792370379456092332375056957530406182137291111549207147636156087781374566165270719225726971831530190297380968480704163648676623563898580781667185915841165056967477660248100898403207432135971427539719463719568285137954277665493292286088815758844402358679494895634743082591370159664885877740968657368886159173445699345423789796860102281579750802808290145419890776365830963808843068833048209493176290244642721782087546048675020749125865675632555272712761844508593689837869344782479132218961609896744251068871568346844003513753261889525651650378407390850726111330073474608900986399356090693254407902415129479900454070198064147454356615420093521023460135409564743708627052575249546309745028748994095548417613905405205917143884689610667767042788158551954830865180431452342252544157531538789527812311652637741374778859231486165422330560170262927070989802218101298018926264442181895333514456307945130131516161113186541739949928667773348809917799607274979942325830876333863236454430756286912013122433699722445942070531553430162791392954616427634050066121570390323897628046962649946936552687904997592625781048321714120152617718243676118055621425228747711795755687831749980087115743377021733744354559152375569003303846970711944162466147940729778851919737571735139251589728003653284495698818807793750353012957562815265694285548711002473686606133994833728877451276625305111547200364023758381374096448885606756190691502370567456212886751406896512300725835703132007271186783741410272483267723737736266064785712664034604255230577893153374094696520210720083477867447190692442495875281327573308071020174217862876493174580385357770573146169390732370693807234572442819732133540458091334073240562462051635023765919854327486861806809764758822298360090715184285444387389253990895167163101336450604259024214730312590366566713830210721487078362116410989001443431111686541979279030738463471761216326055614602483718782013128767579503748843671424340815557336904568905253987940756496970890461180288835502701816146073567146670579094838583098623032072369988456016426146581235370250321762595458510650193835724530033975065973162773324493037833158483276609920327962170634304347533144444662273808130479120152431013348199246152182422896125861548215564066571322538454837250102824541094095941833140744413373573726801751848385602581823598076323474301616632337115618473904523544808050397923930564565149407453805700608900747460564792045367701912123944032379012912057911823870697038950342800108194104312533059820375022104418801840340693087316662389345769411710130095354276422250477967970659811050209000499665477539067477494265077042738086131079649022685143738705002003139591458970901527786563481601855984407347141966578516863230724464729976534627173085781779351210169745816022125206872804117983461838602502674496819896409316084514811211289901223953238596095609010125409679071980389201946320573876491052352274600231169438952920539652219945752313774824792042332440959570647916947986679292071219588519360884616729864867733135496942918790753283049237042906806671100228108618175742054325670013721078461498423758571675370709717091158640713789292916669732138066201993461882411605984381867950020291302700630471271230309356329151613185134271068880589325257010289491975959328441068815634431486337881683152086488330405558423640610653792083593354855029601111716797855835055992622825179528121259299901328930643567078030762732731785913192831978687427119792329026921734766714440150914493298931271901642867207577973786747346659909750220148201282318311942073002118376648323793017125407062486893930254842818564146743301054822494239865647540189915244319689016623095069239230092331073854438378287040239865883314894115930312729585489575244691395750554324692036072622661527884763859621780840775323672620759387693034625994628767098929074909587036463710326771989290183218261085648767137535097685346277879529345729303877439985009171886107643289526276955735819363643071985463836576803048291472606628268431502738182490024701646361891514551267354187410777993604444693120764910720492339508029361923636739186111358457491174745850895766026030016649207165032064574933473182115629614682552043633793703811881445511700199594951451643939496892052925176170203033878152549016590898013084368295703216372738106005677841301789223187456827485973685892550662348505920595966932941451965564112544787613727402961042236767123102886827101030506298912039129958709969549696350445311338501474893968451136923151983918311614181751299865413134308577482450744608865478974803234032822047940330911413065286797959251446451119245193377096086421744083706830953501820320690733998021423114077693815563664299271198287638772954003043761077558560503152072341236069293555608512342872636454545327532505028403844427666944580875476707020358629166265648385835239481775119725863257761585324714313921831645606858444837272561232326437160277959982679675137485735866227007991380368079237437060952045644458115422996712080728693142938195446059859150482283182225864144502443694403016953999551964835844068650513302688060524637837786550411374408003229069259206595008720053856196258290443684098884015744695412435640203695356667664471428705145194488282364301276743975954281353705132274028177726410320358687259975908636720030322166479949285805139516838009952665995957006779059857899802532591060162968054520247719286867415536831608313849812883038497788805134776120600668446074019006091961596736557293470432203052525096691897799904632706214236246197209139054800897629549379624033779360699871909809740817348349160961344144454855399252874623315655754479515043659009726881824483488607267253954705750084586118656691210546554442742739341292909860356758560401179075842059955382030090533470904609544400364411204402064747277115699723825995016564289514798273835336191148070920495143430542364682833293372105841840113038659748556445393353480196392240901582544815619982321514594021644988928954598025838002753795859416551169949998334299863870298210169956200115307174364628403062976228854397656440994095452143137823119472537678199569925600035184013564592070018182002364113601317367059948860873837740079596216530273504264712519969123881189962445985496545712591716765735965666073544162180250350473267074916989295091108545560887246265340466199116910912898344394140149794368876947576742981816351477890228198553828826875086171801724165447936071606810476688291651905769728260939294045518879229360563991358788409037978237657167099627379854538197155393123213184168460887925569557789568218578933058912033558193819605431634812945440670636717031609382071430501741665931701822864380424227100461476377419587597158637643925692920091970557814536268646833436392822002961409917034785776647815238423933181441545303665717264758861698185709312028936561827956298873801249268960742415686748213166806737547004873097507122517234312386326918051513495858299815953232272036491265584567970313648027337521248546663088337117821491096212889579598333096965769449606997602794998948692839833179373259055262824938536112749581100314309947673287926675675862093811456005280490351696951102877702960382852984022979663267657766700273721612188559213678295975254745189290802341461109178651198181443332508296907751734782465540859582555879784436114533748971000648701802230858555006368213465735451358622908263267269942322281310578480859225459974010152386643805972060742335436148434380594678878965103874781589482298121867566926402507774429185737268404164133918815647863437957421349973110625813038722373382342932059184997005531558789997499211498049147170894289204924485228227428754928778961366544141880031251298094296698501297789630803520155071625046548507096720263523837137727080467737094250188914576548473144396682735465577035533319183416447759769589767759079580599161248557697742370577236750478802033545042839668829165053721971840415030219242559083077041126537029850162401642928588819083345415163420649569614230184410098120097464836021274542488314677695424869966325106764282955023596597420624833639600871254931738667303520412775815146665406297095835407526265984461429317997606950218052391173738657513542149681135444335709989120900959285277870528305494023166373596843335990573430886135788594100918304724868658597101621328773940690573247143654564995414532708261916122828136141873072143448374304762374117218607703831518535153444927255286360872281372275921133951010817132196627373251759839870298393574554670897073472118526096580832126550176847849042981542102628134461227326743097894606898531983271500597352869408537556600543585035531071543126711187052187437154621351786866520566809198758457902859402461462974756500320848639132266876957787363245279809846028777271790644575603830692076754803583225444268138744057577680228865984119682821511854192308009595976426134672789124550572221116989128872789196848209751320330183519864637506948609047124994581121101739748089425462363361637994303103743641704490497229761742276059229909719910183686309607177707284278559940691731124761104143175195484741868963007719849385595359094796621989100285739463074008453728634491008331886691773732822940034839772267282852576844423535238265688394091115383618494623477574392850577545362052850285894168883510326754941568458307049350718245944733542039244333831242530564516271677044265904310469544792724945458484166307286661315967954904501723742154734188383963625828267145768287536223179196480970146967912800872034724811993692012110805735534873210930484451943938375391750111493685442848882327523358320415126237999081950927139665018180010135959874613171104181190943843815294998388851376833102812961999213244147427175712448523389863741563559153433300634697975252780562173406344969758329123303838839043930889847558596348848717128628049995115380780179851422184642899066995686042126359913174558340544027260949975228907196495444321079358141594414130003154178315873396885639401679520483557547472342080568911695167676379565049556350801120600485830539781225523250279416265929059342577444937297010990473032228417084435874835533027436959119620604094398292594217836572122949588482111940796907578879346475614111620469981820333983890294301617730082336791847837032352285201106652788903979394923177691677927465218586487906149671125833025268978767340686020585649779836967433409386564464541522184138308153198691782709663311457166311167127629429870510954006815621709673609960982333620298264491062972453766091461557722487904133443498461372527868084519562587929634988829308577311651761978933155831178190138202604800108717847813528876671156827277727293788539545266076110165404604967484790046109967625064770534485867459674285304745739310026848489332320092334378719449422073994656221579351616997135346810118986165642186835619765143087284876913875051171774997279327734589289686045655919127951963972965058621503235970990761410736826055765710021281464324557711937994370352393161966789747615408162564080209537345142359967274660207879340551720126298050440141960686007520537976936662527229414516164243840373320664715629492667411218230070558632534126451261205451730438501742500255863357368642128506479294875652127003528484925793303468302355436396844388942125713825345606567295682353448855392442787535153219929970525567874298790934589872427097795864675935786046402368877280060764969741403498430828099900200964192341373871916939247078911129360071425174352988047176771488771047639243938733953926156981033593757771990733264174689003779748012768171285174611790433651774943240717243831955671333999076065745711795908229160178746662596479427098214996443556464641746892070263439833612488741213852843180926267110910006311839900047788673479535796540906534625483782540343366480716036579512043721277489692409759070743903888160272243849414010818707613782721579102910977347239673059873266282944609095799971831456932318414820598241405221661884530623478458213736716365412869996012208263466030244021657213819621857678201987445703390449531715273405079293162927254175276071525274900949852592092189270221365853128814756050493107326784967874457818666444696566556159546628196225093007855726414762636205386790177093901753593143303991602346144017242303422870066444000333287498959211419901275117267837165113957521318189106321325982470665760601893795936768900778292470702178748960817572930163337422437946134426013670326986896893286026344537802080716911569096473112620464280681469137765384370834583461950578500710859348211267439414566514018693209661894737826353425844979116990764335021255949666946182096856088834507423032865334415800933730470783882558169392465359482008391296146673784719505449557288484917894359362433318731778167365833143435237903366613998440619919741751763623875263882517103330650006874165381548000146223035368554806943933901918623025799341205165683050748554837970689979086978778380925472599541896297955461241178150553097424297211015855444872561224452281923365433344381437779507284484416411562230780502555916073574236130937227278342278550854045655974632330021018677850906837642253597558324399809824120326754848388130903186416405889972708672803858148252711200774577325313060077188364435250481351897062697492954106598639781749610304900612750663620315153501772411975775842665330526711208828879499136756706311508666947451444413385167279618393394695892711366741310031460763950304214487197838605268923963663428841081427889387218889061901105262301854700902585879295962286995133492768242825339423516329432958275005653860838842671378433472749363134074774033020972157928769294427750861883993079014700798058284422754663270723044475476221172969550934301361103608110869865648820019210498063947747907204343842952408523074395435775914096703640204119855351221274456641189386508912198650651676384963680904897438136528031651864583945718364542628336972639597281272184719691901458413566101778660461738434377578238045217887446205601008837005608532309102429010446454770616225780489304091645027935596054032922116016890312473698560404022364574874325064760356516996525149843066230382959360506224077329077140241881077974929605328439558794513342200984446524123995015168092054135722863400569727546498035809303399864801683273314732405992052623221301841394629357762616263108544738550046970981019503611102303147785470725982313677193488360946562810955308895891304756898206961792235003834414159838519134678802861434140322682972282877087832862443872461043683423194619039062231886951402047083602179854682606525970215898759108726826311380785554760623531897033109731339493856174913776375015694265285594518538285548861731455542429537829401937069192373702514195889767077337261953272009352040631230894896817770418315769200479267208670985624722371469041593510371382810404981491630540473613156170175020613717177529554074416013415644049558669098655553963822194479371285572116237511169674267269398414446409165564405469316209161792387195832423201792707930511399957522027876697835964113841745919153325851855400348502550258942191139631295827776242104601078490449514305208591369463422882205470005877924797122791569525468104082546868392011642844581406479079744204382548230932751330929827854322891531438484960341468377717333528082674693451694865123489668215542436716864689648367102116892738882852460803137275581978893347611389121817634186010246002199453522169695465984754100320965505092374983857200797246098841224709751802428260567468970239418684249086884896427548013344834897826141931952748268934940660217953927099874119941440026849046831623693092310313227593419895455647920486804047513800862803877302718224530435269088861085286227033299407214531786714206251458502589768431009570018237532457583556175208361045122445559451164641676652164039933909223960438459978846745024409051020365616326499611976022338650450164175971129399271258847004178259021301025859708915214346305818293642313738265770325966782269003667246653623493582489253429872765716395233077036864124728227360272899956258675924039456283567921382744144884101594074938485261854731977735629291738316323634078498295663573440837080566492930384530911802081642779663919138211134671431349222724650464853559873649609332918981272225782414025021461095716842489127517155999789054963438772347654216032600552711479469114345799479188662371913204351193916732098936789665660595190505293142386342836302871587326885974645375104744336239378727883288080209671284307145494624712209224368596509224022409759315268356373083912969088131690762605766275697538294401451462903435879969746365350644989079289439367514195684278622571490999000660693452127602100433923191579953599856128108015198099369237427035714824552697877834156615766765046468972513764666691349717370073856563199809824020488196573431750685394977620588140949599204457181067292820434460233029206089034987652191489114005388479159169790232100042728570981933213450101995262110002720665377817101476365794604457436600511605731430206799816628152175022607863654856500014740521251538761988744009614038435985936590749044885433576124648339624305977760400764964468836659767885202097769622989434779310397052097337379035956105938926362483729464739833082875779613671160578090636248247218122565923068672954903839999603464343619721464617129859464713514336724154544236086026720354823754403609940987969795691754294597376637814214903543465474756367579109215112249177259281054497722392344910239348010020477114477115665691810793937093005185895063294974675085028501091542448247999331574760884083230621673277606863889041998131658908743715715182756496770227483082070640664610195915838664582262045066280101229327232913951078851180269575466763598360256313810103336561707576543374033547244411033012160262518685885740307252173358618230425768505852989368217311659401864129083016295871504908228966369729175163156580642075308057814630909351804610997394344895769235493201359025461576211186277875183675133197416397965042839283233813967577546044126251309269236819069515011990756203222078141117233856210886029332202628821351657948143043710901937502602615358394092775606370381894801309146142193462505538317243084792994913722254556932855071012842540716666708550836069519882534081257173192354430351145241442763376219409223537269924331324044593855311419111248530740206309034458787352734205728949833401320648524429659866705936546637854164909435599113875394939533353795179710697849689465789562111721919182730408587252939232736415365174931999541055485695904867449130608403673760384933109499397491357995516686538178967825518720619482797046763494309775570711346259052863519049705605501149952291549385301472947701907784352979528736110808555930816666063004411442934110903736462787797385529336080005728707008925894128525718740067144979163608343364449512491658282814247013106705277212566840459953745190258756859925040591523645581967276120829118816242390532048835776883706989261956413196139024262326986535888828080830077868120640771763127831942109994564946270199453143950818533071280932906924007035716251851881886781978499339618202756374219055795852720866691780754391501345745135824389165929793143802432756125929317389635156284416618446798305427876389879458377234976271788482514763963084750927236881238908408253205039231861771203837349725271122977879618826428717342870324567464830024936072264879115004752658014481161256455085961020386098516375430583243886799104060354750554919019078652604832779826760329639424902646776584032482288353217401243697346228420515642302281964105423829083019418744284347631856779612404210143501936395129569848675767196622100386159919220843553607157695597226418380405173613720718024656351031905650002781140416506330027920096648084003239075353475142517947562290376521349790438917631387969346882122992632179976946318054586234283962111545434361938649914568714669196046573550708119281742703072297268175581694125291880319164401424979154316328698593084405121456593114822081225533917703400542356981342145520225083510060213059633520405855517183196770388468848107256913224775370978517356181131314602317015765733642391945941153428587713644046548912738690226809477300327050680925112515796616449857969673641384506649657223535349339987852781011029961540375764006392918549334682857426381333709224026503576334041674651563823682546406236683512078265783876994677574778261756072151611517169077854019779588935480379730314259015804959634085029998769718242088662266952607190643888829800776067285300504377931568663150835136293382700050014305079145283620364844016728257811490663355022344207470504140108577681732070691052946952435531260482081992852776354160832547115404236349354073746280392793929538000549531936092304644299949969601372497329473045857561370500696813332650050982068972930761533906911566589575289348041114597076548821845368946669685760976510228312231785723248115327526243507916748767114629807570444916419327725644093694739329508091594111888576575627605947981361066660726713405782754255962903653218429901699582863944715550002608249133538201092490106590517426837719787357774494332116858186556264738816590773495414598826320380773614704847302212307494416508982619355915728634839215946539884821479723121422985746459510717638313296902418674632513180587140887507605079146714365415130001490793064761739447084795219663286475620817791191312673745060721207772285925644269242275588354321570879235059073454513448782773022244902834965233584676255673585276240081613600818837470689380134300169507300792100213819552410335988953197895724727388026105492768171197300652082882474277953455872450866181664910497604595633585078213285558512171738028750032452570631050559170584646740577819068643404030481836777043954005330511034061034064244341662263262104276914139189829295132187608925729440843465398347752135532492061085339583447944246575155951930387777771303314182571837349336181359494978536937710746978662840628087326353481526121318422198590000489537194725559767010950536290825245415344768808948560098106453789023900669026240330058147020974571945999411055191513150974106600433677354582054908311982206214052364693461846389963993665352296830296687629098806288039573765451510480832349753889726221308245567306515580997698108868375034574123052905770832422837791897868900484091819310758469584739591936049278475424603605173876222727454250803986624356241755128485328627740193034035677595302584599128980304987894969902727081464397933050033618681565048534008643181123245261945265181128504277085309708543439104412885133932247544853545487503604528593702676966191821411926864640727674537937044387540433334732111461422637272746918640865482938910924547138981618983905872357233071633964104991229654984530252452062773254236268230069927913623232876317271939314698194222657495435264815539301874377959047593026811037249287634477873820880460292806409299829496949574358810992661805701633937240005839065430835289328365681014295867406445690755430990579214605868028509124430254386415987657745811536892804048022796824601748999122114645763093406181455992272669200898178737512580379975965161600162360123563886840671783110227750708343122790473193391649900639338401700713437261229953154980446151920254249685395856853034056333435557460075685791411618872226641464087652073358743887142629097587183543214317546160728464163335344783471250316602336086972826648893464249385171246913688150974728502178621326125434305256680358280878067788053159320726679802946628486109876207282962881376080938610435596590440030280433274569375289908248763023867774467891901435856939429832903668421133447796596234023022351425772433032257180388399336674468691135762854693395636380939944030458169687365777593455026644226038808691903715116300555334340845615595485796886470694826258721258505017182717172902122152154883455062591606418403678598295164938383827502338842721699252379291297755571366904642164623508228301600300917781930303202992458689949033190056339241024625117643885379133061302626747342735522601191650701665402429951095368218945485712431739048906824091977837805007788476284715447793094236913443061605831621337494272345769127542847063926610451575896235878875314807910450624969734598537574660724219723866287288056876196112491924054348467779611731534199822928190906868858322911406744454749162479739389022898105560502373425877658461611787030718265202762216543988453299199677583997851275865857975876141330660673176937512491635954166520167845872981736788210984456287942891945797633214683326858150090320979070126882100291239246191266326551545725477928665391020685257921844647078316052979524384950235994283951307427825885033440668517857175195979756024582150214174127294185727812196760865026925456910124042914953010368529810177485317386013207566085139072000765248297750066102006489116822199279563598683667280646146375025771141476535285573759488470408071713584691684010819040315115157674907483002747472492089602226288256153322030757380972517398982334827661859479561355569745768114356263150905783110005400025733754259235325195533966486610333760832855701893386312256676504006089214127828474723589347712295163086730885786914152124138391037613948757404498403407728036758863434522709194435803056787378297512680957631218800581872325624445107903526810585145115503200775957586130952567669411610679284436158885503745025199643989629329164613674881674653338160394690909957081965464756914949363321758527349661756616333633142361786512999103155008085702957081188115367052728369880378232293513423485590237271987961399821080481378978286271905911215145576750539945257184406597373280353888883311448535533307211591888108813621164495042715818999018846083377362200252225952801462063603335308595497431466018281959229684671075777132448068406428824048443431983583167163100295987061343365584117109902931775278943454861778017589259894377808376955226907760064988949859374256639405431033725421578519892785172070798006781116008303255187648978999624051146323717271787666404221132890036023742387968266530728858611458204635101847811443351482645709144371926864324187352691795328166380598678330105535534051935972237919851104199802325107465652033604453252083229023820380318926376357710015301132959804829919006199938769131728322282759961487021003588732371804280066332463423421481689021366816067559436287689991679889263956691760629914036939168950423418654922416490763500170736267249588592892202882851318830653534315190152124858291175079191514204862081854025205857112925711186219436001333397073313385201130404269193477026129523162199438819518726825806459158545110283311444722546199514479006340478970875786206390726697234278662710515860463663064011295202586318802614246791677818914960283829418175804841002892156797866458361473666161518328364248898620538952685018594598571541793931873387793508316542388009452614313661167556997173085302289717456046445340181137248629698680484939648354875277698476771266872179124589766732661209136101817577130166422972501883107621457715630930304761763753120314325053152938289368764254731070724234472586208511976694367576093235398753209704007704905204990097002661763594145655997695293503990560740817821113533817952723011541833693198496853699682000455955804193669794550174587185902249363708948377717854051852845396184448974345393758112967410556505193209974467914978427600027360747336728757760423995258555346027843267607849675404626511390165065011932241274783903947200545328773232251061149713782611006797180946510050968002029299578708605341462140278152222417299999238810930516093507733975450230248967423674160937134451711994544828471599977764935812192126984276414957698779046569807604845963007690272743862230985816831081569591826279567273760821291592860100505110063120576222176631730486531885400438632358304824066574914916432309970626850742467861835124642665013385935605278534909455725349102917592928967462790159416155498912655262272901334922409892745848193304686519679291788572236648412872788099241253031567204661044212776966334661461144235833841333670072503939911495214648826057055524002874124957617262587293276082875039567134065246440004465534274236025501550579632294105482716034706861606334723340695167141020346475077541483545389900277027054647064401126628179907315034654034416211324268692317732415896506654305962258120318662344227577155452318182371467756240959514623001280670533455330097623596443469880252784378889991664298096399608917759162208635312584033032934330328364191940229225832510255139044851577661537384389544195738993618183424528639296377886623102964658360007277810311536337551735772554814294031290021595870051998489769243004013572584139901669362490175737055613502599249338470342717828630211351013665612913057034355385281829516878671677585876966785092220093921415749156657877976049838136015356415968386153196178835297138136840181109306492826341915340691917514739666247438028195361186983624118552199108647476399183838831751642496727011076244756394844190278179300937948754634606558062301977564073268557610540173840888744123425435340928716044235338198480197509855326656344412479647343000893337758714849341509796077952293371511356796300845682505262104492468241718328801009872090490557315745334732686693281460093492475612212364355757338380848877835656780150990703058442028173574583393608789539712611053963920913420883561027006067667984524673113388642907971351588440987089820842516364374692926155397714999181733843390054912905228480783464924972406525089894980527916841937313192462608255426829694938399947449909001553748949618227591482184397985004981605388101106175582035133430598014977007377506156671125148132231136354831128453375945961514821352179361396425226359293724904730748305034080314461391379534825077865329730127193170823574400142671019598294356068699017441305128350206656702260375014821491291688147325294570243277244882672872703695326407051311994688190557874454323653033349635283235685543598155419822195014663787872238565683617462043479209944073538875204396786466790502484129433306873155428125788781002466591056347554949184593452224048907391979235634344557336971732532421846025449104896815768033195479410103877699580793309195667549756843741436738007139587337377370158773835510677164742095426033664228526731212787087444772874862787624087183675677446231270409827779414499009724701687407185016027826782479786922803484719661515305502074770577484975130517455737783771137538521608991118070633036604774157097192660876191790332783761008371386661200284954287759990429209463066716928657959479570222976504338720827010203097411141614044065688309248856505783636820366665690383976415182373517562262727836918279276922260001247082301014313204242886173980938438188411499928279435819031126010282785128424536660117087548476358600868930146179007252353665064986495393949789976847956334737319253661363839339392625135183429350639668237451256838918287641158986835708185634646443234934155849603633516006635521019891195610641364362875984754782832656740143538830769097839778410264802784292446392127537334308259676615595463240356934602653027818505668733984040626134434038735902944620279985651909121335651281741559465629653228413814320201293510413975023319091013513115363044003208045580264539843262176993895138148006779394566818486981118221367947203627069717166272000993180171551982931691480064144216554527244319384744545401727777498543434680365689223959035411243090841509496392771517424109802459814459622492246279687464652850619447531725842414634699195023717640799264901565883894746813617861833895388948765210952078574513676912719546020826928175909667970849486604941096352983594335524026991060844241944129636989817641966593062679317540231675717418776300616242348540972819571629645857645914789109507828228485948089307560402912097446643655820613206868118800709050280089509033323939169848569547099983044421012003624816471337996695789828857546903308983479965245633970897832796560025888125176950128761215962031742705945617247605321991673231499668556651420129682180703362289131172638273175901218264849443192688200394443904010259378607040442154260259118302598715337178641894048933049028440218219779835527268343118846778660086767296358235670258831768098576420371724008300183599184756268741559456449436191815840319081430316382793082945644785178547510845564499509566248039596764536149403258955790224083265180423303168987495255126592211993366848057039678493243765726775166001921586175226484125930062131229728111659469546004964144417453720948769025878806435503910875649164779358643963128231050824497146980878749518535377755059073006400326196054913803290535324429153006160574764322787720772249543713775721879315441185089268748706684510984919994774029130419009910413199662182849221380623579251694282687923830732907949100627482634407012102855924068656032952725636432866006199259156608604612216951261363717125845973805153319834055265481642732162527656665507804895818788280335174738280986326540497361574224697646334160367445803012006831824066753271656822243545451553196305642629524933077271831724594347199828619742832256465471469317237264979158882179226822581464727567629819823228891617872468373704773917444729396049832636238888488987409110389950601796665100207683999852974901805391966513413017869257959876931321978297623215132085739169153131630235772964840265735139567814288826809984794536720349725914074675758083553032869161972348461151726336778785596787295215097796275168791471869042062959440948825160768563767558299724183087586296237448846325869268169769569862185565747513991516545340672412280903259095805314622367701189892837637285845216115816088651700982086566993179185587408240193198757236778738748339547472138786855912387898647083202666370370577123949038420084686697322342401143933970834492585982487282835351070429069040993683972828790772990364794828929512200108758717837696082682968761387300679289452880122485181345862819341568457596145097729106764460802505319895932071290257857383461434428756630487094590400172954686784134369319047378645693624346842108015939806001930896444016743708031435016127034456212680833257554937567702722860251844838326336030991493351141327124526426284827056661841678837002329034737436785172871399080103798072481889279393172706963687329651841414381401643699641979104772103058453281512605363543929734206230947697774681185535865545727347198696963457517894499928607624365683861340948053177708586609013501430981261478886198774590445023428943829440884084963786611394307569237522658496207091217514309354645745194956210055506022912573762139295500871094278059852566144621611643133379102392968707102869815979123879915628026831542312338346028761908249604129570770254775171749388083172151637767831909730323344148784211841063672567391231685428722341601747097011777207794941625276166866634184531133372388837969340616323483261034247986038275402775807078419783232932280274342310048008015666017594045322950300821248286065787601570835438140698110774307987425601519039902653191434500770871742286290959456400095559831430283536045882101392333736174225951230344598044339198553697557512183733791549876940798724055337963585377433721856883936581525118830583915361831730388980110050683443034205419202990145067281082842786070261982680185106574018646495591553075727712639825402963107094686272145176568615098358489821767457474905846056457221100784990990295968002932778236845785411060432499682623509777664445789950402896922071152931100418019433997998692936329102842540904216097549122151976642204452638298777845609996207304732914567625352057847956828109461593248496047216278855997589808400863886276481795785299171103391782312069933848463135585996520927966713543451368142374414677346866508692313954756312945367286344929132316202233568090899457402145724002053455438961964561901185833856004027373908073938453966479565630190107551685567785511371856789134867010241148826879434586516280001168366438437200871252302021593672570907116628716172759037630292126097804935649507155160296282262620222220076936198605417949794329721028627216053128886455377518072059042506993543863755735218849458455591864741613610365710904012104682961238298801586056848456280185938913066620463024554148706366532453876802639347331383584374588140702939416537338731065439138020835231543120674268990861931738267455689886133486886014203113822463402985136672176380036020564248544468640441732703610343904546785948740880898137767465194534676741913286873365416228552787556586513383747424441755668768059698480160032772910576460631271456587757969301300100066869226158801213223835499299729508952608008844890331566453761603123539798391460102942868016932424355792770897344337610456917412011217656281587873761689256430272775429455740985500173593629963623464585480904307969215149002777355105660238115919297164426216999752427048404525516200419843663683131168650880093189706022840605253805889660436550144289265517623422353642941531834496116019563381539085645598303844165405359163037692607942052631716822683949122421374233422583650477350629165988187940145146602276544343310396554958998381495937554774183894935080770669890772115937530179948635505715649736903729553101532700227845915949120365978239322721254419584820222469818804173524166593951372788189814970055934970450654353393650064124999616980552537620756741382433980653781707631580648600484229451040007462806094138216930325385980670336637339712671705420812377317421650609715051536588359014781651474152760882383169734744844213386949978048253182219794502962538428202411667057690225140414548291451152504933254796448739365870274995595329674962624208957300710645799166192718675332184883041615064723993901745305878165719352954269804773238888290289437987777058751546999258692866559819465215205547815370514673420396142739809866046986692562965097629886337115746960159652917679649030010361398830304831962549939254413721221826076619178553252896294215162229342133903210249203820922454282932210965040551439277899046221822688424425798108098880498172827198905529734250552598867886196818712163473288309033885709088478279317127875533899279559282375618904155364486337016717860736222642780026147675713858263901788615952342485099182425112161097459268272047422835798114002166013285224946990515831800205925673956486464375049155508685023225156051031755638991600223256075499537935032422016248982951331592364605278522966730950883164583467384320890657003639965515282421305846214032090801597213468983147258065800847641975189270631301715212609394426362559467975618653557656717750789144163212230409144092868936357521232088836022766306943857421018215661483574342626467415415162394637592194308851019373812271734682519225938512264236659750587064003504513547343750919265495283399914772451358810910319420578333295688228149673285887267032216697189267112798019063051996616801638292520913407221123080879657882516132600515221591858527080024928617475132475282599685103796029004969659650562944581404172611999605508332910154908139764548178968188745476924589436108686410330937428347969769050773161231347446964943783995385552089260848048975174866532111463113393233885259920691799143449340516753059426913329296527030848777369507006012399039452994990204685523937782294599484897877152927563720423013814599565718713272029729828076003199768542176010564956613754294071556869171578877191655589757405999116874088525230177280350990986803007632670664962632167351664835533740488054151437611237878124504947249519656446345744424734925833987149384327294258079773061929311957614074265025695274928474530114655377665443328934540563904299100969350426424130814288191668520697797322856357203619593634365255463974148127208975024566361893297363936528178193714879512278251648776152780286948457472802146740535236125635651116999789835557785656766072748604787749672655956591306597905469646809451689013125923091004326083198443232218216397691773573288803017568463861343941553330880237567947223621655133032593430032921835103025620836794635312155162947767943440981268253980871183414355915855216967977832491773183153157086374231048291228098416087643092795453639811810607542527107280674282185258548622114224254511380615235309681748752005283312734738621071673398508534180204404482139373296079587250022814153381312382291455911236275704639521925763571401765881799667089324633568777056920693616472389058416396359303489516365326109544215161327817467209130045902218306011643653060337008701995671493686410779966437031829154351064686484106511544986764426486693539865866881102961160854225367408773810882795722044219091442045641204160090871071235176777778381365614118791302065576477561070523315446582190787908470517623474695866209300890072927354165979826903710054466243442863913548885952733048648871105109105656479291469905841107745214194864831436501844414161053205067505381392982498479704349387494192588866586622381644520211684755939020242119113221995227568586959192562751185912196106777740809451963926064372673429461948564524902969431153596100240277517943819929830788435030080114841010839756688173272060122444683220612677843627549473234908444386749456837637867131927943033986460524342780278773966642483240016302106807491849287096567131844647904140171660833267417790499848019891901936191255416407488740201980813195942135887028759495966619287024670343770492475552531554756418958814977368631912080474734129408051207619197909317233243523718928491691845883278720489132552953986387329684959329101977623779913853853935923477756425733762032844880064269076883175649799524338040299724389587253698308361808952362786525143173188960998009787978148171264607223672264708207003275881858165913035505355245832029280026712727073877369525611103598598293048883622870282843736181189998218708333377589862079131213324925146325331963329208047949506811909360860031491862841126991856096237147879929162816636641502807552247703009728003423899704301810501242353604353297708793103436507680161397569308787444890284534682108203420764011622888943019115873330495701909074011434507530805279309087082365379063183872488804805864488424169736319628386471591150498567683250963268642131072468579880365881564861421707260287289839402275326333456959991639421301967195222977063257134101107960346045900426927786014543334619271118022351992567812302496314209102265444370836073729960455055602774629594333619670561389454960953866541234629605219832487213485426014910285686750036412113002357985808979749883213048822147982221841832903468012570072093542817913689884373125464426026378218653384668851134463557533178368278825526533343800515462952194082864056928967239413322247865387203720115575767102187883096977001087309287904302436054740183437611417489237535498111805225773422394428687917998103118769756281601907931722141841101703242098394859775742232527511615912878432189078110002843580733774526685254537146943535226038278680691606237021774486770718036493202918513486811024304916852006122335712206409823994441430550302311096704530230320212513201499659554584358123987522778059849663035560762776912367479305247993125302538422105290380438880740651675779727187690844854178764403815981593589052214543339189310395545428080511605629991950905353625991838296099126801221955776290612163413026159023086747709654912875507724654670523755190418843363034424245821517014358605851212112578346811038623491432129879578801241722774419189779304546911139894562785976443974687960221941572216777499027784167395306610876824557102622111633160509674046825588207390440291868685431478771905991852322397972415864063371812787370441005857160702535801969380953457269827950431207813513068694981143730791781102527604325650659754165844638917060779784491727520064119780512918711476837185747283713666589512963095215582946668609573348046566519437845702796430869971567904054985852514818150944440637493276872433210324099086358796304502733457882706821154165864588898061517690842016316891628218444880583810833654529541865324135438340284171512229884357995155022373297187957620090004024125098778241581499738892826065654055934499323864053450410191422933897025493060045533181524603200799321925061912186347412998365907102661883347421843802261713286754526140323798677773791477306871896560057406734970327334652967328696754784336342572769611705812416407375336247596075519925129016119998198010819536332112590710041217288649274208630971131329390091487850875841266404481967686106122573749725521301644924642093948316644914593112223419037730316751323136172696034859177430286442067655613487918302380080149681709072580389803782546290755053035536848407826129011631580057528743071538912271980585271051773495773673349919316898662079646204074533590698484306298631827367785069186277223621762349216464638271118015058082381165785272604309865864018409212242498297047382081562179522503685496793076502541409663179342544808340989912486457501725725146945835768365137374807447683989896216043121931812402473810764894508099461297635261766475816749912955375281427990035575667723088685957124409216538851465372753905262829590902839126836889330072605325878579767559788612412682978772235878777548834983845502693429936456763568852216874045586264148700277470345635767944668805818031495914647665731709608698465805144126171839901424244340171006699258307696481463438152918057271673248367252046771368432574524823605948880955123911409633572759066946069338117784729897875155659869242249097625736736114363364854558720126357078563413417643797459844026299388956464361029012529459391200457955522953322618004956742700185823920056855724724137867183605408943492374160110680044565937692198607978419864750542801587316115326879284647251431828371838175176891856312558303254374929129934748280383672977425162525304846053839503386293052778213957623374526795283312587968375910433307600214724277181649231974725289895597270242658847346095031741735545063721767885101719157533524608497496667962214742254633807939124532435773088700331019144753858531941829782131860052604445603049505082791490342543687107260479438324296129024925108299827620825124833279648387366646623043189233093550371711049299849378930316454498849176188406958340213183094989043688036190657388744911979016329712858380419696396947660513834185296156604604372728522818491589315632484034135297205470211174463862667604958612279413366205324366143740658468968008478663114720370984491518250953951683910755047074778237936308137493122763476818399376144739107939622432332136723461157520912525633625129223638305641376521171480064606182576773400653319079680241724372411691143372664126128253845006789576107558077085150804470782365935581202937006183897670662349458787048019280200551473200803528214220141762022201163028968125851320681271157242228349240744833026559977141800682049723191210984497008047999806366429271527112274742172744500252743788406229646616669472928370093435343732810959666357751396714609955904462272532846635827888733526174086301697769451429072612749533727741616095970850106045574895315869756882337015641557600756625513880978356575257418136316273281071517300020792765636384342837280666649327919378366347072237935538622290372992738496003165613312079164453072271666881554897212028640318493676894921891120113509245406595784831566276600671003414271635445638792527997243695473228660257421576952573541803824373266280954437627033824746256624596274712473805849175373754107037977188316480348687275181576203443672047722040839529636002591094983448724283293569931119784927838680979135556443873579446747755969151288942731716707478785943214872303925511114879882896384511159383676407233881345681099840542997388558333455051036122662904918663291083637179656458374602675334696773266247193432025404181765447878756702180184243640355044582605638117930355064382624018222037070054916401549404309459544961779041081179997513931582366699701379942083372568109640183118745423116614574872827035436762256891256879477542464951673188465745642533365499742877535783214083430750305223238471024334556394399589807237182528355908621470057518947604124518579963718972280316162087927430538838642505448152256695064036659850695792893812366971135386608066178830317705355931477962733157403758806905506173460682104793000576435891533283734496480486228375114727852972986844086189367795574944785702285992199571478486204156700649083346272659556031848397088668280365738493169967568043760024801174346659398439303073636668079184145000421539375739833423985505104539589892829455859738457278106183187993741559031847785876992673857144832582468763656895337594373284511029377658236691325691967719277472106448406770978992195263935212067530450630592770408782681952709246039535774208871997010831474034937011431923755288865067779154429694888610788628970626418759976669772822639658528520833951959899488784282725241056893918661934837868662544781978649829627707282163086407001150272996439919643465200839612204285628149237852909460795638163616950936388520755904654116240649759641558328311556195171872522251801976510497428169068706575799627770053697094470164267193890203452879683919264221476765845499245758712066425166782065280198594890230311421764665654541336831211290551011627690652103474231483638076143915183928546497523267637108202765036800916949578734264494158374066629099469791327065604714059525048569017454879154313942821464413360021149346575349439099223625093256504792293484000327631002175939257165700493776496738424837904854162566563668749278810900500934594806833560272838316763846754221561497553770522947446446476203020718169865322117449529479908100745672730346566817037341993710085542953412388833122278041907338457836200042127953486426727916432124531114682139142243977070938146673560224371699601220351255354779875504480020336388302601120126824870599106648899486521550460645842252766357828950308375603519131897052865831587903005864805331657157175638776518608199054350630558953184424626232804945475668492683116251494869798763440636002832949036183826038808667861580973736867738759890603144931409581425414832537684102098386664732805004391257335970146341862430242095082649959121224466654888811405024669114336289880099072054958503199239210121285725174463568088204214389957954925211881431924719937660275741811684319805327679376425523991961362930679175920723582120277479885262402837184703311316158652413857746777057552631186202836946111076011375709665588828278292897854500345708161783982704727534394924012534242966835214341237409626924087266738713378062588503879342848405137308464188048715826020027816357859001590344344370066231496576833603228110831284093945620797633630918656523569634357261070078918776219168291374917545243481119035587835779175312277287521460017758723817033229533556447555821508814556507325379673708948442495157902152761268434777485840051531763798613107232917779735158870633169156800876468443691434216217674708299265648766566622042764962191656712702168134069060417900074012203097987796484598595728924586737658527021025310132527599776514339703129620607402464153843715451352709094870950867739347456029418529106266868564169221608104966733777179915261835957173355705706082125545082111450483668256518840872699429657901226470444756246706787607976560948878949343865149994337896208054101188382625996751144584074405324148311378098278402821070666649361986251663370550826713462895920019084339026586856329320213246417381034115093955668696028366172180969748621923498012305561834259918193352430086585957236376082628226602790740068463099119811769243968748802018851340342983092280489694600953636774347792431543270256209245204751942399767130938077233839011204948995494882343012129876673240630774897573422161627858903247721260216353622372193677589696296474684712491080523909773151529177382276407103577823397223339976649415555355994431269552879862643483924662264438719787063328466630765612194400007236961291627900054066024077811677487753405542745009672474600441149176713787623980206002574511136683782919821753433678274493043853496920276242863285513025178414937097728108894599785007239345702497808027188799812127535774458126265341069964877280463055003036679456000907855458992662499877380641802183146100724794986117959039748043257939381830524506116974843501870620134035296316638025259378179086457766141992603263418807229911423169146333920006728455830597692404373382918823802465837468224405732267620419623715051485478381720982195601388315340283705867649142025337100809159812248099448363535044243701768474077940117962492540210949001371544575050533779613288572844740154182895577694596870409030131601931496218266867036469424607058836175074780113780322736886485243123365000110988711424677933932223882510487212179540637345059344718179619270519665680845591341101538041603160600353013743466234196664747281799396987349070520526769160985802258373361306836226332050935408552147585522115772888168149171303905081996792270054408922057150344469894921730545082150489714417999225448400632861754093880476499889042743479127642801754875318737120021549128734324228069392318883096154395792010918288532470101500010343633729948569639579864014705239785528024686165478419377413698045856374842900794967243762002498992187269284979953250529480978400144665386688825839412894870722019671889776729911378195749147277313410213686470404436911607236009475881288608329660263481968354892110060934505137669363466259934507636876468658413403143987037096563910473290153217325285802055419190792793938164782767004222861967913562124556584822570882068292187954765462417029482896315748902979066408938721248525885144597298536129470887692873386713766459381611034565676099387006699308983769373343463236067200185565812391885421325614193665692895561200157000851101608666784590994083893597758424988879546317705534459435990255878290440418997395871834598897475282186222138580570686881427096091184576047957507011362447215889424891818601851864605783330754005165384116343778800683498205221868534442518033903263405500764319124911490708247611728288868925635940122650549086471488169165104436144906201313713611131783825890510018940083501317188290132061729589472526403113168772623864431763967463594712276824812421298591026106134692592135098371027177625146281694618673923941583729280640192980482225166865133637254614837969221969182113313281702640745831620221679730660498127292680794895374796697162814969671639999295610220867252381223231205588852168715721858646606677524464521148775928191489693398594861159130216850551337184829457893790509438650835902036627362521209891233076240747772562168090490132002232146020438039784270309421841951784194564586654856791175879019644347351218774733524765395254686755335657830954834567021606115726188696333584821213960000316581903854447792079869135399731815473947841965471651349048936362526221445350619417399045775736377642677556606056666213731601316657580241512025088655261239404281149346353025318077055139001891974258419842991348843062665834291464039499318010549343939808310729871319037432322829387753641547213623046665229727013156524337172784522000763544933980990210996289892901978615675612473389033727318337870941358602756922975549939301249341676136629232349119384661752810758089675683491661570424288556609660220089017205136005219492947515041951688450443386861734016487397398829404439769257896374657155419914478789789942634635607153675958660966312970257970273647892008814174615877223038914056436979344637652359239753292508897967912615711871031257727314816223429726144212845623544652547185738955960951222421621537676911583261870624792393798712128270658959357641003967647775757157784366156823613974454481222337456999738170982251087057694320492140020264341701555665796550754222438103379762830057388278502137639331468643941588597194558070898999632920122345350559259253930919741195749773128890794899872564681961764073398797563036240322838616345544036980708621127771153213754833179896980861244684536379423404905223128000000756611646241619525446722433597611316189280649179509918936097033192135667460548961239713028741771653147444888257813516917266852774554476876564251935699915336411656851116742008605594544563784496977893291607933673880165362305897366952208361685796212558772824825154588687976462763336178751657028779449229286676625198107218183168013921907372858069781701567334830757731446254502094074092343609271534760832633051288451061810445117990325952667525585960159753178411650365141886348257599049089605811306086256058183919637274029457720393754107369709707427109940814065124280048489365775285217747981605366485506887634959556159202512853025926345996869078176742636564634446743930408559778803098987594721974180097129636903067248988348811025428534248777686451204016789988640741388366607287948372232289317920714820276363522176515189979642796470882646820775770906093222536819072549814357585747475904240009671425792301387828198112560346744445504498630588912699323209209082130214014311861483508617727939661868935960991303397944558102996698524633447069523028790626410793347236629192345648327871781152706070918796616348398277323600876384844774544420957671656998651405215244605105042540323201573711813064427302002549200639297076274719501033188986819684224464360555938937532184953611726110662355418106909288113857167029263540916389350548396667214988320506181132890306503121228790979532883534427096508716435216206982053173683454240925251467917442817924951623193212626422931544637357013401358365270078575343340012653157739479777480234942465732052412108003829847983343737666197941479100293928084638401977510714329292682821153510125688881949763109747154022680239066972013895874240113656744755589051563085272700082218967403209799096035178213850063207623159216651330862077510383802371866324492627409760976281992008949654716279681267706908850393365117957881801553007935797743738466387021827990750350726909161851365587198762054091056878043331202533560611633612498504716818256832013645650897371354742731794055475616267213126433891648671998370799338643306178813992170178574555820386395483853911467939844218316804195521460380150980862566728825303089625023742146745399117290919324995106752668079827168066772186056532409979480240231110350286926802989815600840071053990632965188266815387927401032037170360660383770833950112481554713030415936524143856230877785198434973350701023989242530689073618206798362333354432683831854017677868576292352162948107130776583074623398468806748763941725300786910710639954899317528989645771972847963786646045097207468512910528198861893942431928460450045713619003728305833059986616677088061961896591202302101759703910812114682096048594675480228908310506810120674559195176585498557731813451576539979688670346300814731113426940846528006937083765841613534166005180771165651180266969453314356989709521392872344262857335585425305690457082387011785854707712082009646517034422510439113350739194980047266598588864673172760035553869516374049960769569299079569463514765108806782641865548474470527399234545598718001782156513998276326850962679905151467702289499603556687001987896898359060044307984439255683147549730638949544046454955884787270841785189589189522048148001782174254426614633193436995685441216125822088549106201126563381375030248767593280048745063808476452974055963853493854491265349651303380988647653886817028505814638246517319163438109948867826243852869405525962715758902110569448981038952412762735468901062262393424038342951677162864020780998784237048174058792270796205926287240443722019705951337676554762556556241306330200322867940115637420412357710324037971638550164267906962495563740357464034643881111563793859596775953980780677037668419071485964836490457579886552866340283078713894808915880033011155883465816214002624839087534417668818230611392520470888657677329955689473679763151401084606868747636413442343489290715573994153059907753238940704334781580591727409880497205698994621498790002650215995136787941723963245660215239662710067778173934846952184204626731571436969154352490653611735572525651519361781423191989934798577533056855304245650326279669939308056474266258989869152771074277519975327296458617059771343548010469428228060382845847100135568698991603727394490011612092324796680014646929375114861417367044907176744861443382734531471180846854810436359593093155492928704361597235740278263662821066628715701525247488683253064383634886882331062080064844988223351437362438795732970038345161559984214361514433618521206247156743575564530775251382821795177187234464612575210756604112441390708376613606068285859128533937529377063521978547976099603916601138298209648687591181750993343928286822449135054582244318559874979961233466100409261719865663109737561587222210993069700286856134018989581902232532410260885913574946098624488942334675688548061845627631637946430026334330439324020432525009047732738689811475273309941400892805189357393397250845474590986455736089024386827173889387232850900882694049055522022366694530253685831091405586055695727892117603442822739418179642372880495690985134189684361801091776756131411998318461166216339318860630540153097744054447699699275191005443868261823671976444004371544797669695790620017240551566866908191924940814701154842890311357034942642660607121630526869678247471413320485308502279246096340939744142795547735587019072464256209941520469571557371111009525104778539166987560387447670677220360670148766498473940680712878536170614277494742303220984781647233005924373453388248422376071343848129656624160655341446132048479445207004371905415031682971669376704043373317015994897647046958660927256761043440054572688122101741716508378099980260593189013870603268491504950582005534154187195202418261577911057005111139219466336319399674299723677646100564887656500139614023643479950258340036486449284144931583979303162623472121178412508557558236290450112391591258680321198292616264611394906920280794917374162923002308316277255787126837345558700539495455989500343493495994275347467940917484600163032803788802606625685981150229785343062650308672396436739527109741334241248883846993416895096836583404469819446326009344843209891449013146501705113100340643627642295582644827085566511429138057270048084794480625093233979063448372533859678325254657207692441842617981768479831915730309997739474526929228489132084521557699950306142177104822928243647880656917273132347813366542865371525823039829694183698357660771989427803677441357428793949898743134711463416531784720047088926378645453630145914054863364967707078524612942810654952586231350527679232263916318938590705447837840827762689637172845154070219002967423447190074849035084121412011935511023629322691494055221590103044577118289338930773261650646534724044445775560639306945936447242511953761831324878186494803329575216876613284090421168675647119171100418291241354821621532900942527290722620493050281337196556759496046503369917265776259987427766560303926301926811671540903184509130488658688688273207314476928224674306151133935077029134529904400517125616409948844760009073818452549678829471139863955313328382568518392091065293717257912030674910347910654129097631893752733718629658604688439998295550852747880487826145440690117248068796023098779134032270882043073624038541515012153815054815948533073522722482998862706590065596371994555130006787095779864656427665928774582780898774258465921558740576739996159850422733601809745656250380160902286963253809320308584529597752365345532224606056215405112196216954617982045295851734646643669843261681905543701191981065744505001478218537415583489366704960242730705414155742834795532582031232148205316575426164438100373437005447360959490999522580529093873812821779823504617117879777846625064626431013686737707597238116012234826913323759708910055546574957770388696941560696961865952665110936139066326244377331583460797329453349742805323928439371271918964853999254048110236225861178121613518963011925564780920011904446143877037550703617048937705212877200478242044820066059489862024035427229999895110217671255566040808579847430783766120775151261727677256385188770833781471672099399465921672054085828558533840770863681522390604944169638656597630996070651678660159430080337942250141212990538413010590048916220188944048963751773549344736649573538299729349096534027629397529682081597082233718744459801560853357723604965383270765867618377040210638577440665788781731087932009392955954001395877191326123787218648586502800927498858543457518661928894055925525335747890232399086206535364011615363004377650205266288017659189903996480745085049776016185027879092297182150399756427323999453206444297482910156453823624203325101026229028095043078595973256912190655354922972432081475140968585565084184125818698846389039113405466947288304804155160024346243521280660985674569194701385082185484730121070872800210768299302319438553444439445847035305274062629184714975645221864285063809078141879726397802205725121520771086576931480341885409611318055735035675513624443742753271125557396578837916649975593531100838708691871936775630815202223153855745186264503077910652464990659676354364807327155050419438027051516776700174716282927105319890861104840488479563702640731265934832192831818449884633262525193541736247583095064970111280709757701124048034208279338940813026591937752934457155351776797091395389053271135620938193016038771572722783748867685468272915303048428615119800569446914431848662834159330474038891471622425861824878786521165522417643691717505651206884344488373119971946374998496644057666149627262530034382903452060148185857336836863251463746345156366476959463968312569188690417108036472493778576916418327945302068422381330422818877222542208280045751809278624110516825237414938682110884928659857476761384387279593506397733364096196575586395257875779254595292043284702849506064841666859667997936531472203181884861199392920659340417615812790366004218210907529206084779474406668970975315993356977049829018614433332844430667947617061786250607547419743979041086924310250778177539546371884950023089809843960162306316001413336771142641512685785433766311427736154893694793530483371864486353346216548452899551563836381681817649454798489699050244706383985693078810493833146445634244222922305358783313797148722277139677126895725685074501157778978354365911692872679634641244113113097789520438668412812730472898562174496491970186811797229206348638011811479605180472614308372531593534181608233696265460905255972396072852374675285679651695045041092582992297579689960084517488393330494725538479917225140820934647778462311621602462077004286745292827398070896251449594032109908772515538047249670892757425194075434188063911542458731208671122572288847597974528029912999084669814795732614276300429089690190619720282505310569769644995494834982981306194598803615780177057435938250586120098209463371194957398277008668608777810022585465115149120337654206184798838553031905236104511648021699668791715096298529293969740413721353803570335797298977788298882576265984226353864990443331488456381579432619384688363341620385392148627540432518094053381365442618242068605741476641693561628845719942919065408539774818396834620106782710944317170593018824468761047291042388056572234750538236917991668706648070273467294303601152404658778717025053367802153434759175026183203939233381285113856318645770360666805340161175177258920296111182225979654584256619666554144242352972008117326610216694738318363442827599257379172474635203869613410141686194129651416179392676744647089142997631302063811293031191355137884289423701146897015661624793741927835986860750314184604011507110394917358737230965974632752473432472460594291930025978126115200239454045041263169920025989602100845529281580734652722217511922725042117439208691522548404374433986580643213809295882100112225642038822634460721902477201361648276134891433028661166640901386779945135685139375923498888723621793889724144877696979817616148247506766601169480298801148596738545420760286630768075239887373853366299845702517917095813466700894741656021573040615812095131236962941608512522366310109923407309250292617296417157168598347245808203223238296990743307285492658380549060934113199407144447251434874897974516493045279904738320957960282193211334905046483973233662309802450784413305262543988451415998642692384053475143920239267536746723392288401223382219569846478257487060224016855884747741749749580248403937628004066859990661668179928298708103396793787483034838353374910842883329114381507489315591439530560993136407165079179190093585766237071983029290879742435617742334789095150096713957772851543137558771986937812392004202537992026192489113668062420905299058034413482561379085757900451224263083026444973307648531532048224014431473111097459082945136895148370842371429089282846265712463587095107025745449578468487642529499114167534692435731424463333122585136705708330216085001186634135077420863022016830340759893631471397084328466697888933769685494607578144219778922682323931719864097698821934659171870468990950441305453833089197699675114369413331848470286323720469833642960049778418747183240912909876219956023394690300530378917917139653939691895468423403100350781326616833976182421927344436769557611385258603114018924002595179632206089730031135386613548755470049814278771884905847642694582184458291688168196316925290859354537316770964302994770414686382585268685548820362906025140269437236599646138162877955610634930798684410717645893663914364762406746205524875834990191398033381613581257853062996402250567447846198390467655216101989437770040001630552949918238852453571932824457689754212968569208900486081627200305808414114968012690574738491965967932469865506507912194537641848523656034172277801058789785746687049086049313655344983478316069807225780030601113185717075336363654452607148837288117235919423967478150955856435086739660368445571475193533556300235421946018206226191012937859421321334319887811711149499573718272957672197354490944905319938687063871461536877981344141551528758159126124086230515650745203117491967820776192707432585433037524193929214105300060993386536502054201601822173280618021666666418314418647767040385308591419365150527407139809978433535359143764180891517215867996870908437795695089160948727658707189795160838887214040930642303677531993386380132669137704161315243350390033414936791731212557703935225102600957755098553066453825058138817661880207422746787720484172538274876482641463765686872210364714915100077220157005499806554217811258201936277373949926051844146434031626742060914260355738844582220596449171664835356867835972608475458731019362546653386689507313893464344747490245091952650133616632914562686006802861235062214143658574546048385561493006211238159023796052705995803465463208223030541832640252118378734526271818265788151447224589191585863538575340838189882485240215785695252366407734074432360887127272023603511966229424982834037578859954498877882949225784027942565025716808246751588337235871695467622075879936846651454896396843882349234867154224715211570102561454534452247678624376681692556708865484893874265264658625854528774276973223605411425087329315149873971985721984566912413883324494241900639751125062561105876453900139455033292455805041601251038207944213153428908990286323293924112372996595533838471581154460061135963376414688078110441548284579516771480151785002629979000205739512308884590387595923353630906158936742602432277868498234659841673574880658229970983339006266879128624979456736206562234204931922310073571419618449505886613793934133288171270477939874112650294647606914787994022951240200333994940868595694611873238745196469423807650923786289583606528629040181927845179808850772248844696905330799484383775651202643692769496853704390769656970093541753809365232692762998337639513103665346173486687979332651378906973911499760132911372683506345925503830525973232334087274324279715760172543643703297762778316079433523120687381829960356860973792259568088041145642798170849571868041234860482766086548149385492936369293529701171759144556320973353675146544442474438307763088668168616914698068544371697176327518476053285883513499473255431775969753431903828040461237734983964005953688475825324817692189967073652935102286058218805231748293217690546235492281582965635709724208755585481866572281133158197547211293312365262502132700123155584573555703627216760341696476060932228495500194796475178545943832824945894070622156939645148354500987083983031144450550293505852728514514369803426662141797002595116291851163182195479444854276385389682529780083884091013055917991567315131690892417665274566894336499288750382261215877425624690726346036448739195236946425713647279518340908564243932442111507076234276367622068333054969018793079656285043941507119838117338119396082567691530551560293603068452276843911968909273351971313355714850022668579087480581989104656125355875032179470518187211104783391033854008268623742835447561236618791248535911026918331140170397375717226659237693725420534151529360344718209624756548459162851729028391783180061402994579165767712243076145823498375391566230372401149756669972790456681962935705097274017820744541963993442505365875231764689226707196492341744443700297462647145019570099349253960957581410349262042615311824828762509523505627773820258640862490601377924426487519816144768853198070782092252074624763811373383937413914158409698302445652587477397583865810683632439729228994346487243548716224108401006247828046514096647645352259793084583982248911916253836204879476935731040712824255782050414541096945930667500090188867485102261252059186275725886082676117652985765571988663586266953520037279358521844838921189615050697832664549487457102146568740600039331454458028474995389909429546417715122531412206671316723772923863906892390858535142084795391405582640038953002711791221567995929122336670412366354372060878786241029024822813205788683996692652331137114091238166289037788526950205222541884994550807421700364309790573316994126232755531147666728038545898085771411784391359083860237300697053737920676794511691567109119495732048344569742572965112525647247089461023817480986626050421606145373098397013646692317288965143557478427183745043141563316398043075282936956385232862494051800647010577257918415582720680919338378285181124511418782446954552735669732432337716872215001312717692075317894381908410503029764797273189521143882219726452441591517654494301392875335707015882424041190042583143609519962707449813862900421491768205381266719862109034882882438221235928265173464483573336520975360341327739434727488914398167051941521491334552821186989703005616752167819382337093547516748330510971380585795417351346007985758235620778048412050588817488318894149121558174350767450797626562408880592821895956574204098801814215617606813404389986638048734116864302991070687436183056649335948536308847767151848464759284852932972219969205014440290802265413338568974272017968947982830442350486579586363410116051957417638536695422127685373784105618158382469730082898830298496749331800174981542417788693050846337588355603909829269485810671406301504661455535887931902348721053786485435954348777832407230005910031368534122450701435199014031677345448419233399213910905519132529008207526175709171735058571184870832632749300579398007053297445955898009791135972546521796949913432279060699312527969590685045675282356711807149276907866842093765702908396247385714462015331692607324979957988750657560547563332162494720467350979071659531285223069866204192577147683448533793640117675923730641982627952199310352701141684646739741654151293525715053134164063787862145620268365858356153838085119540315481844892369788893490826613977147181685950980172390475844483227880293132260386764987452022666000730636669711048466183026823332969770388136853773086919741758233579191571419521958295733434014875795778836159266639500896459925570705206507640028624132773702194853168640609258711236295334963861526802294466284348223074000263288043800550655794409953976496437770687962838165777954227974433870752982301065367982173992002169863524022797406543114385880924408695532264492077525748593187714889624675032600499114996710801846637529794681965563166040119502944044472417440628248505982609936733987699591120816018235191462490649730779354458304956807581456430800232503230432002075471053869066622904959065665422718344649264794726200188346666181994546862584190092146906182262597295605217572260372341033793250965287661173434448296654906104894538441163871328668273492195108745675516177974173736939733679447944510867014226486152718985476865084206238439661745772016595516226209862107055763450557532808578814875480017198026825192083430520698370649059218484407199315439893138090976579951974498629864405043697665405665166639450426374233085323034439212657235524720405565780463705242912190846477904606438717173393832282669168610770243098340356835633711327900428478247979427330998433908937295850325499973826753660835249951485037398808141845534343985860626066250192819898024994433826590886005013794353208230166416544458272274556396648036294680414431283052789935720090393609554249291782613962968435236024807223236826634127060145211143592709499757227911967229008987411848915019676518042376280644383200839620472753086348480053269613466056940983152865815091452469169562499489438948366073431030406798429722645457304171252165565540356289725926350699318632213605147241153890541018311576814640261994026566498578513778470585529645575051111328004291782830462890908976406436809616835475946577980750140374277015364698848873790770621241844480722031995892673079760867799869839763029762654745431944715911505436950007963789450352637248840668525233241614654801302956809305410043243274308140067989406865575484934689012621553696914631493999361156450321422220738370525530626010730187389310440635359600700931164108610981488104978145248865352191811412536007037799804535051289380350529597988888852789213197453208375269992246762066787395501332149099831914497628652221430204295523771599866411081570176807191005354093993485165107085240802259553258284461236607491723220306554271251001966146915134834668666161911121869396613572593321124362424226649139251259167741913720618876354536639367989584579368037096977399185563780636712857667285840940455656690338669131942790038532010219009485245291055477724525829712476362286759466010658146986925824628838421500481539170182000054154610508243001013793865243299214730418514028447656402173337151949294903500605416066434253529381110642610873535129215137005605609966250148398884705871861351293292556285808566363385344213625509796577205127693154606357725382738778978776212609948766596688451088554167868503374454881144382213086371400489204226911183815750405438028113665432960977331658240713907569056642196923653194927036609759680691393792124010104191648847935573285011798653889887172737027831443652701731093785733496822070865662544798728857864778373868992615364077570864447032671360249233615615640216709038988619164441223797686713768881053135832725284108107630823096551261667738061807959769750328069584001277776016450950879687771465196209690285413021922043170765497554286237926708565696722762437017408028074460502481916358735326191319115997610776343180205440195160903216749560716288650345980132996837235463764861716474453156430773825559839446437857956428742955712000676537530213360222058379150668781129538227237095997881336866119807396698690699603667906261340982654055585500820652634426939440868905565205136924960164929685270761707106472219510806851777113185042152197258703240887119437767332568307567352936213201561517365927733279256502085104068346351552536848231540406777650304688101957650522876005222174806396193636473498060436473370025353924550486264212584805057894440652598145462495216385786152541327750438706366042649497742188957560622795674726529954539964382232019773315314880082958825572671779912250401670758105434967846723980382210479447985876292775500076630515877222050345910566542620196450065143380746143345977283151912467174363068358124262763437388265985367572147843787270897343459397482143085213324600114883072834819468318041899737573942338773075524440197664788141635568322887426924734406077346097388326944367305771743786952751560795977683240897740876202083820827380498132310233623848094362622213542854194709332867235858701741040097849288454679871571228487162970080234404303646257823391042211323284788668140180202496628323022490491435566181639881763018761600553621235217531577048502558716092194564525692899157609736767562790175743276847934069578304196683887690154993951956627104582159127503564476376859789352634279237923346685006180813221158051183312545387812136763052484954434542038853291075620355943724898101169196932985665170102145462346060002454987068306631746941120867718117062274356118957736604427476281862505258487886804890294244983960019186138787932936634774694038329381008644637587424087339223407790159402097445204442657562062227805994007491713485806551315815178790965434958068250647957775158547403633412793144222977649766172708235003128594700604394249634781331476306674444585071570716917253085127972771156081212360004216239072188175320051129784697238861505298787095050285165134559559896988058614229377609648204270525016106603637374402443260659767188503959396192177745719640303873883819651606552659855258799124530961637336633197143002625105624365319168396557160842093644693728617638591821840162834052754028625446061759322964171500794094306777456069542432861138848805311244689558317015904283389285813536748503969026439774840676159515245420098206616514161989948272490812053941935094004693088362063454872727065216669854603991343366598067648435414938715224954096006211882722870441107561816545348487821256818155936402758098579406743692414547423680840156627441678354544108499165100248671006528009767202009638078555109378429309143280615750983740537817130594898265427528236002382475577519535705872534940930545546525285469029779913313791799254522191292058823749331891538564574634899466266933527656447742556625673252380625215354006935775508460557567208487850355223190486940378876541266474439569800293293040912762517526096241878832508675710337681181714221554404466797514234285634091971556638721969671990598027730415281859181660123577098211062021094709715899694540040976803494209565719346245299409491803330261763038667470523709636181718778548387249426231101989991144069734175679243174474881989355176175571856517134713468661244839751735764720118971009679737954915178688507959406967878170134738451527068915710051999897048426379970558171537240630252323425160515996813972455392821902393216964303043806307721390065723226234428737828851604864795387135500849894500113136734462684862893993603517579990910811631300903219567364252447310202272875220750178433529554425157855384941378246821562672544133312874529692090707624106549816383175394620530502137169467341283640397013475302594883959889375310314119965239102970969738092188874983465436353677670705760984381575504857488878874312574050286278925686646761790487117268493588876554530043213079086622120729107818328939654024051097442173606673371946698892250715051830928549628040083128993589179803980530332604465391051737773868874285328855073981569737647267606876909404436468013521489284280966032388559904263844649343863507097229577657477979188280192555280169599676064367282627614131052738107678703098739197841330434558497147841258874342677032870359336040038702695711930023631410434052246346220899955817641420657603678052772167344435307129822920573693487588270168085692758897392662784218089849397138434984871916269653898826497500124226151809459944310468533318107695790607223943371987045040131884917739473793183584117108213675803047222528295745129622605255522162165229078674839719434164166652069651582270819100722013532118534019407685588656100794051126027689887417233305899644942509656379026280303745835780402071089385696586193662153181122175689535844386833145678809732336012941996237874168180037859194098542236794061455317843723042476727889826116914221603253776708253727289432528405140930522394712657889626415873998499493475558505453088618430631259607212761854285573390960716723084267301445154376598893560489483699053019005310033727518103841910652593760971738712896229429958853365185450037998124760301707932759393648699604060660811358767321491318996515433769053781936851687724197455316795858965854721690020182261144124103194336140342310214861747425336955207587252693095948841361334828131091001742798712092388650621477413835533209140470302857880679622079655880487192191390903196890500722764561272192241830951106532006038104113448337223801522176905338813264200130757944036592370863567564150864019386209474492972229861785386996089290219098451586992146338239766647388434551785854146620663582744039529843534888405636759496196568997601932082693982537164712348702550797898965320605662526795450447019484678717302393757819168666400914004169508680043670019901142356535734280777693848744671227654184999486136785493358413657342037852650727937904583921875963732506090114712385934476144913352792475282172273564163165466800666661245841894147277703108005050102598970699066166950253411188704507581267762994087161595164513274217590167945015148837317688324582477784853696574189574965470164483560890174476171296709825841620423110009054811462847550754084340255127688021203167898131903038708697498966840346388312523887443482992506363888562654578308815145743149213937591808771168757692790417515603351573716048430106651534688933757397834356489043019538408089489427809144859116261538440083574827114907929007484275230719419253566516429978216002060749378729798036683997161909513926478520590458924287355312449770597717095766062813522466150013989571451593269373424740944144237978108658073765154175382476990884663972712010052870461333716889802540050449303565693864486805969958578895737738737330312340876803244294336266832061394356125775242498246423712977385748178479704605909885122454263644105361026554480603200334950951152306743309166419235565240567043445249454205809296837345910635839642492329666052044889255131335334953177901555868793004843376264998206762488901309782946856060373915484547490053894038496564393290817154960754881401400490721854371619276168343679640791449489221806153441119867603946380429901701872341316562432971905510736402038599953973960995212339941538440277418022954213772511101922416143555035989229975657030190760335883723936465425894707565109097150219818966823587729311807459560087710070039193078505982521257862174470582939094844068343081302779284786045928314124531754348272929728960308373277052647738922072341446220046576568195973611303366367927538149012251838125071198999659435423141206746038814276600684591577377922048031868624751804533244343065100364204533035075329098154637879503922648988028369575384876471843710271005376468712596332083220997102038707675148107177487937198259961277279679510130784489984461603406568811015521955595809181372476106182026203692884905192587347605431541670230500523629909052608246531886981246682125454067252877484473266094958845052576486029169674313785555965996140985457610488604079390042979008617626175963663565083682617302349617501696140343806852442793454109536433295411517157381543390068750663461235666143032999402052154893049217099440110334119849444401443407431486731948665940193148714368167481954236586977999534760795780729868641063180229142750334252127862318993643326468507788992708349713036577250367075918904563846094544744727559462045493190813141539132440412691916724872812081947144840130117050863029619969217850769591306200989119789555656251268899915941430646619512871612030060560505874468818333165197048019555049183914353496034431030322735136825440246939716430308259169720866441530499226917584157261485118189555069536609976240689350960269676758822948186601828197398366276065685236512723445247585196275312648964823543449096444735733818283859216650871927429861113084041540588174411463622687405589742850331184930386702107442102543919691276290271327373293805131021060758236688812569972407064419854653629086376416313884839241362308588330440344727934817087658651957387126764303796988798449142732406574073143312288179335160900751714686663668900940087285514856950834972196876654023483837435135845567044705643851788639874338908635441253257197004262245880446483115531133205453712311243386227450699785640988746985723336590944338819808838424385370482115669565395939821967840048061996111907468011059471170543368208450750000887426082288197768724521347339981690312472078359346977379068455820892966565115778291494223171505477044132960859670448774789986409364698533471086302923852016768883037043106589438105054380065470301498521456508441309678994155576953937223419486202128359137945621181891823771533223125189147134323990992605069498167056993042490352349847727765963743420578310813923434619599929879357607474997776577349518363918559251818532264516563330585626623797957606811300987575688857858742532647011034360619343163369609136406087456839031499496828710977205506626215494795159973001757806399093691578982092383631357954276162989206343131041855850563106046470623098700419127366417292784283507568770830747741470199817128759995056279158795149351025626005752113855034697129753798601670120692660769539101430056971190756743433356140462597187883080945732726374818053059027522412433629306806914543490454579172684699258467278501860163559278727234788374650815800529630224278225318565555979997265768665541900654493856609464229396865807613020723236042253826019055025659096596554371191515313743353191110132008061728074854667463970478774354949667688698176522548483210704763501724072267208063542733442750834939885663741492139929524349512302938074820920620316605100613775850095777783506102931415516083937098385044891538329551920782265223353462684522438874323124671791415522617534892423911753132612021868105517932487701821099167046324429842087645940539611352657682348913784371894723313128145835589882415773014832479118637759891885173489369533707088123436583285087286453277673857596009946207935625337626064220059121876960233756589593661690801921043253356628829797437915546784464742991571286506138920491101444905755543459343174262352906276779377741802874325447833221310404719494728851016584782942225548851148247895910498799063160230423700774442529428622979365700833483126157678807068448187486399753267951686755309720196201720082818429775232389263432254875463140246730643394952094222586553853014672261005642887282026250743585655097437020955036726779816648231567948055836043175526326896128692876707910405573505276589184477910312297340126381924407722569063596202891079694837347913071985531352996791618442726449580916605709782335708595147497683300344031564577095739825957565696206867584108953309892168161604723400049232454768466749222970996868959764337221573267086920517017207183935122976266303832151905007359536159025307707250626615479059779523805951601215758805357685736606449131654217684908860123797483582738860717440154929753085673028025176726790517335680185821531035876063859704146677692770800924252485283085539210865420990940913687441529286480890820647208351503167102445098619664649394738489435030753861858536793873157405273287384727724051871723219166573886571098715812848032721745317306840180632248684170386118838178139094888929227446021069392750883232559153817403143566695289278479968878477396537178460130442619828021340387221426838199270911016980561120644091612939217818098551931397544520633645401767675221735458252352586245488753569737801494915559934616281909559871808775535043562772978738121008773759492213114593607523411404689722533114015362559514916033502067671489620697767298130297230649297339945215385434921466242017838022346219999043793244361943399302369260608920875125041668631695289724601900371314374782367516083416529587370694017605542573210358196003512064702127152870150979046015491515610874379776785855069049746539286737747573707191612322134146398305334049954691403606514695267141375001625970082435611504229056457301714596325850800791678443290036321792413404447166189387417144459074505216488202462120957563308688385618451295165593462749372435972150140130547273886591394679466571723161098657405475539271695189768068010374270580150800084886492999468426351311968773686017363446847360283060139641612523780534689050515333198195497879589786203552306377917271549493245949136829717945064596169067133506168872093575466837500696680781934172507422019937031428944264741173724413812025193631372997967139914204770999489808551902366335413618967143477666729664272555118589034242671251245579070589886003592573461041942082791381212621071117382985359516005931513986625255625747341977239989829889555091475466441761208963997225336784064055758018984559862139322149608356906009541191924583488858736183837271105720781268260865256596950860063934024738781177520544064067408041920380533742292775236950200077319985356451315442435097947719249357212254873221584514726019988805423917600890475721432266002587871982412011705137561600927565872035554495556535811459124500805291644499072533375892846534161983105162664313184526339216715782123982762018006339038997015328621375115189140560357998120527346385073792535466697815835183015298665026863448978383124490345053968405270231535297249610148632085507454634228329803691512350260828323497166468114014565216010867585760257270319712189272190875775833327269783852803085612746492632487105051901793867255514161048500529360908286518379308860374661931310268754074990331888043711850662168121229856951691690358859476082171141404370436384026423866095851705656286375644627716675175783136342796808808905845845974916410081777292571871237198508860400669667146321213956587828806892087414326518776465589166354233239898437117567515825304335416449989688865610655334386844927948517178931910487339575126336908230876041553698253316513050081758098028390679448042966885890189083180157734582000268174831440001552814171542443999547950885124596967408299340259896489947931646378787428599081414246169299643574698979487414546449240726226800441306995925940239041593252814319047615601868740674201315824092138506468965724742192417081220720477913206667508235693514540366608386841946762882462347767037095554445219478129648147845133557460115165072514958529274932797056154943217432950239399450825690057539698861986055391077291619341311992757533842634544447151460510481055230803218461070413810067183750527987500311681165304938784760831089896714963188417927356032625836107346353478973748963033502762811511635473558018372778388188207471992750666396937858934842905662726317373139799729567247643794713180998017397877885523572215957283925866390439492102900300783282790024981430948387998674364699798733785363583925063707378833026174020425179020364766519151299888137685774032425133981308518020022482642571251440690394932773174192680835449853484646432737867986834122822756642093530045360606705838486373039185924256959356447645192647399391821049956711880560363690952896194157421319826378218439528849071920085161162974752689818415923224324102821714533993969474082627229291225857893933544268931367842219102963324800748883926749836544921232747932004769671992712032171164885196672336552908955151314945809750619020285094506338215310073860948276485577776963099966524710951427024827734176807528253792994558364791492216597212987821549991046381718459864366855117537690546174931397095267375643870689874390182663609769176401290799938213860277757764420085927862988011198600435950565738670899871486067050577659197817171515220941467005587339188628560677154408988831930996322706121614347503462794021208580174248585873523954661253280942957329165085008321723597591643471283523873416060888962703497702979160143867078733962459728379592633356701555862119271396527916748569721811093370903862033940584249885413443518050300800333530113349471307902320455306316884485271972470403355333626774631525750394410144147568583958720081108154742304849852061004331912995519038970513329344991621716861689234722787143479985562840622083527262481046045066303008762590065410617414840383179028817874304106033736096216905796003974899967531916848994154288635046607911677524188703749079949953192744899578463083875183053269753531533721603001073673732384368815003671730319486795483379010666667623836667691739596728329379819391292221953806666189354780292211722404206546087515069215537370102453738218446099830628337343267286806509703190424826503643620650978569656170801650761014277117519536781936947517908272994445085981836100618995362298103569408099730733556855826921000549958379402474388845754353566645662854727095895162940006919657667012633328631739100806869875030326021360129621453793469639443953475288623965181465238661498983208474221282248731666442000087343176651239138950106500529885639419293254145835235624783482943889066322934478706517979852831133443274841022082014248626591297430982441978648076900488107877089662162219008301374955215742774214410158189370510004836827638391426572789233459333477426511019404338626531577591648513903648245433927694658034279260160778367856755310814338514464188054315306490471371895720010458177366810111064542374865413716150785323587603235105239675157691861672998366247368712690616195852111500697557148405820193104528307121699154637152016191803024441254462996551574417032034635086825522448950099613942447878458858756498059396608527735906898127375549241032892826293469540931736952326574192603546200441792582681351280694131988687621126491839143141804642081015357954770652619833303448484182391300164929798431701556894205654783772239445333177990686339308059503457611484129520665610265057995022787359337803667859172497832231256205059127719871816336569570706295080561433559769789644090469493878363070997415428003104109023144711320502269072833566788163664343224241943831102682771844641267509641829869132354363688023456985699668294527523558302179054957429655712142979138528637770607844475507636162768796232363415255311979836546544464288984472614063030405444170023255530286003549387583345924398696753138843944439806937080185199908749494575002957442373741791350270766681726373978190657323481375669109355723847540372270836974803007813407514055499883825162280755212295730263228370934534779544510817119976348861587838693099717755897247418787962288909786645668921941746719378544504608635751062482944048895054652426492843474405453046930370101952013877537821085534771684115878840609446251176077142751524589840753780639768062414208896054185822384980568393273221426612044605324770415717641706171673649909213871462468356317406379048192669599427670773466490601205345003936808828188431559970181511956970784257292368690926898687530816380600344578310702670617669975909060877109440591196275312276931218106704025205625797707405234370202221275544107311551799252239815194587257405618447535827985731989432096947879238667381974036340488348458687190382916323288412784954884771695866288842435383860276413552868458991557908013074414505504628851922670533961131492908106696031512977391673731479544436053512165817000157778268377592307450115814163942292167206261704005763367763486419210598724680374180556106476032128875945638075303973015307123022739298321981785836750700736554933901298504125943490959414333100858521978862006979474248108452338570709213686927381535112740397770724961187409648448940589281935137291653517663334252947981621008254605611310836018899191526394673576650489483944643888115288672059694516048881259360783542292400725320322920478624992459935442227849808311750163160617153846343445600133531956064757768797271140014358521145276493493493047439727905157797296984952895314704188149959138943224744042829052214769860440414784988824894289567842575087258653342000995326554745316761363723288207393272922449199663589358283245779712399236240653731462290879946630513980904389644569276348143984635227351771241144873215604534050911665504977076429615321321717624416324695560010036266919294936134210209503470386822661246903066942250807285385112776968623916771858598118958777740955700333767179834060102535730220104999555370868443619028686586095020611747983541731981743502224909815025907091451741160231977413375098427083691010364862708440948338328816301045052873582979443894235019154933663258802784290698423069342126239831059876388234222466735760308975224382789277923263918221781196981798585241400105514818251470036068791621640811226062447516033329054889449400333659364079977748648550061701020402990094083568741145793217227844202222931674016533343894749286774232279397032073355982879541217206676074887917890034305434005861966814867770356062560216466123089243531920831785779054764425321190955435871135319304271186745858676150567522144422289915793601878362153379537675251063571199130352377343828225845969310335269915335536946836740895115465925611043696744427064830109090657631753904965227209157097336429130406528021902426768201108708609353648808901365872103753069410400964868648608118504806410090157254819954765810290024030924084546916529433461546578793244021680185503014946816814585839786690163952299374457097478810904231413635510235665508524361166308497624617244569942636879488214268759739159281782189637680900737478306783117955026333853904419185462992006301741447748440594275065686414293362471163696739582950624793675352116061946722426763362853275334213856703132406843882091786277695562130664847807017969809769337673609710921259574145790811933572058354704583534654248749684233488159295431897253761243075880086729012453757161591032378751805222807683098490457102311235510190283857264912292367263853030938313761076521393922431202474628921571503830866685382355918073385914375498617619117141444233915188194558753478965503674267795674632717526872405816455075014550195600196482426229506290971272224219450604994015893425485750023396850560644573769163675501044662589886673242392879913270724442581526989801785068347572079244761310329314198712843546051966498407377774267262027166520994046679560969729507297490812684505274402001208841419551720896881627447868761727016093188217100497298190847371442380905560693320317127335059833586337619635800267542710009826284182058136953370070859200627067011231611865886238352968920313444032224487029869862154468718774895045175064192660947713202852453257465435473906177735155709149086439843204614058873367978923660826921193393109153769694258605915653875750084884597474315537454474466968892135785178100186696416984902921244594043047523456304888496752300919648250728069969429257994914129882437451877932209594134883549146289933215993481875570976700533020419770556192479775450060634930779104974774086479397497882448721416851944561857346753149110336041811598020455049117713848913115031517076303374214835327515091471355779249482384260886117713780305870316487906557212002234261812886795049894585741718919785180102478481594790601791080445133480801682663933801279451141181597920508705203452909696196231979425176394398396384851332343953371032297527135296229317625980948504581521049472204516443046964098980644442236035996203724162673108421360219836370779940920532299409257718051255206729485448835875778320652068782354803223933663391696230419781623340931254924331711332294082818371818929412530312383676140848817238010934750780356460809496148891178449408200518292396063741839914546305199767404662316706337223072484741519956996573702468419529357177238279353569669613742777918480888114795036975523379707461515812571977522574983751780675582571082934688193234862672938080108657906215597159708448936411270917942288035729221812731274863816294765047035641675281383574052089105538449887479859438027961570015636857091082774609087440028359285200445751617713994877011542703595844552087933955315071010572564592853784705070168157095459082000843119455822308169194168554426896847665300761179102599051356277170315383767119364136841104395378581106452387150669057382720949352593631666304810350876950177035647947685400849419994589656205318737712564042455252981496985671254163694674982697332847738672252991306763625805037646662381556065844251735555575079370960347562335739657711084678390565983824726321186369186287439677521604131876147175261346864866399706622597977156671860975244560139715577848410675032325222734592846006449741080153683580177782364165426154677360380497771902626519905990434751298638475712969768826327954780489443945238072892591307650458912029005270666250140869660468063402483933614674200954139988303863346425829100229149857514692004841897932344622950809959055104308614185707170381489831270324052935855307382451099376860190852629566980627926092828828422421587310748509867896774022149135328949154733760064439536330183637347760888499670770386283813287827526891398200070475221857455452854741431207934514119540227686275731723856980325332762810239525635464068651583863470885203769107381170719193130821397241514595193942749837161476135642727469244890178550863432490694132119821136751101900767504220620451268298666115134051484961168133301793919378392407898521488810565060424241623440836480655294270822291100223571604767491572655755209856625819915183477665562576335511203590171812188096671427247749364635197102230017519600985126236514622594220562994112284813759799459785686540433076142363501810943239162082797391327421834789934235480160125595672690794848288456209579777224780103920271655088727353275384439736535393290681544275850630159249331507710778176073310723109765445614131702538124319682924472173934882779466174332359198702527801158456451862088922315157687823760037319828456892639171656696972110636736736137367492099631283352710242593373478165220803458323940076728902514552945883145465660353392200395699349957608599793222989379056298114960162419794181518138509087417605643206635215391207234155094872642664932005040000325242676975154904944533779150249568246659069480743728315413094766550609242864058340949832393371131797834690444313036034055970726088892565432834042249577996987273426868829645128881705343888665839431050436770922766856906253541083710868933668851623262333644591596099753996753813724174697986712472034364082858440707270157123359127242113573625290000011438288033659218374096342040955680846523343915908608589250644231656791199222078531957765191615397570441184097159044823985090903749759997724235730299576561470880176269077577988999440116098643575629306734530778098816686605966283303545989183619105901286824476274359386950034445290086784617543389270476587245489423983633861597667067731053252349845435887201569541574394686901449285152749420861034639690579366976699721877867125362749167649532959685374907995657316357306441212288752688691596744446681651928080835661794975713531018816031558615099250353342580206970720465230510297510689375699753073878791862953004732335383998768357117853111930002654140698598766958155596513085975015654775729125659239153746005864969813564177668399960439455851779616824096994832303764069051634357652932843956598917630104782393883250681660728859518545670261994411962944950831829796672899371022879164642230066616576113714792941743249501114771852779534645503450464373587112736018565194039093769540520373850036839343258690427529710484465612204282901950225902812957603939489289792435563053466610818046376758646212870523438306206828176608829407390663733965838559599914813621423969914002594312241840081943029273880210328671227304028327411437720225483148134202729160349821629130469001899102097445725115588124640950404159745202418859882678989448557607114937581910299073486987653617112755897428993100458725913963852915406336283033618701660500539086330911099868166979132890490717448487494238945598885215742637470805491768032611222389513523827467126314688929991217632749739166083054495665701718421592129255277976332032502666359658242543263323086166591001730227511868364717041718325702524996381768288429575959164715092106640289173597149604247179206795122808356772170993904978518115409730037065592267133522631118063851458574114091300349963960542930239869388789351159608521216398450240218065930703384644738995386279387662805702637210072833793384352036407346202225351019111242140039865768505324218350271819519593648424880723267849279942268054443870409541226211414464024169347143230606765536131074433588225544546673148970488488227282552286711565989765409225513577198514752434532880044812661772924623351825946432331833046734901039694741252555136191548545244848697657119776208337881108126298210531432159382880224394879433287488855642524059126958387632005228663998287417554962306353547865426888026610433780564091670160129426227436506755772320576211908629524133510982752003481668815624641373024577987735097670165635189241586884651361260443835945910331486394116011871414445379646826616743665814857875503406187473568342338602317064774267905273791706057734454628999672401585581045939275481629572865321612521785962577033539969305756140181753998651248174422810982390903239167359184748776835899150166757453558841804940361794079274596827714451516098175624293322311037696112372138936595173011767568033582580701348933748463608020942858367791720353942779889525453128307159279121330146402347148116107465864437834004557631179554754733598152519015298075118438547584404788913247344661204210193203536826118872584147780249925660638898967050408358396894860958446831717785499168649028141219871436580049691778456307838588003653769365204117436283910299305676141322841124231214047925137547879667685568445724346068067379272124785135945305173156407240378201792694011733703755867448307094674937036425636794838492205384235213400238779023460782063560310412357930735912034083757624875857576566028530970149842026735764064197385354373321118698616438526196492662715925594349635713756799816728891006888177437645139196785023694321438893869000151309502954256523120590168852478758850435718985164121162391769399547378891397818942181930278280897253026357438433041099933970659326946212962234956702222826010774056903352662333974476094102967624265069479389966518171201033695947036312309636931670912391784377998666129977993602235520321498859174739636097390024416655234693565164276471235194197838376335447797014722893109864007208385951782054297897811562669387275771693967240690426125268433844253226747853276778641786981282106084628668709197194476840045719958815954525534210630894534261928397777233257218509608183582444748104078149479158180806157444915574371588244654721024356367568504601811708640584576111943936017408039336454328194998354363728129351403742306088643075448789712352165560380765748951116156536442635279855066777775116396959846910865561004772122767106241226910290754579101261144502695414987904124901552766102800612113966363131915537807635789869318377867503395544140848487675459911559904009748568732013433008794307291694324603784661449800387396225820248801536819307591810413561702202191095481940964308121865825058915314515281947514158411103950322912514821479143778571240779910748011726128974046120131314295833027231921760593473490844281954201795214797277337718136351225953248839424631044947872368003289948291559113709418249674262717573534092584922667147680517625937175555952220732181482521850803299219831952009386876959370178739055950090048281291719459432499814109707937642680750872486379734811472094161139211479254727708484733633784265194682991795005430838857430319928595284470195261191114541749534260825976793558834688290280787849842159821147900736275248836760649676760482270094038933879194797096825764226917950140548914421646217514967479016090428846686686748469413743077038019445155035516771927417459523370458139785376115972559235486390056433915461727377676686100817420180030628469839904801686626355934507411775721168474547387487106343752413419764068799216034086134477604083587860537115188959176851029739475793102091774712967679882698631413782365899790852914266088669675358853794314432718155737283901421184867236550440156623141203051244505191145489736216256783209747935312811427142914799708560016650892837923153933788722621219458397962612662997102723955905265788394219216200531322403554510390779890081097765673872157449358823272521843051533212247754287866628225297794749017605586735984807172045972547497133251910538349855971127160806257062403108183587206736042901788465466494396430544632463341178659131222251751169911980241260526964745390549072839002764817868112694325988054246419946780375355964204288150265724278715946358581948700760702803093099469455279946563430088441662727193564560868492277799327559213853399426209629256475110066394818264925315708025014950954609286924515744620490580998680496419089629129611231349914605749900639092042083201550305328021579461991934948252685763490850845429678013877479522918515310633113421890639508343752295965361658541288752444604178966987457025743381817298979252379743986296387098204437902545313042650562346664440318576264366162604334882027112852963746732809676476546003589076872472280118964525349121674036166144768780295632140246772410067213548967336886028029390434107501981829118857254760072760555209330540914653379284116747637620694081634929530408334684004552751499537489547947035307048697887145440602114544925651935863867264946936936497190511840115605264742094751375772581334706880088249397270998707458909303894386982333603899569190562798010385565997021725646733282527160660058899439921004807558058847646535161399024763762746739778128133422078430523865095766906207561927303968725633269010480177468991088945235819790441510952859208249618077447461541190247905895346285823231829652710361444040759350432996221342609719418579138017963125726146796821163738403080972754412908130104672169504671177364349483962475175856705157523203423372437470341461696664150866992662997690082466883319171020003948524323823400012202661461200634444163840677620982228914287392971704547110617950790807978001005399647218080620054858398004521756709950788101007890029797040918005102814940173417911158793939886352340229876259024185344687316840224736148542109321887964083487337215423128774148638482532108849156751039513607353901156745266278802254464080028873250120571946945125150614911563897215885849064386333464727920429922827301205902342070281030238567541273844162476972009107092021895918536334871123602030306694718809065042273837992481046564478280893279420753657791053968058642482597538950552629772624788231217947047791810296094476049134667051990926451841234177854311681376640090202033006315309499920408997111030688956968550448109027591251582836197730426640963987488297008837087426816457419103817477404532474966544015260844984806879050733212284335303125643044951595707014824197915429973145258173466400203792349948336548944035472865372870639241223812279915980208760678656969616825563932680321041207034923322536232068814549342353767089152415106565816992942243925206235396212357639134190185244492118863134139332191852875130015697367140443053258708018892819095179778924761249880287457547126136313995448492649782457581572517825638413256344824585230916644033593060769134771064689185395673921752649273832741013461624190322167137278601924315301187954723064846424710601587802141673731593704081563041511567544728075913265037736565483254132747560042622145177436461646465096782766160046323968873954453709249485736959454113878705252756781865723678859417357546979577302506467242848975723745910103070634090719194834237128667723293081460004619912932995210837518863663326211955601026070758972871601178670226655073138469520979517724513917673493817236460039415136670179179727502071179628583768078811708674060167150731914261311257139699584609425624951747011896664781033482136004323447785051894950356638038489373053102803902887028914317423290129066367949800894275176232527250317000286431590446117950175141669891207205159145520817984137108438621884309603433446492079171146726062757265723971233907374040871870764677542312716816032382528067003731904464972195238922943502890715533898711337936981801136375433151615436022966002107287291302586160813519228189718771846967005868663712900458911839455906452228283839578008661722872718164747495740107006007991658522379077465459278137616127353286620714529681952035506014095149690634312977452553177072438318012482896280539518449218679780498441000598183218225489189568663075559306168118534048257721051653916541784745026027829333839027568047995226500143444590684236034449910359282903578510675610620832795116449548131311547881280983408791016048479083282540614026294539584599835055507285606385531913966182245532737085475910499826313666084054874712628252800929365118586497876752773295011904428224465418470276980921971331910101190177785951902368460678156607735040481842810979617869326293286232057846213328838556712893406112741363057675827247147695590060723787785131943722596359528259449385531558129565006043023745020219494142368494138136061926659543191285420100151458988979118834541920533102989662693132016835497362263514002107313478751814154678775241099163240144523627464778332426080822897379814813938370849465907559793977682631445355434307447200265680600210001740713092514638527540378816257482583594718824161889556875879550664488301981112162359872266282829389940634111078348490301410773951534781668315293537650851129874987264372663017147642155155438847023271137470279333428323384857461776672393126438903967255048029510441221508872483518971299901113855391033855978467951183856920830356084192151920099362642771730921062270760585123062417075480551053006780695319754219588773489604963968212196787111236263894298751083923456270297228438112583238999107499134878593713601760870797942924715654232471836644068236845320719665191442435120297376642941871256511450474195100747171544615996075629823658790980934627386820504001950054381825254809471766639370922009704814755998326240101180163447324206808008247651287151578157959573502991746046103976839730638610716279281377490929677826834799578141672248690857750705746304344825913557838252834740477132273680018089516164362776724171192462237809904744250519226079110873774299354474471691721489557089245752176052512668992403829400330181793159641972736538830585624476653601397786054773290416564149628959243157722770515079608288207862435051429526946032503592548551959211072392358594072432518858333651576836033850911054230879389191858654451969809225205529900194003678964520762789219672435130676483094891778860054479459222513265192275338285145060231619388300781420959977508597146712079293700822655538608502015746766346656796533764510263755417674106367719111010565507884167106041880416829156522852107478269811419555102031564161344832007187932162305400212371981477499560828209405920055276237228280159508211859530262506170673709716576299799533315246742340457427435349493727201036179907198679456173079393840445943264755977097308713563826807170217296256938087813775886177648905023311398502904008062127384609391156711661849847276187192944697862675246912245795370213486212597765263497990156373426923666635851689242857893727708149872541669497393430249780983394663090866717899945087678327819176577232533379943164043277051763897367925735213094316903639844527622180478374306938554195571934702669357855343749360091600626612854132501290044543410694786349526680045408034885417381770298622710671923389534335481411754596879573446516792961780205552373116540388010434593656402466113347991392935338699535315381348008741012207846232259617513318368377835225219489151732370263768169917495767870026660103864639496949905424056205603406445290280593581714828375989535781279518731999173074566019891932228247765998286179532046470021214097986657793233799182823597966144395901022635257561093739676706858558917074429854533922814878536270698730091586845185853905550344761045714698989040647305448528189148796401855734121187595874123009998639028392962072401482890605677822350388225457384268627363069974885282702131056041618855824878296153168105928091227866002534228159683132927164966708220660075891940414614057462693010145400224742607067784721863252010517826850210856715895786177699517172408050292135816572202059384224633450378736165034143150657715129181388741650799331711572423893382469426517994614486899666267826223381321896569479326899084389058648171301772709482482168137010464992719403335047381716666882720616783962148831807111158778725356593374651753027111830621271496475362095274883189325580630327114772046074668194339784856901993974415736939272087013225443694865190858501520080713326383202124578169887193986968483515056536396436797726516068452481518534565753044107593252535520625880116996173520825603279086242434439152133153285709804687145690947756092857356244022903938348592801418956916723644361201015154607356790098170881759885166251724475740043921009948581556994910194609839945439957682845630505643934073838768202099971971483027369844437141762056913498367361930191732630906341543579808276066247961354173259831584652590961811463664516176628179732417307758143474415800246531151935780504986940664113192975375653162418468872073573376252892398120479196545038544796314278474282323323182685714063236404482654397573915964917779165301447289031939069789548769431996397111358533483128783312662195027065284728608987629153976947656323643302017909469356505075954430145485799713201765593316745555636252154172922826227738945649408139375198055367041049641464144220187360984432532492535321666111564218916761349520776322249680617699817837335904188880682949500903519413912762049591729399979914334829614903163364373341284896983747205405772743237902946862615792998006860327366250930966344649160132522928670822560495580415096671971844144971844912557436142655777220787732195777163865729651226198191639776585786647723339314082496003208374943776860565820858061604225719326876848152401743396414687441127251817782313186684690545688901181726897963218093589027995226260938053546678420849057779429672128693656590957797936060932839154114617948503108279584732412028636744157422219338525149478930177355404698275643295027537322447035960204014123146367803624907283654186906951142385903012169377693696118839994794681412509863971378918169419922330558591296782645974984689015425742718615866545545242722912110074239255243102214410901472139098060753439131082870524505774705555321690861490914580989649126680871655507070388086733293157368998527056998377638550199884301123599908182787778021798282497376231140306133645283412911617613265691268186542741847293968261629533931677485428470814828085889468839482139451146055367376117046739170816925987668072356228597335901906115121026815881491681338645797078615092564213495294908637719755970411182151939695992809412186129266927723094403927313320114035564128843868121257738020715133637393245025962078013686357112932748248698194046819570285010370724715283021858592291350129530997481582340957677550658386307400274513398987194030344068053056533618045641644637616231856735915187274054596520728349912754197374308031115153757280591135316909147084644255744667645487192623562293457968432115682035137179687340890096869451453824420576642865037825834072327075212363307938340554690187670274507524141240582470727037444648991794558477048743305635756291067506002454667869408877857813579219268799923416939001655712708232284573222957370509397063153603219772429521607076724494330041061614875237117419089447177882709645133674368907980549109927219948277981889306477472437973988688580255585694981566478483757920544004643056954226414108492719734535745067826793000159160057601928473085382531372879146119170736094108553508400572098780147995650444505992864693616911151624457378527142669075734566829892856487043817952702097206505731450432566409241708800158327620577025329050724101453516586214474900979810043930820993973509887489959637876493033500816253836460821102338625305823558373716509819622339408301871773251654132314947450303072423556321264559653634908826765841733154936273066870452902732738453473346081759931118113707598042404659373289238140378345117822968291072228092913817441955675673619104350013892493110360499124284369394746268769964748593850157195774132489218763814277417668406231597291456687039329080019751261548226714799220834342822946540057708461117998694886719985563298422373955064603561463568872603925956027210130425211256681917635069051050248524640738045601600049087576664700270752399927708211614090002125390349390048412255293124689343159644717291123955144858158688496707537571139045199369419414830827135360676857755758078196902850655772521451683430483599659273251369265595668310246359816426580396098605888292401994066239486589557175210789418777959829391463815613990324772964720397637397891852799941417197346107942502954346166497516911810075669950587086166827126512079286871677870812850153218058259551022719311517724676726861240030789253483264333348626131651581811382156836886055525538790541375540062315918398337604491939676638882478572282529977904776093932901641309289639712698885798694179639739345089248262783762145981986063954295235234579039280754806332596558793277396324802594453772105645553382448148977375122657185244809771933345578097224971262514094324477130456276240630098844272407011436747082500465218858908360911302443284537352575075358506622201835960298779325660856830350802641044756036057767314726080421535188345875354553622179601692092428540871195013461998877133741375234025388948863348338432734112326075706628153317503152953754843263260880965257043156930486127626597023132357964527265931032506712594653762661898587977212022948667167441692642387544035206804078300146927064894729837397491943726873654993940726081187735297914311462852542830797374506187988283690875803727562114277028473358098809027214241682385786584167295587073378762832898427840233343886404698551267304223708508308469279686851868288594956624305834448441730937266118564201430403488235637112351209086658507435833034586007600696064046826600994111776431416306499602849096828055369021014193568031813089824256809879859784746324805124333160126005058633389725281041629938411769251150101499725153533021151198964704830824859687496472173050594070458479793662426002959590910138484364808481497358163956675307988409848226932498778217989376929121203266923161175755833626979293980453223840453946309281276202742953478136327130528336157721753367474452975433275514992435379841892564715513217817960723993834187993409986417411208432004975723867399878130821105430058864481727219778976523479306151641810150869613386394664500628881964175569120856921236264266071457089691252204596174371179587344959602796385694158627387836095382974576030101969443458173936768137283980960277988941515134936090856075855524081400325804552511881804969009536572623888395880866474484307528001599646916355091281514469876452189125527163071450119822794036427335569486253762832435148289594884541869012318016135286816199456211150232501205579947807438538458680959454894809437739055327893175815994882002030407419977831561215861409284068746562980180608643906441959915138026349697198351253589459749972055176783783740287940450270875619696302086713910866978051334340087841321742065756838197907970536634007210885100850936821197851726598571017250963216761377945872545601200152782900090692721898453186488068091182368651196786109745349877671141539048873408420100567813778308302640544443534154951567022488293903058500827906203922928617993408374865120858827270023040668683068722917967716874672133923879967046410948580213352071752166823725685384931543931438263764583582296416595642486621103848976886822465843748129956896754682393145154990712471604967749042319665956855981219180640024921618467686909976348993308225692337737838770186209300475680027973720430774160620234277999701919524369313711640187621228796871010916556451152298921768264354983925199333465570653446342238104216151950044184189495222021222019909505453715100988406939642315855187161386443544498176529549660860463310238477929335715726016745624112114308197957914415782829701560694841802480732238217153583493112538771526529626978586945539243068167833823705419477898865053025506297979820647432236569028764767534887093366090237997965063744580969615126375637023799961055146903475489763118283839336203629293030868955459916425278916280076271164475267574891416250958842191952237436196123821888892810945722980239619868654945512394446583380008948104767965275879031183790077877213746852373761191975603460263460675026334724670502977129803556020882827827242343336381924906275674994852764002715156598217717700749334293020793046367944735542338400820322109754829285905735271819282675802160148650570117946102250664684914165883110846076064341236389018497950486805385922994851719880349764930610375456315708230105190287171898283295821426068474177895262940383784717865160784639113708329721546345896889083199350232322076364700026319221286389018967151560863957061294433018080291695784218534404010205787525188682177631411568746110615697529211240117312510896125241881836635049532017908717312376814941914954310885610910161443274565620881628944667978662985067819452130516338959327965613344720340267791808498285175672951254018746024828132828124405327154580300138475982402429451671120861022979674912370446328367642122580023737364594523582364887801251787809276116720264362892763049050382743342135967043379405373272022558221754275898964570308547766319203135194490908596542631475691390345803090697413333931718476905154474463656160032070951144499201367237832306041653420511055851127004805639616825488068899720761904271407456986373421608639225639989299906543379277349906538419732090704205759062913159931162941005861758591277638087948300094427237317899466118071651346494717773299985011513278183699872403578087666414538649676811017847576234722242708112050911340323717612545159907192195396269480944933656928330998564594974568144441306667139994817363969332677334565773797117684611222704733595094499503219844972721070385869542212741358359309068958987721106753428424178685036965960808763944935145300400010601811523213469109424639357801171833708759593388599252662768461078229916217808483359534665078683022524783379289938977714338549617297813605927966744040711553406860258459703973102540157941868972148378488154201481369323777429524733934530339384787624833844676077792941325388163533672527902777841477325936407894222542664479072913105481432875208743587970835374044309354710609649474696318295702465297707974206463704700982402892166021908634403920685773088285523155701483608446845836075401423595865554437424901214089547822969649566320795552837932632955437769563043457776979473963434316189864110598440554579021018571161199799524432028566151464459106562248373496393644177197574178764040753632221957113765358356663013640636383449201344729838894410493284337274695577464169764901401735700302032398277847903592330865923529492334741307589487358818640131661213159032621116992794598699954699045663311535156198437010359753536320816073491240877458126547417850290698169838253315309289862199846165532564230747114546151413392092738032890839406918558586638877734218088881933240316212881470473334223560044635819199182102109878332010305777919725143185305362511396536288610343460327655139976817055600246291046844332015601937396499566842954060375335852763776213957745218620884528157797792832411107483317420234073939242887018639728285358267701061846452980410737778195454315924132000309633465730465672777353345232245470509322029876512315780400899728430536451636008300767020899843249278686196577555800172203597250797469079206247480747427911503854925228826381657889327099940505571274233440213115645049743965158147066727924264363590256599573432628684034183490923338779273978191151724872716575352274994154550455964102072948003614449500392184051567985947381000730009000402083918138677503542293187300409266528848869991171914982396466245315459061274349386237314335422915949596907909952191661216259779504988985188412343076496197376490148576354186979380402329031392785809556821185435140368245061798043479711092604568216184225046437142941681184461870299581502713088315717370163333495281963091627672412900632892080206496037315046350658139775870762982982689362451224490995022748732621997094013750179654182606478199568168834052034789074211836387500522538709995378933233296489423117204985297948349548410875650212050827195516078798594813501911115730108306511188652968304613659254962151498191164423807029917576950902304993689961833773139233771799323186734692408624768628744998059769779082017333107005484572031139368774550553058789014573151257591167837721869144585824393790749522101428740827426255848635415056600728493726748403416230059104370859210196679609440943140264505596060047105061349465799307583481065926717421616830036229076225584060219140057910060455295671526782265071765242719593680873571022305979478284809236603371409360214980472848383150336716622873061256415239942823729421279024266455614345746158085696660828153770423182861811233161659539035500196778552063445513509249514116002147686299466414321816143240747551256503358909273988794991182634122975654205326020567644232839190245777902531561935916993521770689439123623188624940603945244466646410065369029517642114341371353062561079475343415120234124210648984434190933988671290348734069791015228610654304108414106307368296660515539522118400978755366557720930394179029183085271210591462608375477468064523848516858242652641017694437068331583203829407974750102356249898589251476910110834242692015811742296314034082967918512884995418984322115019840578194075502075522107602411241730536836950115515796619364036122420586059238006515998162618889260722211343032490782041161300263523845420722532688843431452257593190073297855496080640929041002380665313072280221681144543531203694982804259359071178503136793120977746545137459746042426967729058988605733898234170072374671364497743633662123002748395813965646995665913339869412342250774611108397162019995601343193129077260049210624568185951632893925594042667268662942596740121919066470361793115135240176950468171181932919673705034576913166905154187538890411415083777370367440777713889588695967048292208690109284043979616222113828985334848982406756435083321968923434969456041405896669758241887399236611582205729885662262630561989816264276043362658483869944058470489256570685569805632976753534617775011889601457960365559125463851379812629585063722737357695524753878412979970769190320625538317383036610928342267460430917034288615242426962903192969160250005743895068062006723148993735294560547067799237691221946601958128027697762849011643242055141148820138135054550190900241303247260548931539448076523924076564135037029975339990628460671856488248746514030356377117095960316887092266446157513349436211435840716971421958673109661627787221614854066493332536540089155071528125564441855729920218868865861215460195208441617961022502993886390921058909296917441808121836205276401660156486909955217996460679881574998925430472470495866234687853746094713278515861495927111756049891734512918021432017521901531947114852689351396584033670313304990808061484483706391194178923462257119680797500900097585579207640234485542233561013847658016970985563140750090783014031747141031895389272300041714318862588443006881953509802320120574049311420015365324891274403231614085113493960931256828872774170181613404364320379170965792898297114233490176456358242827914975814173399717651081441179115605482845590806993242827244322140492455338850878480400273198082206777121461800016821790020999319150505129087285726537156647870919148050843717432338187017578852955291102458799542982426242146417314752704265580807963708558801488454574057095901803312029318117756594681502677521198947712968134759181487839491030576548154508469553628584436701893485002749864424226151441039014932615119466618191764659771386352702062399253633605098837555770488511383004620615519924162190987930782885657132086493387984778985369338576867034726169100048288284787406605330472290339439560022007709800599970510962173922539868629683651219226786828873742973173783195782352974398073777005696723665933247364290864285038176877455091833633130977877838020767545405500723427403610607217427698240993483694786819523752032471407348298728591403089177920321339700562232960570885903758998475776690450070447055853493627558668587155208441221672369216897591814806967466284759367210571990945337377638828034969154442704022939112278153171546007899447839007686052842800055738879662522117912641476095939479397872177271599154102288642394277222382370987726206801093580626774924562248691030804591375922821361242844360394435976323657861172339228714477209232737458084149591745213293145975624889448739901921617722169261140404616349717842131181476326159874505905582345248615692527770216771257517808199427406413817495686778756531789657430366439245114704085650988054360321909552346898621825643003260468503576820383706530254813045697609299285987618943759744430490170175172868719187749845428324138437970698235331555918466094073710908194080697047891035783310828648186108807481024363678330436703541610273778216846284479000741579854415027458608098695872094644123455502964074778724309393609506066308907905736510988545862357249407660561800080937921094410085154235621335557503363988363937487683573006779997675857881784178482715808376551474213598620933992092750716972301736900579602235078671561436414050198402829037054129974085151918708726406311480308806702301345230569509892593702547750899331273093511869629044358478378006496508851995562927192289347211803643514147014716823374722941232813298183738049953777991949385990109716099413818746226245746003747498870097611202401645841325125619160303666858210415971920845225837514833722032515583423576591220984240011124350948806214124704680317961626025921559939144791347580879454079107237314145917245502508193612667773904198012114999842683016557548462398568893896991368818538201363266011038842071896798764489769857898691311179650261046169739435434496507517135284593721116630623412521713431794912512924470389035963581778245138155373344100203904606689091027375315256501058225452942398470907355687262840202369877758725420746076554290464086562199035050659364044289532948652706255556217792675403677379055244993631221277639829987802167368808577382578289875173603968610473727636880498597461078796288416511562578614604528361668372916705243354172097008748446607576126466798674974918069981389904737841729162392011347303304943767638394642620082890090839485718834733849626012796992104303756131701367265886739775946213713412432529665252047422269561673176281828574846837662822699568210568207512996222478998726887826390956285185555604033601683153446348702296374531710869441722722156968335611865261031875194942192388986867018648978478530692800728500097530867734997797259458649097113485493297244981019291949754989982674359867560737238596789985572808914430348063192934737569319362991220060736343465506946312150981465011461455554690504796814953895553073226820288071451830074748624286268099238207816893412946696335972459098425953705661290315948661821116861582028102387951369344347182462854847071087333584361096818413503684811991059399764050666286118368815310142577697550703052122219803820802678706996604823643662917286033618690802094348719570476764316126773211393715664389348999373451076885525308707051982131952535004883802297398997416592046267067799727601941574430813036088003056464202419641769790831376491830035540976168518055577936570647069656687072248850828907533510975271895266261420442357723208061026685348863450136297927558499331621747059922259646053349579338381847332066546109175923088564993182929990090138205445980258701623343899803105689582936555503611391833382830944438828089313917059985900050637695870113488088070751757233581128099362487456712234971464707746468907514345562049627174241100934613925314496509458715375796169099590407128049447004796815171865555898316098688285743549833165632862878813032861823567485563641513476168273723234189738129463417875970195829081967855494863522003715369285272950560656009044208762436882719867688022484876124631621749922927725469359945121412089286615997193636685119998991780113917329759805092546212653260267030959889192168490283611153598058914122521970394998510414354933679745221884770683262516542249066332290706634287556262992702942208442509717633729746087607181345069643762707813855062220125009177024245529523958350654501573496676721839430823452127538119504863405954730659700485000677273386140942400706976089987425798870871685324312552176119537633598867418425075848017801318791914587886965220802597898699680101212250950023750467015504100573205988584749725015740382735975453386478312467138090411276356999584541570843676698371245825878050771708992218073064565033209468819930926908318521144673086956391960970342209289136986970581579714936502052525542530477377255538279934092215386555627504236123047075081503268142621057154749159103924253631715355282255356538959985845465112532666412552638721432126760910241024240690486457116137548359073744880341638799160388094936119748420101253606332089857524801539959249042710661557948711348088647369680022408338113417010685331318682614865997413270703546334292600335315318832896743822871899705098566602711262294803875911670476220741806220410584216247851861745606090100582132917257270992004778346803644820964507094619420460081603275249837936791326693189598898629274348820219093815272826414542722446128218054140283104383856895049835211315884712722983357831457289362112332140005714732750405654967117825186234087091187296904354311116536735411843927253841990142006010876419151421471538224285904386247607613044787610581426232186916318189376778308375051198915981725724406011953305311694983574404521887849160146501473913753190423173489259919988897547798042754885858169936617390491589941011307148457654778966076645836163199487515302169786950341929374765945281501930201786372489471659586302816299951756078798109677732022807906547660618058108194702163470795558314970933404531799622391354271886713571090751313299810598372861663604864643342695618926406732290179064145648464549010942014531067714111345963648030451822918227605572132001804903249840213971763988903515757233123276622702282544064866098126427583432702043771760401653157459387818560059998757967583856961031656779412739471825063058451590790879542919394664412413441598655090741773702221247637572704616217154554346303122763652285297311238662653429277928052880950747789143983731642965366554081829930252702607423429578636021875131499754986629563986490457557982856213965907784548092315061954885191557870868552887070933756906442766363745522772418665445493362758779565944187748934739588720805347206347624432133923076475172882219760138210971159606790414103280294971763296044422703635861467312507218478975494246515858948786097988098804452894976781477584605668704875333212508212603898828328638053440556921678007623858046039973149964358016598015517865096222104030075042659546684735241306510841433303342352853602556660938077311319189924908429548169262631368216715994892871710675129018361721190936996173985298153734228233030952788530781661419441880914984458529719972163607272100075151974561842087179848361762792391793768523022945818024523434858557625988635687909071273291072573003942433652705190467599682353302815551874981346350827130365764432401864430698863908290686142795272994270437014048704428904691087288630308966996398935267476660235917051437028614659772888254025236632312426796898493348422513587330422919924666219758911280486457717679645096339593312750822509756577413610668944381194130732253281129439553306795420477897718784762646711428837118570088080269965947464771505586285857190263436835419497087998753241448905707120469788282026847699721567687145417072742786986931140217967482063989635941483394994096041824154385502433876796490902939148894900968980871765577701856418790692652065255047623809674930642656877023791099309674345533060829127909245430135260698886836365580940021729796275595960471983749909725266763695153078434160083684744826036145485969367936035553098093371046304617047925150071485688682469011755339975177120700890575131104298829637541562747306437460727474664460582992028000058675379424112359397521989673895655157916926740464765338845181810502596823395300036793012766885718793943279668629732188240437124524059350979202046989322391554845326810725677644008938474761611524788917131541822286922598638561648638974245765240204652938335997133737296189442413143399153978685594451047596150245338127440163494766059451111960561205958700140601252778716749941202618443834377978654310364070756749782793036803010041691566448673508515516946713716381501448459723975942092322423749959942421608488846575154017944228916334619811895744976606013253864076789323799669829923002995595853463189701690817054379127285933214720360629881113857739884537696015767334935227956454377121530554473512073651262767031565649298487316415705787971683978664033984951834704207821486028381028048458590065444084024552943377789319619154070165276641708989161653309420278657709153236809458429189557904134371622337003331777765889130064604417619524803828530855679207247271867174612363127544926435554282176431327780189113276824292758515244454300878100078613650061940189407746382775256824002224617081132228403957745104459805705825130937030971005565793419352490167399973383574601025226851019404830535563343615567903061545266141051777594218049465900650870120501380565188166171709667226927555761820942315820082114996765250480662964082852647713775164933846613961240541089917396456992764106662960950243079610494840907186237273777557155418336467095702691753504931857725839268994338214268088568706752316944064547648445818216597228884369106325317040393944109040785282970445993466344246205075261357030528203526144082691202650790906119931127058732777505567723108013392018014310788631563650695598262461805708786713697605547976435207470854063045319239636834277272037616173532778452634828943646505939981054052076483287946135714157243123875423756164048807146018017498464677374479236420732689521640434292532343034374159171946439363784391038640081042001379188318900172896935427220280630206778075832945982186674811796229706347379965272535660744451038454708226917253162879753635019182315799253789303189408946181152550707262319370332750189745165960139878640615611188461371044046928809022945673309989769835248566788199617520694976762366066929696590066801852042384241576542328309618484369238233741472987764482639156292961648864042192888804044892040537735940849493083370420043860222495869087502802629254936263790434168122067579315961222336417138492547490699838238507406113256669789267277866334861656609600149439776567373636604481521216822280089319706001658982599366758565445287340907601397158174749065827217333291600315531135742882925432098909659857591762912665279151649186629205501692461212724184255377235222782297477835443619454057874799661872913634604606042402214982655895961169718492583103885996946745620907521389445783003156570492154355010810522102726394891649028019813579370765692788123548412028751163970800343970964327614101248100188167989746692243562559008582694423427143846220004732660903730584342383839088406106421166213807709032443006582652506108389533464017072114104311939939142386653826537995436380418470846379926921302743196090111082854962546358387143356686382027914842725364329155054172848267899531587438681525483894824727187637399788371263823190920509670946495955319846834208444266725036663912896262698748360124794093028433412611444422940849593359434888580628894931444521293340992300674124881983361494127037681585759665524687922943138510050366265601120841108392567103483141305515710664020575813568016166772862767168424328189453036648275672671468686937352793488041398362090547745650531085883375222806386175707814460103318703358378881645929781022637370430948930186797864319886030126154572942483202827374720592014484458381174829568095590402534477650349673029972168458564502613862889944379947152409320304170866850408856198579882883037853981343831792347735198971518411372039626808314682084305975506639647789192384781857603571538753428783162932802515160658459615024561396595311904397179062366237531096532094028134147964388769346768887949140570744135178660457107952886662334857148563997574314329446761126946937278977159950958632442442396946369270786142678704862734999364750824262240446000547587356947104797437994613926198985186785781293585096216565268072614251110798829656789784526967970233480994409629945714361821898703426241866169055211282319428211580886493123914820568805318296586734285644150633076709747353086348421640146408938254320640562322655348638884171297884935847156959179163256743415392060349122402970977638796148346665373631314621367042050229953165512495550362201840394615453849363178802579263067647309910069076132558399161948331612182167955598253239432457172069787434104721237390113842228166952279888925866043121830535761325793560453710330637539040645540853123942043470771377630053367348721802428787348361859670457437274035927320939863562453961193983633382402329881661053355969201334212795189397332597533240380477738346062765069103133677654852980898458505418516589441345544551303273944332054934356871843323631529446050397572182299813313951532931777487987357779888701786957045534918740182166622498337854522863878549547257750414750588648767034039729946614096579322828719939548659542492344958422493994291137834458905907815318133299977382647931856206629418010215457562236940586299877136705341453087727381701827406938333304743523599399716607981517739055746619215041143920875389517200708709821590437793897878869501896823255830163811116489970857087617092827401460854987676257429844675966256493648736388559155155636536041184371496932668296959391772870280275495365144129184207539651361810603193793527114151174131228741039279746876516893711333419865850396621609448483554427092549102640974760544326131490475372967538764521519734679127530044204959386349101389946916492710921001572532926884583051231414829721161465070477494194107069609771979394005790196226948908695202972200068190531266512704213942403515900018033709380228989898745064585687328786193341324279856776181815525672562224095580313568035315222977307822744987997640872555487058835365868978239988248383345490200661751696243941525641267878352263625328404303634455047745981439524217854582613400553400593577186551473345290418607262644304336787053871520399370861058079047475530726670148015094089197725703974278560601056817879873380899928703235481384653656599462800403555671040089228334652715432424259271779611790016242141233094305505860769208109303742430723671098490543871694576997867754893374568513787406181587801107795507192242596123720073001595370839674501519622149625465089546678310794852353628254538599425916153744780034343893842122047894037131548195769971649607695434033047906106865114079903789128228704352100934061426932422882075935534458835650585184909536144577727259045619680669639053732171353252331987701240840522976498243243552687167167014807942442249212497611214477272840660830304847415971756414912940341076677712824737231456456052813705457078579483196730735088852421622147787730154227672558192983133193831569449218439101713754780620171578711597616254463516019470669948619957521811116301789621693303400277601181259277051368003738712906563695989011570732859298283562179438529867961222756982645197611803270186358204825202087653735572312003013894617211135241527893730151681810246195811151508834505744035445427115538507344608118449338334048835835030344331708936659890171619742113830410526373139873896051606627866029158422126695620233626106123470260514894231761307442858214598054097180942647991691455371486645685271555199181672669705107252650951735093855448887185095966076727808392644110127944528249526367142791972786157556634264138119880391168968218141544368435019046432822136719743106543883083033724747589788212072414784001997415757441365576912128626233153077749275701314613088600029064919846106046767426985320261887034031300845251528886734196120930743863387957566446799367612378990720478352066245970573093291883908839998473290401072057983608267854192946469690045470839918918180070003482983448591952837130032395349556552626716890126620169598736417889212363087699827706214313635952287087165220745304698433682424488929712697087858787013204162024075857095166575187577272440584905154979884477070566954588962246048614199632585830114961478458145259905725754540714228267375951940876441004120707282391685428746417356327100060496170656267370342510217398033394798021929864311033271378677169728269287017433902694989745012656461522393414564874058528497312519072776557747377567102095488955890497592491715854378054272697586047015677955386309373469910683290259640916274880433638745080403937426724291525240903644076545091405940324843899422447389059886661908036657380982050505913284612508634704428720188802323047900942774159919969445001400612020224328048870818346765945514367600362892429582629125964097092003621646212709808568481602233939555335487348548919104016017457859535321411592691311499894642440262585040045739114984386265632032692107351630340897792110527130867793944238680641999854352033200941771473618733119775618470694018214328544530354265196987520506997377517168316601325810240237016213265358650730246267609782783429071884219554094468529388163227451920625489319240148132101617909921059133743535426576528920333213294644896870335589941541216657026738075318531998062654850927653307499620958001271591492092919548300030669457044222013540145983327776310014237980296286680381276066412214953497636965230516329216356365283858884649567148329287376848942898423945114459753062475671964044304933995945723778731808612885813397084260696494934686805782156315770529047864465841813762195395062412799747164931537354616909977857660525257583241883834605155883215284822564694070235696312065632003670620157545034366870525247504720657416655014450335021806797257307867539829981613438253210774816956746143489990137068850646225311272122893545629157095373486759214895758268710702042286709758830176991427641917202135813635902211582443756999014095720947704176815973746587383227154870889110622539151849664381470179810145773222848413153062266028902071905013959243942987248151228686636211565968487820480584665087431935581137013688162015037228385647330097728091874761141761664042239678885040163096972812705403269444752904369875267442890031017147525425860977450502679999053966907055152346041325823341016857045508360905528897966171570012050120612364744324620260103616383953434625150571818609858933333321311558040749451488600988817682610024386689560261686607316454392554870274178528969535214565428363896494797316126410246806286405917874773278638975672369350725051325252449842852836611289905848550875077774138383178974897780621226846025733637257475646044470660168489890989822813910267513565395836645361131716733983072716180876562008640379729308619231590826404306758969179253576305596152759583233001446396459794315056460520859402639246922859919230742044121848039451730204243638218819055761596063816597311092235571083251674631755314561885357138197491359538890647315677640151010939915655700201683055614810232655719862522339236621388637372000830430035867389811946585273661169663400421112430114919672207182017721044250650595185623809214737671426618056629656498992489529547560530669917302543948788822287409762203188170725435161252033569526601284763188375967754905109928290264456880467768100802646061925592401380958798882691687287146534150780638109884542722140458404879646894133973436225982164575347544131923322042633654084328489277151560645998460299676475038406464181991820372239553701275754820683131834512611781315554372752692902576675210073613800461789711293100359543928805096580403949690894328994065965574781527804636050230426407695749808097891026073854044083796811438743737851003882496800611218832115354217096524772142967934258306084299430236239230512815965338142142093620775822164132488925766404576375271673331522787619334087657688875388881440770520160143469558434855928106039278625259612948364824877149353536250536717934130834452909162414699069421758651338469357708344601600818236248115291642506748547451131967114534149991670734371978154637975847549360928386215614905702549980688566013802826868372668175647815693010079878527491557220932434824690389279187858071138914998291890489202814008402117717093860821004408287750597193743799100109843699074532469138817589950178780656350587716272520544901667038313299243395128059128049663818390693602108590901977042919314981573387900706263672642067100484069248809962934409728075581815963286433474994092818905854182696956716932622866223127626264492332884358323988424266845604887602448250097914875993065346919097357725785428619586116265617700619660732640993850529683281604297130576118475895375045459030765695804818255423557509874492484842422706370599984832387194073270257301934926047874599329318317952223602169337090521840167139421502752924849172680198680914516782642681660895706381702980631227236967659591516593903590502343751210792485985826688691609908812108571332550972713655515168625728435123809311541121188064424031407375579525827380427295997526447083373272578162147687120702896807929907993949315260965955180956285309854121575809799691777800107111494767546149298135188718259541957207852703932209330663899066703242780793163316928627037266296804792331618457027475187019975415459531343571744482434380353548775618490138655730752032752551379431010833799384771125087123122034349928653806473608404356985226532981461021682370908694997883486239131750093648760941399329384259863144545963780925116185863951576839023034575925306264600762644250311534748104910849367145247919939135039439836885069554141446536070706973833219084089610066942494508436080701419220616508687041020665841202151572337823322992383701215925248770404050035582262271914469342562126328696706627547350727461772820835087704677417305619332167418980001944470558391263675558091264446493246900671791837439328012148219460417138929772566997295326574250853891315464848539840730770738351130027526424483589597503350854376772631901562464978537471092027596575945199999124494758518233001207603302251478621032968069566083990711259830240479079135583077127480353691721548363277754663320693856862999974626379163325590950136666635174515783907497212944462105975095171082600190004916036519204852938293413131515923867031524608052075050353115355979526908453054211516466110056128232270197704230904250294034130281306945740946082371269962499703796960086110156578547314713584317772979138919311137609385269209190410845021800684110749209697367356649285598812345108209941854622654593685924888589976889120495822988749381588107277380152657834967353250140280827949200743089236663199192416971245516576130476359154975375137660493918257279855890480006325868877498301939537174389150171595213818976392730404693602125973930913755984308988435564242739597354155967116905360303378401544890303297913908361632564800122753851155841337795434905970421373067380131867423762818522177322186117778313188698401591041717438806982762098963450575019623402726637999444951346127168951085827002631772515350802356510026224987632143454350560602646457835013906827926479201362062472956572159101875196088331926129274392262511859376348717786489994039943699832348721691506151134630985222930907107725491762570737066198005018506867441730439223987019613243292406495349631599990970658762896247863402521982624283959934971753058693637995287559613798318184888587555624575901575065680154315252759690688286949067372203608723421834945907319859519375954905837241114311617392127325371383999155389517585355041640836192456174058311706981955182867377781325441960346008829865342983556311366223427607219791072597316385567124109084620719478149512429828558291847203581778125685601064342326975432178311759277217236244356289025609018578835144943220770036569442577840895844170689605165573952872075975697805630996059671582736877180632493976300402577640286527468250962060615642708540017987386898414317253133558969321026383570879603722241174809113265459768254996713286761455982641017110650690668168026244883744636156568957936218931444053089808098019100122027596130034977581294710895916938808143441734241437464305012214797993519883198746072386961524116208957773380250250557913910474447612035303755667454093569911603601172465722000031959736440339291399946963198475941617418052747154507309450451567416381617636486267850500439116043319355053846605371625947173485726487699322795607008470924869042028953361399292278648453980296781874731489922505409847287035941562560222655946645287442064392059027764614604649697107473692670094671230863797892095084975083368345334654395270929743907671814269667145098346447807577782002148326461192503189199011318302728726325407030877929672914398137626366720547245019182067732598891863235644612090928586556525871754142945325799309568752509894041661208638865536322816226766244010607080354177662200428639414452517426025337463683298588337069409997382739703000741502118480507970057581411598563482662586742369750484342884496297729304853733209487854931280435928791655169458285335576350768903803198697479180943361471151985793161175083525514755647099138336321421174188596280179724258981473573145785135529956830868387368105871542586648385645313217164007030182681332581396226523433801771496870704449484164246531318023512342106466646074853359579639998519091823623162902863769124123451309611222897284344944463672774505854047645266236026619030660577871390788985025018767099892630307497956758674622773046361485219686219354356493992077351300751886127368895529227900492002475408324350346996687903311268121607969774542566767820939144337775653732077626222224051388362186069592547817919528119575628879478949483290919835104002996795958069501269886888027505021813580970493996491086155051304688209961233897576385729448151613472137060558258143996046618199393619428592249543694984943176121879919945607100742339164341592580799165731179808239093049436112891579330715110158815109254799477620592641563930573577226147910856556850984114698534067890686038641214732878131048838913088738348367725264149793258671344884828341703691581800016634122313185947241170964860171266005910121000529621782094791636383954634194618204876124422212239293508445860551483418989303666227762416765683169606411578777763556949519249397959383211108782835895946884590534864095273256010123585061864891790464473341492407473655965704939541404481959942010492222358752730059895436151568345058403001574841068372169912610975143270154904054673340475360287743964275816616321423392633841641538468711454119365656739258435384150290065132136630148173577114639158852832288582746122674068078779057541713634428264284105043595834349465664919223637450026041237252829314229469727928821646349795551197242025345861947312700731302929991148775269531708365314207364268817945073261450615675602113353889998585931711995382643334276288454979032351680715920640911087517818023675348479432935158212650217762211132864567290544016981869912565111942436526167623606947203089709645177715622502124246402725710727608207598848903787584389747945075354418908243298063607067937646868127846401685303520172228755032079278713826464400718189933663046530061410485262573971232986962160303742492548445581672062357528002739528316594520682240067723974230884069211729517816210593434309361307227811081466798682557105684815395079094990119928990107276566854077419957133558016674501472914453740031763769043508041879428202327313249520428826780919116255149847419911556263868706372474351890108509100671889105583527131067918189983038437474362115099495465431853133698816595584363337791060243592295570574781077212642874907440538185675171418499490073452710195856497978413752243377645904683898617734327002085171234636699319019995906516431115859177008394010736396826421256364774169339710737823979516557243943767270632777227308077669007455312004652085841439493407052821321941279295046557215559837790316284719375074756881930583378273995794198862189002332436708449455594336673694670328239984970979384416648830755087036129756022335543818831561069264112788807576537757395437594550739923465695235616689446309692717522030594373086930055998519697464297002383088084926094981690913971306530338724180113781071737597116180460821599245568026669735037401356756372142106936398802648310078143726061316721035290884911880667615648828621790551139065641621346637218649762161210528342050374710452102014376414230612770397121457986327393770977194864037771878865699371724340068035328191671348045755728173366571907686986018001606055245750534807055931882994725719636124487253735351995816131013498978303328397896545985952887019151067404879338399857297667317938314412372653383594404424766130107194643210003033405046595544505943500668197750640363910190198226091571869939840027228407248684448041302771569189258689997399789049574354263034091528072530879667633098345055331347374274284924345700927201979440694083252319767124771908280043302179222166861106678149074849793249920037744467040631428239605613577572632085514797167602267952601095253296757151759066824641771086573675732623961882629656021728678540727272495962014439846779005247040168723286595398090816610025150307808872994711423339939262307035096274291177628680482708368683744147618878749357742005950868938889388142981843096329481684461871016593966369107378905144219800454162400525792755947619904497340232044599060567596361568202525130061695029362245372140537842865536186258183093354189637551618947747382471013176848931361541351750510631450652164023866453026774964082243139344398808447179431699062847677509719221395173514983405928674986425415219379097168825819874436801377715361691393195665178617999327061457335651668592252620892651623002604376367800205314144005241568962285968186493800524382227916925289034848684611244245591573107338843561623595592095919354370701662420096592657341412796116929308539495934084933378882634331601775591471984962317020367496737475571192357703477237057221334448250434548679689143841904248397977682472984624738363131904190345586293753921515142389320095385108000356119047813497935638341959154792405018339702033170763783126409012422742204052571568809776275074677679643310398884976537570004193155950910076572666484900708682184192417453431082601348118152465483038662975384042747132625216606866348437043551839963807629661724726687826464038686412700931349821405476608146053149953246473492388269393189653691008602826761938690533326067458764914213329478256874138911209201915924086939614256213643079482072485835180657331860061122584865643278756345085809911742758751112175854967153225646000638327281460121964799564150275511853008241362802412198458570925741945873851751907393339479485746870925465962949135895822536375349669358590226159121348061015232437630039889198848922433697995529772315607178690316179526171809835353918910795922088597967621550950583080627371690833896478654539679741277799442284291248177142791053836891028543533599686275064218357740781452092242098929951749498402167718116166775994131171978313089083564117040544758148421273377763917214137026943519310193979058187403242812626080468440767714183605446590295843534956625677536144902722795119215592587083354471448118858438584056513575673751476861141916564758129046059039021193358782679319390541107974513976083703960246110312103647149497866691179066509557035682491893798863278797724208500391037960779311873126088943589363905725989243176535426979082898299630107374666045098264787555154335584975067504492580248968214745165370497706122536322689847051380708261065519717737506366099520481158512044792763880216971882732679413528223093801170352598870665202767799379694281398971187165867941923659385870671173151200646674483497135716691480094478146261323061508205503975452166186671338808717570708329691325222971840720540508672766840033500809591717206055977150227975435909984906204388867821021618320657089057843599193943299836349180775532373185918188618773568415293687763390822988974806240246646365375964523399008276811314667296164612427876186065997610624348975539750253185593602877054234237803143154779527773188701305169668311421301534982464755260535888031878100402641879802058327168017951030875080709275815954869365068937759820155208539170253789282395860649139587412624313485387630039089142789307850546767371300447331142156422525340763150542584324742848571448090220313513155017381431789262127821319623251234389899503544027479622215611888469714516552620833245872940182277513142810187173603928351296741596148268841592808737456618519003110736983525152972699672908088976811393086048592053767290267901807025277681859549257225799315485831394986246056425358500892168655563228307784743409756380026551066903919808983753952245350727678031868661685788569775682649724288610135916338302354800871913000645280232906907902461451366870879871939801709584737365669709670434673923058349841982322461559519598893223430051234925097461031437610003144479667280628944453973425793606228740201255775691414785745630814106789825156278432747849899073569091270196637489955549501578832737422861133206213521644276004043196623904871015205728454574126824347616582468297175367105761192854179742199474949247269142161218593061994229384350418830701638891680808863598226557750460750997128656539824808786313255754276302654517902433796353275168952121930486852873588824004617451682801426534407561094509239015956044829242206928805470638782603404377219112284635454851555469777982660338617172344862214512332246945838500758984536114601462764698142783611443449024147940127964610148245520076398021406174369901226327876189194841714094571246027360541995613682647782599972205515736140959810275435829011848325475110653489085486751257195306047702962165255514332055177040223704274765637929920553357338423144275837927359424018849406941323594829639214475602264243206889594680932959498367291244740045263128553937183655344543385399815350111747424409501750745302290460769392863121776271756398113520225263117318047968513709898194154773299909693948497458549395460347288608763449543655136163471430736126849302791620428701716010687131200367750421848181463135305542868285828335797582003441263174816399133604944428520886415289960020779136062672797472797403521993761811362456601666299345121246004843130842044953125184637651049496953723412956846880102697198742798275892289364520006937832838591710885206400704041350448169299529016661142871683161707091908973661690905816290261639853889253510612365573217604485704591450496326722564382182069781485150045250405579464650263867039975796028163429646792594384907165884331251540331593813149644151362530788337091527412337375812875178412355696673141236115678756673748935367798265447330578471647007589916987400095169927542727222271387302545742910180106127775054085214042776060581677160375031826131818366446773051847359601328481003145815411682531068040897903949446845708290684881967490585782235843438044769730104577796841400078632026779016163521386275200891478648875904966597235314830754737894539159490214491123062336575269480758845829546991160286785200605593492447109044154890235902691461216787784121644092579232236251811640422704609753958243836770548361058883040757251660500961664633985598142392788604320289017489701564162945442740095760757672520374374416892844942464770605537598571125555156132715346888670312086733317985335108913769628285351295834973245230314975929870043519727039025123644011008221481211738692655325340334804325528621301616982805012715457055659284556435937788353526316626750296009411322892590392714094664592554170732318662145185865093068088142091942181101981716102747485667863698226823346806644727971896921790048231023157884735548098829171683847555641517122138601469122868510446303192884239009374406209483773207858580986357961129663724588161485251448380597578890324410846209468682111070505132642333784183025731208337712884739284148524241800855207740280240195860920765813757000331956194569108591631692234651634577754456189356663221976852113344155703644819799567149494288649602701302278740001258575725433334768262479442771760653646931571897441257259510437172566627318465221213040917333768322106201515176348929314256289211702886496666774341336182317737744835972701863240146014381929510107659526257546329451757084786892422177566182119409591999103297532360213164342924110297403417883726240616240433498456177620232078931569210411539559410166861752706543579753538891271782985646218006058786649910397217659250970380127193345671270926109092706455095664603155844220062855317999614837131979236304057813142354389935447614338432155027742148615561653524871866451830702882070111943730880186823681764018881609265814032730055289779390073094700175552319558242233110039803284914699474177124921376628175825722495609882595096541125325547148374116840259238610628811195554957612419740202655315384427991418993472395540923816011024031416190913690459017524259878323633174694818889921843652987641001218156210270731344783669870343886613292540089214716561647836501749091290542454002173224454007708661384730948787579844979827391920792897743310812856590171884677555828450438307583508175930924649271914049541563816856806958710165610245091398986655243294704940934097726777177273074760960229424065413963739351506530174147572344437699557698802661046340525646360856635501414353746013028270511802589491426526031014881488061918235639176950364511819987966286157665591620419092589243114841421122657212745516161178845005011736829380659890009303851679094572171515168195854891431778713449242873524907704099347316898233602615528991194008664646797127189250161413867590503949483361224341075960874390598322198997345813565532588798517468730941067484578589707369325663262449205327738237803989754052728033424126453186853034461613324399728035881351167676595042719897380067051681643410969710335032298920783408748021589294936431777899694287971585232614547018849427870296878761606881983992559429216764411643318000745953917803145497182429604087362431056848630807495630660329986645489891828643407380978766947297640379873624586350527335794221862891838672798348846259693219319045685921792028201677267598928285523826608028258645016789542513500837152737967413124174610333336889449699638444968903962545255732133550969381222939101470389623530269021594716765402163962272281569590123453227193121769062439859838261658558654170575640625413391179473573991422778306638581274676811630443749638887168265104137560993863748031098708722622179123248180568566288143134884923865291398057168210949139547508049729290120427704147630391707310715943170076277986384003861637901377692615397708104890448360658810298641027019170162212358000950231185505841611778860412672908459926911623527635607264709915705835177388282947220415348400671284609906295461462728307085460104590781955902650051880159241809999995419802660909804756614010121764116577146487693819830491339802930490105496057946599517253978193112483361125952315456639372154290913886246219896083521614373377662886958989738527697350613028082051956669865510708216879291104348387443072169825862044231826448026952382270827852851869329438146119937473014744587096331480235756476636292655158175189632845210384305776935983218406573471483254854475477006920704215516090881709500767287634057192160219761141497040290700471756372116978418941916050654120390043087690955266301941822305867896365815696393886560780068234683687829201479494662109400250659199672108948408487853177059462071741865536483675437008280585271758957445650859148468240609338712485304764485149848422089854154056353361696980130177217758361041970164566717563137479349754977898156993957492509724117639731310671580600690254140007057405651485799291196211161609658155014303977591036782451606762696788446469649468616187564049370855114842550199902038350126492179516948993902559362419391964069246004982820781779076285468312364265381810661848614536466949249087110717605246411553426649240660598087201000594037850274811126350819331636840372847439945098477330974135300222977534579152354854148210855084119865923723832552682745305572669571579210041318085357728026291421158997051473044660949056621392842191373100225280656618947683845664496999608065816267398021028053047127593673763242749789017428126184617743671745334853999066708152063462986181627830791727958104776434694728567724529950283349081282862537818602783067040180227047097738453095625955448421859359602243321839523630931085856468188980897081654193369146766932490496571228275400233480532339310413392261985786949712354115186924772898069956622824653489159706832158002852438033937137246426513268601476837040865257101171499356791648690982407593754332137572031265504452626006683402808950464697570485480636279731488587547997950243257939347216734950110892103468349326333998645135315089294991660796805576025880666769095418997953233764834723262154430563329149194786978664393136481664885730083287236133994356228560088417400974336044549584640480786126961320376660592081249330605530105009019448830807377839298267615626866401107182922653870588960182185016264798340666680529283968140816211931942951581716934138662617101571989448511401652422455709950154953047841276213542151078510279479403726843054644431278651872290199907218058017191459124519460636319639046569641126179840993003780899633262652493808086823105719425318166840557223065684250163355469792544238225154239622423445924011045958782147611355588642955274567597426814515936744673906484676489299196434113642411152526731201495678230317401003307239765663832648298738811683221076918031848434543926840499205876659853740942496004062980734426265073094131911083653777867643430690150584976997864386200689006202529297320750407537429936985372239411743745290545523057872355585071195521760003636971916026588232152468386937625928209722486506017988899428947242027194801756998657149918044779241393059593033753028784089182394445435678115125611350178906588291644087542437019828025430257948666238464094623667053860798278201085832107300669171711548272421913845419402020164328640602757576992475213288865703265095584064406160957992576945495763593532317920343851626250435146564471723020352388786401387284952504519980905917687120387936256343593076175983619439694682992271840016053045994488802599739948011325693616952534853328733240052335972175648383757506763320717407872607826543134098944564723451057012083668458413457652116038187697291891843232496048555295523689123563996343731642386947008137510559670099657967331324895891033429856094913297194407633318781896481385453293597790263988586816852929707693438993742014462906621189801215368715461795030560027039106178674639894521681819497536556275098638894896897905538851562034260579122699218054994688887805000332573058506604172626846863234553050516098737695568242342172475097002698183872964888802164364440248765324144107934492286085595021810580483036210641781291250825901071957336705258070568472436939199426612879578063571285637122235244490175033520037045286080848800783943169743725596399823148895741956718737934993537523072569205276499471792913105150648510452078977591466230739212561795943742260519169276621128309741702942983471248858863615204611710456286800420944378754273266498959157178424193509366243681850733288657537213535674882716193755283391864673513152283301489280195023253119950806195075496059064977127089189868009049080835480687562837341877250210459723184034350831567923308922511777657784168951089702864505996443302489792236921590397976841935488280186174278607046731077430535993275780705779557677954818491997567606704272771921629173248850473669376805614107078498337801190323251107794872886539287469634303148056209972525897893804530926047264386643475470875020699561010403051314916678062198917756941494899039583354736987014646913430323034242880262304250659675024636838245526930128794077175323096270185661455170095764211804302303004986509271339268079611937161323142820572983347422067713018198246987173051617170209913097228160243868592041321218071775024540929886949174609287731261339660493244453502483036298057391091498790651627624914324195771972700485450206993329623367572911327551060256624262773363765435026034097031516071402643465921122744423029297998749359335361118781996545923845291822586950287283355855737437600383981052656070345806647755391448307996799464306435833847813606373972501487529290535497659312219655754445491011584879744513911295240778608666880270624918027970612914884832532047925278738019548635797476033739771670715435061592348085168042829046197103055444098524373422969582048267217757779654442991346677447181773288132168310219860567565821744895750611588494932394664480664886441010052314478318384135049802708849776208234557846343898625396128325761641516695687368113408861992578953890463681677227241838804481135376195314748917003638837635755521753621283650362198854135817500329635861841186539798214106654982720648395817401635482505847983249969854939778198965815930119656679458473592499635165837916753188252649407232279019940130462596592822963561000939581483089708331788948127713857182056642251030497956357690193758787451667567069731198016816914421051121842147608621362901681892094710611409892601324780394339658008943844702233922017371416614760472904880358984635762553470795852023301078883836214152344974522525591524459519261259929563203776411260387935571822556347928247191630526301036339026659531772099981113704813728135124985435964535292912589766331913835320413004824402687506073585488790710528541576183376788659674143928825180806547890463863969447809542421788987475666461624777442662427076104092289528603071977076577336624753809080878262588032053047236376416128485918355243377687501543705745139990738787312138335940306691344598564456449147356149041260052303721577794426638530051910769330003789368700210203883274013294591967326434895975859817356734445025724827599953536094553525938412422893908225175268945630354375100265372494022224552423699892974736968175610179819239762741462319251066603151031563653615884357484698818466918935546982093483776349244399546098147871416269425807157528672364311123253726603312432915154818518158653058072662339463785589903473913555646394189303414659949522770951970027463655652359613168426020740496592877499333271322713637736249824630944578945450402596334751008135644679277737066337631901992403345421413185378533379964770407550277404086618304816875223994239630953828589959694096418762830161757717886318756374363732360615680774145516927072095816366641863434615343292661904445892921143400718737870541053958942342082743111538742328186094091981550301997098891345914223577785038592362158956760211477025844267043846152280220788701975709575529443787219715219763092674330808755670583659699590679399435156287743636924559545648874372259876728575242590204238849984031929369772142437542476879534536734632271343362492418512482666724840811900216026561751475065088531305454916827466690786559616693161313640592484638256550262407695219626133174198853516896017362106817215515798468027926059240531896561729680359225089456729071665712437331308519354739833167988677990502137972578368631222350384433303084992909758212665533342182345871220440513355868567951029676906018763851873327433846659715955424953991943916187546660052168031458273275824234757448884048562958510441869747201917122061210124158772575030332883766344742329604026537602268536415696925086380136574497356864521986715194673515336481856578392483242721687146847723707219436725057960381498805295693080019917669320108548018532408427883210973719714041678534488076788544798223246744403477729629659207914198942243972903649171388881601265701145221381227891378291481860715760046420074410272742018756154290903355557928584912373565497466174432098769693744225677958551668137993214476035368681305600453165439855716646948221267007810110425132016842478340181636737492730195179441182860149768680446113316444393939923950903396446401357799628195318285520480657046103546011389413582323076260568029196947441161100473355137450471649861029352829781819412324859551494027711311026652579786364966345735256057857904755794856680032983885405274494007608110336179790992780216217539239081194219805387832852868454789305374465815628965272666966718486571027786542890543017772708291545041724710016667363695236412315649290877828905416046556030590463955553558507075311291121330173878076278516688155382974963828338270204038104877994577931628473760287059622347775737766738152635779596731942337518263337887953808922020102853918845513553824631308215325125304232858174515811444964226674761057404469812030239034304948035065781660164806545392331633276501645313435685044363158156904055677991941134179551014460019521852652949246192269631658570482813391399389955379102356305564625151746436621202684049794968050423933312288632872801205748840556342984697500194057539579626718210586541530472570876289568754679961051742683936672559510004585299097710144987872571311710816681074614796478045100138081650393948255970411396879318549257876917355217475954510646309993515222301829041900974165784815449065960051140601150662508429316727842612492153991665109799121401828944923056593488649430316729460587330102780186266728057074792712325078660567545396853828433166096026645628741079031557790933881591058411863381815503956050580172124317774001355087485933027925057462060361740132816645644604518917737587682789512221312043943444589880491510547504164512808822178669888230587878078823068823726641203096731684377852038336818772740492207604563515052366793599535910186442000244952829294684968495967862959614461543054291370768307565671602547095436250582140523091203359530597970332346766957672620398988582152977077022316337592260210962756277078073511390746912075601684418529399814457429315338965946344455666640982681244469843195068551630512060189894896584527362236857596371803343181408405136543208003976207281762837414085022547267828693879599241587973105334261760186253672984570769465831662244212021029442262938930707083180963276492387954805932465067937893997795387132785610898757888178013805854031466025603356916127141960626107299826035058819467976783229547888101080149741864866251794404702591809956142989120884761994369253555127277750898961577530074687241732849428493614483628311805133350710731636468510206994282022254520635168761612590617648750108364103869897603942613539925102603304774525828624871492053578051147284470275669567455283882555797556282827955193259150403817852353414599032918735178645097454505025586903496177186686837241104406957966181093581950854286742833490079487310324294311232009384849481279501626113517713761010956021909267127908175853972337342029685443174013295168093628085040185163002776143041812108622290176560424662024743406703126926401316477410810189165911214146295965862961372807155379907053061848543382043829477774627496335922453332010615073254681612923336390884481430172930097607221929828785136438790118429547029373250798219946468288106600821321959806941349134499813576776515786261584983451375359915505533292031206049913339073616877158711247756646747839243294445519907539813893309913352446072611831457126408695415391791031065553905717440499513744618280022951940518181050090466855969742687128257973201841031222922976097539595809014110666160796688740605919145433460310218840919273047463570876614471585049118964529477736660338727775492145798709727068125880210635632640366299831751937936430256931389500278480445004397237253686455975835197014299568896921285209502180933456626572045403903212240621915024623554775858712923025151444050416051486858287381879478834913123563284134917826371620873198892342941296002520759885699358418337638465387778333958865131516574509185148130120576211510631757274693336849815455880225892830903159930027386654025796615728311983331736972942021511284966901944189534599025690308798292509678312978804368175951115158015285815701297073241525533230828595722092039445195472553612592248020747542865980203947777499224084965351772469359998889105532448774137247281199177934580199740132627280867075691269374036975795482755089181687530931506284690525913602024747058900259473435445734374891609880521089333049675234519188678728370281715747637168287874530007997078438995324547827972946670133603433572054879417031530919943625636087320332372020403432929656816990549515543662694742431056054878485810552038682321998505647224344249498537201232915596425836493886271381124764348592254634291057730741903540616525051366719066865761415419740319212636016492353743309774144111041687373442560942728807110951296615959690863925809891921868581783333598330496241787250606190697900697768720801878758720883357014809628648440520360159352866428453539117034536782716291120097535432152701850358425027712468517466226258244339562093436154958656939834624008585592432606232673320613326514384381823242138697622360907338979642926025030755899051154236717888389866412987786803729021846957388343226259005283543967229275297159184658390466623777449633223279852134350753223130321665709181784573363478822065373129802283307957363189031254993185918062645566252875937782715891600292902887368918005115660974339244030951492568695491856486172008082202520638786476332795781388423413193936297121219550843505211167168173500720430752181928383342411091193010388195808065789116111225051485409445630776551918710457221850171484001769070194080797670005358810930575324866246259154254829105147237121753089671270414575768676559155713767311408985974113714908056133059580925339081588805358011565858538036027574340020027703944141806810363888993073516501277146631767185181787495028708236720394565529418401055047545762157828943574124819087580564962896634482038284289293186282882971199819840117674718069708581994539210562972227494551765532015564488905179813252553335827021384133614534375902085548354441048230741557182916504112282271540533419173454340217399271409247302753732689228891657382782143603253986859661246855500098138208710866213158214747191203244150934238410273659950754219796777368072343463027371339322291022832416246865845727552838153530285037989748139578168563688301102609689674390036088937304269143705078569269205251070809379019744493977215530173003503952424451930863133862217006378021190758622589549075619335909061242173862951185848263602361641483715409737850040187128395901592002948281511138723793258433481854346986400029085620064664417340553447539162163119233454047408943713377009195687056209263493155600632657324962146194083273353397053752090813383227062062686666044686003568633266664908480508484700761905089955445502175251402418577402293685667885635529405367413206675348784094871493418566746105963113486999691259642913801520945021314961840684466823824923697130527105066369615862893513536707305046173502760625826246219611571791262736990183521507425368846633416492671057554344684905686396976899087125346797549089793810147036585461071850347353803410679777043652500955957049869520978212361439283316492620318067977070653257274545181370316750564661387310977896613939137293764700561866828343672823431130225943938717035838328635936767648147967838716795154004217865719430527302274540398761952116459258062648874111778554892566197031542930592327731623817071542237436466416042341117988614229751540599719220689971930683596869414704047034621272980332775677050689095985009432200044745516035521035474270506333736986328318506931046157451179444085164495914423177323294820455090111250689873754775456810689634295663467931811644060680320923038600246556169995373556752761690856862141811376927941328445955193978376590509941621879897279562632268998152537227038394873915405481911292551799540261102942244298311738679204087169985920008578348753286950715937453468628601804417299779107204754713217041697030826991230193536315497681958563174023881713293971789847654499337768744490357393713778514079024287396802561216155757478345593538920168174697419905191100620112130096942252838840437143904751537042456779529612349260769075118544860735917004845532567870896804957410616878807732048337072091858156573342043094589795102855537938179673632764096645953687074299911489799363851885394826561184622923224663959598101417297264448406121659569071794410645558003715855860165249428516213274477504641784447558843894243294278516324496737447757408259636574772379413752237265094937259975198321635859415466533655229279337554299521516026278299804842565384318938958205725022456774397796641358863400209877721370120730891276251544104837806859801277806830199363151352266782721684855652461400015992638854004181688094018436284271983560706609585601028883008402386194859418123936585586453356869001982728775065636391724261948093590210318490325602182504182796532217868932843093420020058449829935945571014035334003455721904602182524885597728277289018620240867508144502128698940286642134009697186876252620846990022407313089340907451648164399016365268405357444916414861920522697016810609814232066640317951143111522877592014903650102005391826461317333914777538486519734512975711010040926622802648342776658527516234706815133214020376281747419846479033222039147122787249465841236720675337691293893142892058496079893905430199349571093363820523166339734910426298299659687843952033900581389212928732494397145476706531464089504869203409466319728903944553693298915517125652247018091207429393078225929948401813795114444148016039924420041361262863670472636056888509269939941041274371493167084122497229971387448580945645355847449852159718515703525995683487839996122206908716515896011003109531875884237295761613043839365192096972086655477770064995723925963441433815726072379150521844729523806137232629096832693597204943337081360914223980109367842213580658516713094209160977630206287776181144193661582599686025927453470428164403685604443190576298041713386646387384096194966671364334320648528916830533577995515329456993424658271626575811052092328752406120719869876937829677483876258076588546690350873051356133360682889641288440421175072089379715098496722905232650733272022898743442609142209182199607118373505249251606427957013576674220707886486396598403896175479728252428683604446613484608178474556618058137073611756479589087910283691411416330679713832728324382903263974670598298336388085794545696292378460914263774150955012340195024519582348275883556907845445266978631196639147074672810867530874308367480007068142444647144519207764099873032930467178862913037766734830495809075055760671569642089633140250625800659130313779606051876189826379084289576291176008499238917084847519083089900813593786494669151546632706092380108231428105575687363140789853915114274203830757148615754959400084384513229576842034889165606600508889549444795243091637670155611139426399517504725993562100311827025391574794424723516632645251517596218262679649481225916477835831729193307526418369237146168907664437772694562276010781198963340759060616563191073603311085893524386191740804258167617007459946749823764929548433841634502697014493846082972469912537187775470772905959818808833631554549663667507472908353641848741575715952727352797086577563497337302012949108759849449108664302144965773044725940518168882136428832264306288411761861229135034184853472013162785051660702823897781528511995244653406783763565007836016672057841999238079372947173152611396025783428582564532237391465797386184877382436119895413988860668425901323445414666581968021374821416206117768201927128105005134107679525223882062717851745433267205860207952051601037514223688243538888566673234284888245620983064435020362759376314796172246546892906902324766081574671702585618575849895493028534963977924131303102496819621112792937120081331334694235008934095892774220129305080004336795810355683288997673668732739110315816139189629535988939175120887509633861647226972515644491503618200890806962975340995172836837879117838014522087105248057436017493008560622797393363024209027962689989160837282615004405353317815405661454162083906837231044959633040827831579155437784720773904671364804454874983956396450138259013869590431901776295114651929920524663692674317321707041041480077666378871052225979533992596079601917012668504156056382034260116179936041547614634131595917483789628983082499596185459464880547048752734672970609979017951876099209767668460852723975435944888762209056375219612335973631516974135693901317593466097298981280539406406453376134090270171626039158397243392031252345297577033738851559085272901446257648734262735275665453895141291099918146957073325593308372949416561187995557016686829213671988164288514286630782592221981220954221303050993298738113614925597988356652887818378517138798226954889209184662940597196657071129920107034698050156423309011254679864071122405408455922344483164772094660233720931523430971060439355920967793340347384217286954443763007801643398416839959686161014163229512158667868808816790202702208118025290154896255083846975626833622965042319436618040487858483570757217206268435021696512517381216410072571325794076694008082236408701173326576094919496187437727135838133554238041961951883977377929471285785858784528972686168500760478389618336008031972702555179648079664345929355095776082092462082014238895508097336586207663171533876994114537465067517308490016345615707896416259843992870088097254796379246103498778146309188362193897850187227110467000274218875722461783296025677750379207336197992747085941944233875437492418071384417456719491019240942511004452845430295049555045821442994993644607162125234280014180551664949977168215212629864825847012543669062504827051671956802927105092506441184934476867300843222574180659306436893728967885507643369604496897458893697595822027667494983921574131928503446134286992917478357129118892686068134530935361319633297668121174649697103775315077926500620054786836017097453888041298214175283017037509828672995451505808144087231230328322513711686518664446962913561364100694198441454778224028636920393318422939585077982441563997281266702795178032535974505476919807406950134492797014705910497069507241468301801556904298400187609728947792010641917387815000652678845309790166985753601960467565564601765108580056970290138150377030155720487900986404926634209292365014519132119407133310622584069484660661293006711981754047946740975841231544483360505045362630306042900589970530160913817055073177962784588751644838708901637657780526171643201483526700351673213980296290142630458270475734495746220464511891450827990034720701124655819146830356181702786439586889298379659566414246035813539566615583201906927641252962860815877646872453757201007452612719459824852247580795226024111750828632113428174762792931613421436672740295793736820349716722445451267572209087268479097196282564863672934814236222850516427254666449486541096726809749520402711258358426198170005656450764749864504852110574498520123410415028758695431979022825060724251484605485330906905337944001593413731185790955929772366339178827520291072248336866099586562002176186992589068715769215384400782208037151467289944647273619566965802219595158256629044014493232437478892957222060648344389670675969002592694468589519802362416602225226315249827577870709385497648842016139108601370977579373918963098187793118001965837781530177535827857282019121681895338039007963877759117253497070519119456591075326174320282450417658622111002220858504802642717603252381628494267617789526512122909504216984304579742630965075514636297595133994495046714509363068279673379049082460430913630170526386283183498734139013067338235880323677516819329675931886358785796822570291722628784088283165525913764937249316138635456409021430371953301446125236850942134076746520579042476947667301744284935531617564166756370228551063787354756252834600748641027754542018344525774487229680149327773552257928486787921889974235710023901979752940762997403111465181977653638777345752769688602962584950137932461912250775308732609539465928314827163710095884962355622988643545145580520359981892146272827332260833356569362068305838166849199579712546063777172118827222871456321044554963589894389119358049139320410922270778861367466155684755864433311685322439648766100077026650268481324971747270701597976658468286180582666448088949796661489072739169790576731953328441631389810635886906195916081202321822336427853191065084628161677897397489581549554980461394859371789745936266240568697435277207714545669673802582081470574529334602860959758773434181201187318006497054294970210767297376210928321014350850020398909628544839513489507271610247526794764963674479694977512938377610425566103078372328403757025405265150737066407885705788280391578886758343507308197518640945781792188626106611429123198154728717416282084164064791767524359027896993014773015134147415619954356747970542084490163128037750460116404626238716332951329389716370392215044981786925720593524773735513539597248635665946139356947467865760809543485805946958812831745635681393056555597766967011493715354760608750492913249018078071793928824544476170345769320415127359320220134053797139803098747117565251649333158839911514273664788372595919154248573736323843452478584124688058506891196935177152414749896466752921038318903717598409485006753894043253973843844530556754437362028955454183882482136019292108547217304933319839823948774083462403083570401083173477490930965495347288715971059866819927245333012938089658352996092462070968744046648510089329592228666797513097679572315857468968369784460288084914875636417548758550133717227782451866426596263220820677553040115986825551277003368726558118361871336778980294500569149198790287028920866296574035337164016106967038536313805522375724671491589457412362125925205170219439169986728660735363361590834677551589399133186271880518670125828405258647747099708145279832007069175602543775697970275187670364606160323060899850048977540668537794187144470776165421987018074111088615142993285831976421699680152315123312456675354558229212732294782623419456190245631594537656116600404122701680181322521877509910918068877258874530812652967490300781666447019713032779757396143035087632024206258827927047057687031055943493692474066458132979805439880566089702420149652303640793134558342588090515150714434358959809096801918454750621027744115841077409826757226153826006898734257930510888741332639030858492573901297384428222173508288996156941969434275878788731288305468396156453864179747125247968021191557806794417300952254614387597199830599819741334202056575893821360098592390503842542417331420665281739544920818751347070122233607013173544186371788728518922490158711423898072833003547059637586816554713413235535617491756478960220071788752308143455340130720480572152808310845686702587620702930938314202245002337100759507615547988514931987321930823774241740307072848083128883820301998516835615404910941282324320877952548106624291120123243556037687289767007302167430191442582219839269760625223385682683197535897152128534401947584258759890244013093257335966927628383613026980105579560431079462319068704645554750757670155023371079812335525010418275211824401992398854386075074586311065166620992231077905705044802995761423245640424154112378937955655438537040142406179820412838560170489317269281870543122344885705047796556486457491134321741293333991446650804814374802318967283506201906360726709469699469028860471251318237317783727900956930023417417418462358145946915214118927656215473831892416878685960219726617176240343607866010994911414350057031204163634714373137406486046619243583514808317801287494266148131808918086944920011199855675758300478646350468038030601377154686696971124899762388426515641632181902677693791668419210397038619724418702649871099961411345304175642239340383228678566694853117758236440306724356680128955647338525847163750228236450082848649325617896644295729954835738585887683116903050258934755017466733692262915982202967053049531271194920556052755329697778018568289381733014260725005578191581403806858436035262418726903274869395090318226069747338223806290345039809408184334087621373606457767016402866468183208976493503331695854870498179540405917475030097985626675281187146995267996899668282459076772358886542807542735397311939020990010474835957863644787729630210123219278496542227991378516022949498063316929718736322926332573918582859416445280270265119925585348981106961955813164515777377283714255915358051320787239460299771303860046628284514696379780249404284887283623893483079636938111700677408930034527137909031871509816994224625304211869054878292784335005126992850294582817409724083062191378330593715677745239077824447149166227290488412511463847653510972518945708033275872181895631918839295979073740200593826273552806715446024851751765489095084721846316426239846936657700255986780030653808545948809760317339122125208536258714820831444233801447798259831029383688514711885045349395301385071018586038110204685512558904952508010638764468189875083533127881004545198534337291819633225947247842278443219005798863793507601750634920648350905506076596284588691004437559789205163605229098686793830116111809138432740313174790309332484393399912101739591379419981253515997310610705505770941586353909829632599507168670736514595187646986932453718438325461854692384686765205083371200754235890772335983464277993835253604535374219231411455311667672921326079482724196471776173682124121752307332005227116886454682884914023463728311016303155076363155661447238861797074093789056640833635325603507484924033901076302853533388161311297077634806262381753532786483230633310460046556344683919483723949434003131111549460805617183509675750902697744089483047399370482760616746701096026292798513799777966078011021551709245389644064796757433807408331147339265113955334187088260424798599247487760670850956855761555650775837994863348225284126090666172936817757957365470231205593980958420369604562984888716973879094663363921188415600405628898894028827821047916539269394631371919708202391091281166851123815653027516535719123532444199882382246476209762597344077882071607841967451568163525238400847321205459449421559677765298903113549734487289272887976988678566683999749612426834401471564416945716419427325458123119744382179386763063404474503853261732966424799466968382324530859923646461120147013801258710058919655217615755959378226249859134198019456192266576362155500419404484890655928721719966043646536109163372673728773810422359880266210179724481939547125043661670113690730278999711083972441749688085235397454061569462153910998818054592217970137853705369285830584646083765556351048833824148287287607080564297210284805183813930352601120910513922483519570969097512225621768420578857994879039995900588610901700279309764491047406534742860233102031354230232933415226009284705590695890241397409417048417796637447170649969012775679313999921177992926657612991686845903958442517899523650372144431581917797976308303184380550755384613483656390728821216339478514609984178113242063600400367872109880498885288433661250099462235860944527559708650966445856871190054728285858922099286107270542330159258069750659597530881095777261769478321021840219048171733156270218307227475375609073324515419600444056351532223871929773189745831801285263558793122053387557442821505622989312680615193881071381828255933497680868250393156885214045953192979539956048264730478544750418842273434725256649884291640429253441849668019127240779618595069340747370120881875405417984618483536743078354005274198936059360427614964295320566366940400971939822604780490891879074912149703114557447522726411748765037384622736883793102149543603366863295295360268527441624594614494474043066431033999206332146521246961849987499304308990452174005500890538370830538507151219768713955519599976375814465690612661775669007544117044956935602671754007950075773908318580196027805152049904077372428095893102789149720137805135534463054115343630990175378728262425807621203480074144412923030302163716551809076573356757815301197777153508991353029685342890690701544084294976458477757652994534692093851274915282920839046905669267282797720160703753846277542283221387652369985243189994139173660952802391974067511805523753089823270008328327970937805968236217004811066172019429106325549937486341637964858396431145623976667699769208657663101089012329760867168827649407659093695925050258550319059639854096864878501948432989809741237893151159789008338058413428122272474606652373074903899200363136883549252054652323001600064706684110158018073271454291738914021036667910399977955727990496541599220993054397431223187894016052701448955051696256636475846865666979246506526141888600757393094157251186378978400692726407260721449625553022037093195447973182406263173692812758581013932734693573334765348910170575974097332616714801341719333464079972025609703748450904583704036840180616999542238626000681713195077660247074915566188028646022609285279348048729491860577735910605571932930872261439778753082510012254198494120769051580991513807881590147270278252450545528058905530260317969567740465707531895029091365776995971360985866838334942797726689249946574144172789394516981607928188079831356367749578129248701600902727242458552828466687485785510506403729833762456567997713358129857992917995403514311359325254132703249107147933031641975614381028895706447802344222954277330098642273364277274034125131398775040300753953549237699702501199187311316285327643469689819919504503584435135692665649872361396937460107065477401302138745736014501038788107002334865784190316457884236484717443881419953264348367801474370675247324046610991600169284603241352692188914186742370769141025752906661173678152712200382598811660942272348312853030072217617922704803502898332634055559546640265436976327748194351560523826721050248406921113339996536016404077632107536693301246198349960918830153660474535944766509486641725859631409582514053797224071167959814564081796436649592793287728612405802592615126122160048647733305609174971595239015862982831619806553673428275669406077718937800854407208775376005428000435067811828272258421191475814220738172628752333100315830238147276048940080171932548808496796336218504904234775634449349031790850503954763303065810733742528807673794652347683186969992280199675648361499984133747498640499250573282393808590334473478538327691099558111722067886773208096527487214188762437202154631752494154784968251367680529184862294545681656346457794484350282400218870661090055565701166215329986100907511943323198892815345046761967357727347016275983202953125325586592257790811533922277288666191831878517937229444170778909877690608374240687598816710652243395660218913663002507266320279713264762503710453729487301449660313472011977279395152446773905137536234723110935346157655122815151466725007056165314899489281872333657167210638490354271022412687410454947948395957401195281124694410676892980213532054392459899951377916437998144910201796351690059831776177339716009265013884993303097498926286795094231532999817100382524129498292355311438572453518510612504510148733854254299724918703298860014841188381823255801381495059807915273233094480126903614962027239967324120018107048823738609831814153431583077382535137332982918710039036659185588788774373171384854159536162776873811566825022995498863370977589499821994315298742200490253541108591939210807089366910078082254407955668100374433632330471484059453928212308670944123139597089271269131040209157553415528728290256520437010233078308283694667249280838663007427047092406644087079717100024265288383958244882998430837876982054956792395268436960373519099188242871887415834070260109885940825515952060386199802675373078653163796829123505773542873727507909339203750952434904812380825765938349217810622649283136747178380427105340408316026429181424268200774684703567737218082800260373853549186011276800350221192894092000486030493317898643469596580208276455402454522716771083519102811284202558894358783727988047731019338958986051041807466533768665267571236466601371359431899614032111856125392209384412081960591915481666198189949836983738729556384098210423368815847302270251904069934339037705745153028385250561146894929048425081374888722286266426985990326484350680203764469053480446297476383100282250722668896037607739017788824022887884023659982943921453706419609519184589387425002916667277237156220766118408350900727968244378256039933184432693344780387841185410272314513290638236694514272598023651890719393529797493487000014321099984293927555674041840793274810345369124822265279875911167044776473717444590274492766659966330459544716258471512412266339142728545654751525865609369786450217239150173084110274308325487296281128496326939371460907021558176978846028617465358779258029518745445378553944669369035888064346376747886485718809514770079379220806851149531757875399565335355499164343664343282356578916520478155807111901634651501701032252072899325777401665729971072725555030935082440961286077894396321248322039935957348859419884935765497583850267599372444645910120614435907115192587576852410798301369256988934251260544077877976102630832664241709787440706984558972678182531638757195958088150214157471337900963112820323150434306329266548800045630226304017563713886190829431765793717288992933724008330788673746761700341116746189364789703838727106319106490623105620737186923671590876296665398882264186530680960091109457471937421289243458193629605025995667778552888738993931035453395305801722062485467522175283413148539173388329435272035816191572443874109289687226974851672255743788829743628039023796089714789113728684780564077643164136174883539804856329119756254440057616348670592584671737724484013406895369859403068818618437524061589380979357988137258713607068794532317918567434091303797141368820502131920547010549205646298593948558883692380052102582539081866886141759418567910665704361676854721985436144947540700883560858612937105491317579297587739997585874702529059853038696519781353763934319739568093573242494223731756287034826539333888591981726507287118703303233077184707419599582672633341551960499335404919303628151896980935170074105074543809524777194447272502938035032570693495129018443989022056933495972028773797357464117960900263831195508720845617772373649888379760303089565089957419651401887414234456778187593967553738499323322915895239902663949851870862423287166720132584504960283572385667822481418830754854261131568046109708111907110769968434091495022102232240183358590866360397515042272768194568581430956199326928155899527654314830692971497695165487554801573300461125404085552015854458325602375858178958837390037760496325855991696712742297730586458109098761274072778484516750261718017117125009416063753627734778931830465917859020254144340557049524402070371474638194756293813002527570032608881576252063994786566246862573674524903771035593126640643897869248171097006847778727429823100184974681881987750163817098055993789367529910961491978905841212637648267048574051025320767036344578803484819702794449651665448292315250293249163739697123020594762845539200242200656622036339275970978040184207725962293585048760083365106486428600829432220311334183072010725757310017625887599359784198158348440961821887820373349058079491502872596575984101714974109831573092108723475206557125271329525642751067012474405394207589597613960017752456021336124928983609276410344526448558959196842776981389842498868068334267636235828249800926417792123779325477758035164695677057178478509534001280089809253023266340601344936223522355718164423042032450141102996372598298420014211988670027972917636333981323037982760547241456948247976734919758398278941411471568573349189798729409276921142187934923603124686246001564646460456034317736460334500342724254665338798051860154880105660674554760594948086829327669475658453284697544845097558502663896129813178950953377784255943452528891248636085764884348025326387123362679208715812868383707596064181678787401601639210260145798482910008758544109523525685427360785779149432791344632213011642709586425923705972240506014441421563608883828406619938306310679340855976048197477883486190829188288958357161149815822634814833697994123740572347528900475365578120793010699349096192243774903747002970669646898055233100457695462235210644483973475064988681364612694877821538215186170298245302630069759233055045358108992933449245996724918286384263797429211952525773997488992342053179113242372759291737812757444959607713196562306127680936877331768296615858567317648525451376441169741687546990851289852896323879185185784283976629872079701417721524223578670760495323972847618538081377188003936416079305720449101300855257236910903627267166879197191755527121927263526072167409785667462822897066729821729495527510466389527400418647966892089982823778855956320804329782157028848954102084322720978688507514061809893173372982045862808101263603861008514579520515624230171808761894708755647133216537977509718535061497534712652516034559223299169400576323642401786462005866658316280035053710674142618318961240300720508410542729766986637305194861782008416209904943541035121285441755296386591642990585276041068246638603948198793245959015320409199461306196604075390822946697013977651383676027109543672809627997739315573148442493437398894463003442063280232541116271809994611451684317629452044905969600414100403427757410660563595984112289182211475260435746477726459036408699122704789882981959095846732741252170434470898062130042440025709889842497417633751149980863852925944315035026158946850518755841253275010429932787889535802858319083236357923506819547392348796043382756447908674089657653159006823400660011409582817487715352487859363945387845604764976823782257184843961399659298711530878361188069838622830375908021420348926780085799283274963331229429782250474533008106822160377750788614486316264977901536430412970532271839032622018400444651193667168867221691761359805554262533343155122855472980835067461358463053650573505762734918181479979566159624108292595010053371445684352232567830520106233512815545808884542022170376483282293898930902038861504475165645360595275090852434961028634177897923285167642603268615606068943678150146366920035594157740538497649286686641057590628595668745623971644459891902698267463588315444360733612784661260192738806623258537972618860617692881729438639828452130667337588550886655013046079857422871617273856121495637973560776369408963542881528685455358928723096390610441315643289405425623336592052126044628646813645067566361730469422299286161843921832288733661054131278919446865300518803365443373465912748501676982637328345630283578154757096065457478082497422368379472183716738757547324659705517533029969826153943096656985897154082027703793335950523197604782810472253331026687573957063770423973456995161165473545321101954661263543097520441591482255934482144861223558113258659903130271335031876291271179841933745814454045110794528055818050546577652475828401031120598329748479526135705691200394008603939846372433568374213487955855013455221092189675609952735504150450916406927176056794626033871588407454573373705579302028238710313672406038419202439031209647021390474213083670382890161837908207359781877065569114289615966855741578738301740925696316243561042980622717106640325770881612796576574053707296227024253362905512412425971866193937836484869777519453657690920098994598257841685258814689832125281804868504644186292887076526995227644164876202286377771658381863300232074038374635611352624388466159160262203494139051268409681333189279797184634767202667199140861813530125666269157271234453720393389437522422618466566382053622339761009660588353926750592748083222390124644017494860734063714848263348187006947243257415553139096713943633001486338930479578172145589017390326562357701008149959271243535113819009714189968115979658127284176294880083274122934226020914207223022063450342496262241346636808539712220816109233143152643230185106446996213557899972871586683835931996774534115565257866240327154938802998463028141343302550548561766202047513447124407537883542507877477998111604201102968780519691205391963922805316392276724356350381651587844490505180498497766509324668296706601778966896544256470563605041678667152397562852115785371701250007814120016880378916422356352127180900361549693610052512206960644737815075805203930298026228697172488623724308980759918036344013389752763499107492816532822189663545262916613503767021793368291442493942292083646400192237378534522236274233266728629625081129048852177424505578155941014702352530447625289328567385799687575093083191693080128312484560387783150918429923946149168296425599895064696922656520484064119505912330261636223576245487274943134264076130407339366227578744880978472569749595204640875670358714917922803887021127971051411968988278519708069916973157436300986867816737256061380912420227488853618057561459912053817254631794230953301836596583078111394225936277354521797853936554277189825035315198085745625249129392168945432523769119805336247178560576748941746538504603867301569467867840829650483573157003072767534306215046815320266970151497476302486538143580005778452371098997715189420685890844708848232728327372896665431116004233451038087268403283226693268291684844554140204506242663983364488506906010023832822325662003535466625333674460911034793309122384646166974766429038166903277197864323626781284108727862520254093283869364132374138880148629104628939311161884025859150174427325455518619024144916932470156800653685025997331421321206554086448233568101744106723716389286748112939392726282441649719015393386535360721644082138566060402022975223437498272786730506091799505115601961303449899189873723051506636156906963045958724056842564857190382183174698527763628653242815070473319722227656650552322481977349263089438002600784052882608492605336324530707273353582291405345166402239710865678547183475384285187931977288441203727899896102043567676608044716823954205572838306787097724622800403160434452144573084103938123552672490502425089501394928486451166592026849402107749166642337197002567965280095384278928077039270129964160638212757319736656633455800425361094100771635477627336595570870211958769039995462593136363373847386632295425586475561139183112392655538066054588482870351459194035133811297862334782967133607307910571980087818676107619600212611504020553486258551336479134310643722733937366944874027353338078631216179813549000152466093547262174303687914751263980063010374800526380026394560950351657539454469835768554516802315244237049090153882269742939651287257989440498672327564969515649408703368148985065437486754274774779042009835121375964536669047899230179051343019339523678917598350555048115850992468347344511586491361760962612146054467838431846450160070071400688631619906184247918665849004360254553100619303794493017533377727152212381573049664252643287413718340830052031833099183560510275639111594646546722022040890387956584825097035702261852037788617409182626799561798112896172373393022265104190869775410844393055361849726962675043676542690586646464654753156061738444714900880611082980309884212910124992754705482354858478196743495032642062886582981461621607885111585370759185122032939828420170524235492908794991657858695243458042838452231680830562088684929024075925337605006490803577570135668096769940056973374532792458149716795982754613429982022454385040215468548576186905054370215283459378301437005533512547869316667510510812190672694001260830206572471353963103484824571277790737859835154813527150936964716827273617023235079002297056547264259226073646929175240630609522144422041692802874535511694675920241710836437443809117410446460361410438631989495864403741202992420190882770341798792944429714529514433647769132361490520737998509558810609885949305835358259396432906479379817061723694132395787807798377629257410305874115249436320582108060069643734121906962791441990575988333418307383299038156025137096420852913653493578246209141768114072787616476115921217427382800183265359439891649632470703788451577767998345285205878156188860657907855395013340900914627118029665883286360185240031161828528290611642798282382664865719264818641069023255392652244905310815279516297722569766642548786884277584651093889450158095442620561322351400278378126565588304007064792907793651324504599060245802496922572759911866415090388017834063148041030631462522066746226359077184076913233040576123644362525154997293114782297885564296064392556938134941269602771610658680433701544013181875842897773944255685085918611444794885936963067780908637002339614356422273843223140525322043615647922438595938131863902229839203026005372041969518359070240320878406542146834257392896331672522559128121322075741382996313865650437537665408818412427500665500982443157215855655398807433966025681606240886396534621633084111765773782111363300950602637997326064749689377756180345734058164652200924145579217074144036392395148794299641318953843483842173009447084874124163207752794633444390171166930820199841819391664464208599141398353465918897309258349133370410839399131822766575458159018696683663294223780253892059740765339303980057392297452549349486474161613748353298629929091403993937218607589184338781387163842962550222366854624846150887192455234202410234457042422644830742918913056085537018450647171204363107593514439774979760429479722373164928509767208793006179664375804775368413457567191263437052532917511603938487625749321093331320152709967560527069735774254633452915502315136239712946118413811960252681677198220504308506223276791198417108368591876926992907823417503811482079773923230940997715484243227213764396099655607520111176244233363066150745124732188344461726290501462996374645812202067076571613173750928917452035875392006163159304209625592244131189457711260240157051969715038337531430099623515562717742355391795689537613412173503661543175615447693833562558481455639483871098406046605177886392384816973250238672640446211014729148295403079165440435081211524725361225855705264618809744003028201812819009938750833336140069271779750554778791838780311379747858274297079531963990025108218217901162373959061453943174246484360976689432549337349172275461603760880197384069269187629249298004862563956506850142734506862153042196800744409332451607122624315706902759318295937042568526566248495731859009214653602354928466940171864718526987042632899466412432593307092926218754133642883978377316223001959105167298159612607382352193056890625660886012528105147322488924198335472527921475562730565963763034043269585843377088848501401421010197983222775936898852474985171775476182608303126777896190498722020690052185336638058837434662558697245672306520415524411719237009679050098194810968569467720861470014893672755355791982335523066380888272007349412664219989543814581335888455804680260977849663672584645170157345732102451859339106649900364239337229923241627613428708833201977172217026358178540029858616957183455365847560584737323293006139586067471598271733731053096682865934226731739911692082577702267187830470641150320047905999078664053010448961842170020023325037124924202012289917187712773648132843506984241894871428115356196555078838585945545777389552627070605661023774902652207110076656814289659311095101852293522872555655932108995339426734943180593047018105372131219026905244028063200325450525679597473737567046125243402550969223942687400532096702046872687538975975704372699629315087169154298936397314215182212015982844545267694971275402334113884943235546252149913541471672887580970909957115052185484560123972561670052300583163861160850673745494517850754722621604827072374765188606461517250288098169760351106362080276140905227028554509931151089983514244379394751264647631492152647095945551416776106627424712884888332984950939206074746194487107588792520846682891111213170768275411661460406810019923645556568864914539439016107167918638163499820766809674399255854445084001323301572344852663612204623215642103978857786957115758900516252606541064321019896612409164175514425725376087217824543214568802253104647617700074637164033987199071367901205921999678598004371151262672355911978340494423761126358876052297419818364910225291194318282784522903867115814771959912898507491147632752776447324595767889318567841106679764075626442346845056368425663914383882788819420119458231008888047390232339191132629538150261948761355462014422855728779776416030420529087595909762720253450576412365019773400996003104683128589568711117844753971538483304204912610120657752432844230871876288887390868099002599325909071789414462227290441924752325140928393099812950658339832749068627640945094863300081410248318938982322351474525684279285986888399564013505384218934566855268551975662279444404562279595879969002928405040290852896008586577281510401129007759026988424352564135318117862120914751125299431628114695283698098160224766708421523736183466338050062144466033468600226171302247618942181634681374850662693134700440307794713803625812992503245973051835868493937292135862098778975707065903406239375445077240834884898436608102262877463930003115656171581703305430589116080336924726108151645382003247782447300322849295841335232542097140972663255083165107768666808465181716215702477736729734373166718312313538244948602004873077675111379922835170570999841446720910332404704763399808523764838006975924415702521001318611837719928291249810129124975423162208909304333082512593346305185244172779119908813652063804323204069239589896417619520491486476101911633464255427507430786998096242843847947675825564711721632193047621260998594224317303653799820411711501672818671622146913116438869057135128129437528538674870913308465287287814216476331961750578545928673522908837520980268267918205495160138658692503966629949984209957740661855424707488311586545598570101545414243909514664518297223632776292343902839453637742315148096531927339717426549007589155574257437424705153783908904160780353311579409532482292584913837527119267197303939523623442087293302217952871603531052326171891856303021560565766411384219828153157058686963226740375466288343496455388066480553584377301518977159012224685500852935033580014928860515750696040530631866466707992084239053269540491246688436485251297648917075054893573410408428028044788878687644994708981140006847941448473489307566716797551829121085583250620502331198907466911906177895260167243770461351734401143945431808018344837303220271054721833905908939723614031419143762212529164889828181864244086995344772108838580639139978420046742013205698690607248893875677364705712201596678131411027649477776409553515044139600457749712138093525304621368316969684943378419963954340991350341191148507029046471541488736574303164021355639916634949718853960563515218718403210151717844646866042489732306893927908801060580091064272054515652744186678033301139953070325474654786874937636764343164597823087045103179750311048551919747483332158888598327330262977800574346423721083134853728274899228750024025258072786268372696134171768986259669148988492665873997775392034205082793093915597298594614293370263890689057279434530089458634112547710154082847604174867476198897256091020999176182197367315289125903573824106748606921519240875794834218841498677058634188288110776461105793825759126364483202624590009462433679169747923354463870972530233430918268717560523258779221613976842573027848925471233752142082628000475913901083453171709406507029794866574253899166848939925131366632017158116667346631997470977841449237770072875648460305618729288552097160634183611500515194856738519398408062060554267347797979365155804526259127959226288540076563286575259145941593497042734696959359115896173816460058073044046302409559352428548556647045094659885389869390979134432912209162031926667076258648804241803875338110020968129544629066565965236006878091060261872804056523127332254322287524761199643960104045388516562255360555253296896579921442847033221302878372451983608589980719894749377160349997372184290495007620648070115423422497799576440476023849548957313783840801444967611291927424206122072324282529939867267884825836561981454141013342660583710908509209206927582367142739573221238396032186939893234566983630432026790399262309680948571603608515632737185557813746040887775644783090507330923475361749161572352923797972995728311161655007117032314393653283059038504380709133557344950492343145397120843884757579023948644681991394339155458348214322726801342127305818136357703596660675657384029932716851743672424541670634950437101404616219701651057120199605055164828806941162215952350423480925100617441659903425322444301196352603905636013692954726757600057223038387848244205330518438498872929461026719453540191964485139559635712969617481636834477271623081323024555566973928259941827516969535812897132616570052532595312465058118376463939763210605493667002948034598302054806486937847073710542478278255618022539929875450931039176321540615540696481062482803396023920004424552460321614330955117801635346484253040425635618008669427337093454419046170581225568150689791486838657328617283092612261185311473002314525246216460164184156434511501786153077224984740833053546320923507475736356706744376798734026658778829960716092234563441976947048768289382744612503189112186194768922996054838489459950535338814765717263192226189245682309806481854313973174489165878790391450004574571070513855310622861512497734803749417695428498099333028214085505746276063434788985296355316803684595191956704359163324244963783282669722384744607741069425119938018227307776404964469788131901304563582563661859296343878242984677273188212194425402219986469729079004364064835993240794755696572911882117204526662660814238987181142962331508423143423217682207795077395652104030986217116184677037891637116060533408377607100878167801346761885025652859661526218539598976643999230563647383583985802013608159010410935468671295562219370911028143658003880816040018500663159520093715353288139056968418411968077608087649180979017642531495575072232276949446537747665077828767974179389116670908836182478294180872016417376412659586561745266693502107212783703269776667050682947184158818281753328901775777281413764047682182397220753121112348117411938891114341986680755602325942875536476819559225755942455157261665820190602424979301498262654321061393791367875350895090379684459438568425805953827829505819781765762940018553182276812768916187036978889238703803670004948790575319492476046019951467042432686691223933762936150469138763661581386679843138043022173840745719912332843182432757950802569687058144017132075763791573286409408419117610091519626871409773039858455537700041651683566434936864203594580151142859703071365736268985086657108390560237530909422223365502397089932253943906488431459038888746355639282383324974462607036597328878205357104776888360875457227168244999894333656694430190212724843056661361028873903611954950479403173858718915897987985005186681070995700379657694365990574354089938257321954945766587939217763021030326454582036727905630920018366046174351462874397783564877178549460521046139686654201495062014272453948028990870850089500878681228343231645896000188600132782912731668861551134347085546603682157506056602371720724810566116584152102568841178015375528485713819971280801576553936920287131662167541224217655926103202760080621565292653296676622625713575776320551302258465697465547057615351865882158290215966310495137212994602263161492874731652527412698083718062148583696014093478637767232959538647028742731821303077645245388769663398126654503314636220560009741544232240405290558849916800110756479712114328794551271011419455851419126911148921975466181877325871284643322747016811610232166152672229792537549523041302803817581685874396229720821898439906534399131728011608251015027438116085884665659053672905753293543169760932588866810441248184490346654754690658773486032255654470207565404454222875635626218512035412866555093591549148452526172826476829104465190140373766229019688552121970702245922697421449951940997053529189676341703122292662559173368674598881992738929548163462593117281894426878003136009593319484205761986773360627897140740071530796383449936260810207254472864413674355715385412928912893694232085620357921708837722711052815493300984680373357124801553497037428157948407566991652679010700388985184512322500090592675231387117741339047640231969285826604746169240018475338619382783772026947933245545775625673877183214247193888290681947595768482176190066194493022753906550652107820210616833854102734957387388062116705903581672389065843000847966992040747300519190529695192279731537860031327763280385394347946157369231706135678562769756226728257295417944878410704772858935556098388359418861187994440305474360141121042476980620986819072955501578794600793660990342630408583079190636074092298602846843921146937231957711335291939298209413197846760548370412757300167406022513737413164713965291316676515041822028893100143941753375024624573784067198804187969264296628363554621216701008158909206954594604367494698663129089648800645430243725239713878550354993142915377726769495649628142884263204184197727674245593134111893444812000799072761339416611393666710651213429732652582867220655048890949242385151694981365571154397059721209360384902385664125877666735285937160937133610542868205154736188657732346974499519992462621375276522632103010770756504098322980201039470274295448082595715960467050446327171668700783518701234094868109049878539881465833996879481138796583531394296116398324414871769165252297318064022638677073688590387559639009437880504678063503218097834823175589816056802933974281960747382077378305720119932614339973196803790608810266513115252065963656583677594521532700497912585047405811682512626318378906919441422633990126928548847527916839156331169340147528015142972617863533848029358086960505887739875515986317230113472955382000013255364785478093640550915118000390995896985480609485312523618906460375518174195385788714079879465686067530732322127357798655359692675429301217065104884976238346056256782588199342571837594840430495034285246969323730912240375695353654628689992703665340960470366916865092856842185158499068427660728998439720759752118492053872910929655972183624308996717458466875317132662347547642415771569061312615770486219871963752100442841121412812557405413009609122218615929518816613503622281908181034387029698783167439495521870386822065256612134981692840100103466479042121827588110097548139773854268131086436138863732976158086016491679681062630957951005547277461629744112177187134000096773944942753203445936173331563274210934212192417896314217788958018274056521537584604895037239557665698293961795916514520241040019050682213168187582107846323982433088835893983985589283769020212873985716389748680678395705833841201025133948459891980538526936106321679896220451628769263480623189448898750575503734271644645367893819348853478424897215494679809076631758613448702044191191350950911942206013273667439187094163613092563535453047898206866786795054917971105640854420981385078989740962997185207338656107656684147719334199344732700827626335119111021917639191471420905986393650659650322391087702091223835605999297805032561831548981279784083973179346355444616646286779803128777720841881064977916130753796286729136234338101678702993151837925839025718704006374516973372943312509862099396198172407448741781970007443801465649623551358289280242127611147440991088850986789551218279100572358596831222335702427804523717903782244425950851169688988166034855468336729397413249515686047585468001464846279273673605985665586729881723618853003578452703248041676406905873508199932491293735077131766524102770587771173645964474151664028092258417438078427964604053900270669261811347672023473536366297523474576059590704841251279778315740337004033923858705707753367978185291438071749801687749430680921429422464661538534334069736956105909168542173579944989790621359580595239895032661472606085429316213689615810034500874726759579174104822258582909785403953945312093231553951482320440290395037614158416317875072414558424248650792615905699176169982602981743731888348377108096885873753239955889414437410529716093166281490368806990873209823243464108027349086836808301540202293331618502568598830220127648733024989839521678314890440345995909007948655122143392761697687872507974558581680198771161762463557131537925809089621135722867184529222534917481059449802140173988892312079007009975198914373007284412745200497749255726075879442053916720689451265057809267226422494085640998370920764039121431155650343821271006399328869852061057263247581158313959947430269301244552650238628907030190219680549075676794909519629887045119331247111802846234012163722404995647063444077827593802836515454931237318665820074893730410542355767317267391054464709283648296840799596949559273928324876179686439186680079332328141395003005534017082973480847634885837853817419896274779293351456001200633063902203314406295789811924328161721686784329882995139582807401737497555630908819885230016331840995822704915995403123635493740742685596816406505065682256830160244740547398673537220975715056605217399046533954113528333368821855949600463555993067987065922051018723789996904194277672516586767877423127215027065730008701660629502212509297974061233887864352170377466799710019660714695565276099551123581014587604048990044739025556784942302048994627843648962634849758113618284636726954896945537225913211259402593707225582646902531513265296906455908194638309001319530827824643881349192020212397058697287672892629553194472662894134684440386855514210669681524364883595718291455093299903227132240406988805242708207875373039104660596059158303999112056702228827029019164453731947182620859747852742933006789899918879823080887303011998086186120254886907807816509115828410837548447204693685611230599717338282064360297363436207018936461998333131343327869327426675822048919237022600723498209676071585677023854854079477645347234258294946394329558965096031748202383296977860540912547344323884813998931744012903597221757993294074033801108594179876068420912158657336898511380148741614644401588656300442500281365271553278236105812110622919722998768941931344585259236807101120544171565855284263866550006817311453050623465403882391883337185094043244686030509755409090018503095567241407601726755825711504989538410323944679642769525287186276716492799822112471051748720841149177809619993530226201333542459407649282092201539442685386758475430567464510099671523209439273236473115199089570018564248930110246931223137345004588150711606013736256954771675101079823599761615153901291036158054203702833043494323621250515855416235411414154948945637006576188990661286180953162406769320638878821263164286103760480452836467980720490225758474152629270673384850125251804121902423142400884419695810801567488237205435018848310271401758170978367589615430538442657657281440247948772937942794245822024800836741019855880649367723649074549236866031929266522162117482758893809577122312104757967331761502941408540616635286240922196806294518018921140538296389985978460032875419528423665979831655568073232024835031497455822900529010654588639952610182915807888741849858636433386181902231068691460526167931140074470826140516364229898777372947271201568676348363419256444647139893567421947772518317753059481764202729749827516949891658597116566153397211148678588480223072947961345157001318270935936245112509121601305877973380083706624188204685091549032531690871032047588823659808426628356936849618490280418385222063316409398848382423137630180157403745824505791497566923181994960273336671736275354058748595752738196027343810698973861109825153304467221447267334206102786985306146978343330302214178141028272175493952830337528671153070809808495565386524044919624695371949976973472138934106603696468354843522813093417752886220746848383962453854749317186458982574579020665869256998748678771656170833128376989913241253058218667918967880720776889400323936242607868232551535616441851294109722669069493475773178576945217093172301177924598394994766561524489496765530927644760476242650546860898831693712199140615246425790259629824900720709027993241182700410431462529476552031104964581208248078078853155644768723670275340745000934753959383413453592632977184668322516822207067304386236757246868093910970758379175917690302762773020328703178891287853084608685284255916324580078337813096886268001332465927825784366762034577667929568357967003141307866352680742044683061604706639389345942385328869352212319502700563063112284134250979831263889491596369861606450876856246569115309224123170766755447543788199743485370669785295648078550153202722071728556807671380037162601433245433599783912553820678476988901239790689131165912316210303872240602561701669400609998889234199659846368402570698576168694908454284739335205659903883952005330655315004229638547333690376484480038812307340916977943696553869666362712477245905246973459098706423782967905789732208578840081231845544110284428278983725720119036361396536929752105833272427056374759076107414583098540296138237823719168019322602748894167571066171070640839675890049710588018061974962410496452793351954528278461910343136509506484103254615166755602239147759052271167362720822865802372434953314557139433455719476248620014479216478214629630721377535405091358277795174889461258340105629504330452881640018477406547724460287048968436127239306804146896309202595770612259998620023841093210011449902621163174988653967942052668164312245177437004484214666279410062115707748259596228202580179786694653990794485246217467835359555466327911347322830425016042998946679746506328250661214274807148779368136282673217239563691231747431934237217070939455211004785923897505308432418967856396198152607055093748547062801763849877654440945967774614101907606951889976803661706157686428132201414809038165820925710670967782706715667134311941283919780235338482671422445319475892580354605130776560194641199236937754098483512858077959096865746094476968260477517958620223696823522545017870914305795409024644141524823305570044360945357662500045284208638125978854784089044819723160289737780640268768621560222269078494859488695006030820808198823864750573759871848973194188549845960989151742696750399448506865750895747606841974339023178681713064282394765656648116358437828544890509383393733131041787688558412340983501177218151521528352609671704063569715788154133052720288753414768399103444267090963867860086443307792593020453615116498336670572318270590233536585352579093422479530741573165045611137410318903993634863672522500405399687688758817518064887717561738911639321195217080301895995063663653457239879155203685313784912734090384103624931489985275943919078804004737257260617771056061427954148032679609070032561625120136288647792232358204340550143719720833647723096395636290016110764902477347887306976980863879660493142076547359101160779978885434119129146951299500461960916750909031127345627604341032590885746153942749924659379849728289908903944227233995461320308007906551257608672304049153201647929985623948503951260645289606420340623211591013358535295206490456606501645465601006875346924416429791034331344808696171644601899840928337109287814559088849383513055195282096161398075567676037092630316902146578584320421884208844752302998066896481121252735156050002221209367262546438371501749819751774427736195976251255581295899499631435687493895533736884724573032489949986438273507419246658322607327438811757021683776054859734188121747383867098534976622364945179124688378000292205217873113335745312829271657388457882969258685010706076154590886440177927229969709760630833229556603182860632378313172783821111264968077825839812605713452921816653899228233893878868868121295873383703288472660601650758811897051889920967731261180505299360268495558728244559017307177229792551868416268835450695911151988738393736754516509567020434098983080064511186892868209546106235000348984163709792769116545239170892418606036803211681854145348812476957810780090036401648184889441309909543729205490724707896214622627067171436533097051591687493480448513447823136922501347029506709191159412635963032955341925592443426416287292473349154781047113925490953001655259562957317513361642093292831784952914625933382057265634925806560016493967676337999835033737348554919105483705263454116263968040828014945507313363878488431346308819776715313038206862757741545673715857223357530807200406896397607443859293631016192547727460468493944709933369661265403724819401548535388400326237686533656370168893436585168082794072736864654482325930455601858601243679944332958126557587383317899522504731363293632216334708256478442087992344711121592840215636456912656453426150067955298331904529868925040425194214973424061466235239501236684555544608953871577559240205559687774366868303032412599330706393712850105063603757996221760656868017084266119648033749509129631031346336984117915316818696150716766135742710855696802829464535602483177104549681594659689657554568602642946951665713692451337452928654092126713852395812003757182329936147059972951750085324140987033977618059467799115327533087380317629161264633677376430501574384618134823457536474029347929648613601353819580743644488262909220825997379368889061667526717481405126647468012705359403253785047682557495214477500151757349302979951380251845687773115413028492771407668763809783589238933638327482436982259055749939099779026625083779076184779186590510143093457720149767452287682771097430768909312760190822898254535933730810694775054910487143512526040717378030880693305608087588818092692915712657540626145843236286421828443112329249998743926127272523225085844435616599713627280417818592343986992071051496163046598755898736160878518613518351489881485000579743970171904053808274191494691553187088226574573307468385611250485319857799765888505540778900967503377885186110615105939891345701314018439958536263880545415300754072590164052513313956488467053198396339290961553067030788868707016653776481431819884206603689306082923924645832974194198753424652913052589629004081791721934248768101474493620179088603813095204620838665385569697798522248181451676958403904258548300351500064335169871220059900247909545212222516086663273471692205205518615479078440166029625443350210232823410733269053745863258905465953956790491986557114387443523713602253279995103858099214822135535925629768126388892243779719721294588217245432872552066482952040350994007684648290318226459370215393502454379648105216617844399292324892213155275802207073188829935225747447255361213515833145788795277492135111638690527296512685508525869567046496474213442976016829260437657656093777100283785744294482528024114780533203284160118937230610560155892135790079042680976494710323967518046794572450106799582169908643492051897488992399551792477361209515930961315618515392220707931870903457129567480945692418792800789907640910691565178415480183154064416250658395270045872185301263580596577600425625128205276815953091556766478666368683557169610179779539157566136128549932274509416809345279880092354030348949177924839811742150779774283150883603671171063591737876355401032854685571459485106985794294611622983730223085333371823582194960426046603283359720620956031045631065422562198543351886227917459305907698854998979594287350980711903444024215276898156456513015126541100357285311327122845995845007268536114661281484978762590389476046720474741710547162117226402859407224417874443284229744571602059285545631026149460080592977157523595483683106913016173471440656839621634786959016132064133001208713995464960499431658665624431096583954201501322095432180654922589225305210082597124673953803860053846624217028152860735651782395092774587959213751192784930965353956624514798298514009002851956871784045694685161055372429447773293246039339932541160337203072463291852065891947904960338907509098287590488754740807921200958022707293815394140639949607634766520377743730809576330872569988425867716461745701643528159916570163661089301961128515792736596442939394353256843614315067174781616309976922886520556067554942845501808381127489521235432893967789250883844537995436519968404591253510015349225999003903452909968108677761414682842677898377430568563012640124275156413984032583709043310627581692469038446129788048218320430782797132358742301328121939554296244798504210479171903285143939303197530852842096235179078480845876273721840954656262732610368812009466786841462701219748958201935930901338049081937941019816081679703021445860437722884576186670012962414630175865381668992584172956656175671639405561842986470512230332864485950269896169463125372601740387364302318511260075318597548921249473944987645317031602015963572478484071732950766502089348991022402717088587440615762666742765400421514719418976412341994825080473372326961753557964175256850489119776280704467036187810185266295095985423720691152019889109751759218408598379442081818415345022429829556101963356059687332429201790342892916422760394524350686316936861446690983954334895611769769521215705219073361949623844223568746331355506666364162132202723353793896116578434004493265482488527180097249284906781600433257560668280117851760080783948031330085871992627825385438778272335573626511064246658240618706903413016492876605335297259483691785049099355102208350202140495338281971930904676494320450057308039158117578622776769762924721969854560726348796180546435948013824319784815001147653889244485170929788889307755857575117572710749585467614986292521116430177841074265462173031909470623618057114950000305613511970879157632307575784609570228273956174794942645843763579531683404740142387076062023621708080156647148305558147407100203342423021771928502716459221309519625720664584444455018837839166361003231609570642109026517961043021098346572768673658555699922615899319010138430748630577417675555005095976283929078196887848336371110112452960166008439821717665581243335243709242889461173033006953702360847444492647123139421619596202194306151953638819828555952449384478522489671967659756305291611354506517741575776909058903952664050821553879330046020087848275665931458172651234494290426695908914661231210837997732606159121245501366630721696348085936086410390252401293775806133840958890071274500333231839178568717893318778708103139443207216858691946142593315876513477155592155732700513635467096141556687458095049578861630850293819885092406394689593054749153572490159152888586565240737620668960056454927211971037473686730604763504621338646315504706240707038890274758702075083126962837585553150471414523834753472190552933534671795006980719285069190932066732757372521563232535012863944677480849897268133785345612128686253836527144566707677969149818887363197008632852025757167299031505672233308566935720671212773843368085420167918509026104046046108056509194422968517193367311951815781216963988105964291995305204464769915198276175067331849659555668456925895119382607962237149742242239865102581745345596861738431685339332452915018442388515421159438700436037600563195202180835461449378134609178622538967870439239974257299112628605019396208623462440213619094877323749085831651731144119776507948833717482930185517711345298834668304197176311819341155399576804903212248140693241876491398201104126159859628066826321954099441784596182105701682457848924902609807028455390046193411601265835454933452951206614646641592079253516524202863505110864797385865125982480602888989070326514541045311171701816447356598602002910732277293837917669203804157796481281850224849197633962750531993896653747891757664836492551339248628270391497402830778828192582850068395222930622089414224273182258049798419366544193657238950375288350799640711922296859959615365083910817680736888306189633580934750598448875087498474681742413722230162174813854531208852865091901723344731292616969352168577000821587529806767991133267864111440698318229282844967314960899291603289976419086725633470912726346980230676904435169516212477445410484954699327439679313366329132974549296508186760681239799529404111173411298617728967523341610271432769753398961796080718743264180992012259666740973251166206358581549915489548825558020699443045944366383139726420791400536502137738357717409796042150464392208169995815879307942162186101364524104357372129994636052906402263553650783115354706836261968654259002119010820002538992456672218151120016706856590692186085986285939037514067704537363314754878909472525660692195855435027775670532278967220352458737180171512594759169721714074864958491467570819089381790134745137235924233363195972187948846694592523665788513381756582369758786187115289413457853463342461837073482180588224675639380409621739785916064444458368675159592305679258024382135012087501259290932986064794086473513636858491907444701114729021929975645055433384617506042669364127411194289290807917148050084120889797189355255226018519034506560350323907296504618640644922250894795299911726273819287200860819731228585645996886709960727262317935226940857396780650076648776408501650633185383511655284934231502967375096314695198121285766064540863601924415589076979223162845746304039712085144917872802308614491930704358903034143206760349918215835123796550751232126280377502043356840493291800052779008608150542395119034648099203418043983914509653884242324303585101982002950096515094546897749706408242983926707706558808834001227040301615951409031493070760068867612154521088537872375579365953456272360792221952494199156591993127847440342448590180800139331250749552514242969200128133729477584473905619859962266933802287721145138834752854560797279439819675802670720314412214770407275150979631602177077706514569035510291758292948124287397499791448574611844135753967246774586216064421891786125368204683049778815508694293729597488778266102428974672058956189706338994541166664571077251205785522333459212430142844673032775159803669051468607679294119443719864487637344603590946381361235898336696904803588276549568488999078818161267929860109134865063800069789902123153795438808038195650059446415804493349991569041994328583566866416059499639872896119903962491659659756477668661159098503853388892104696534128272990823943749492233806487206097006231128416223840906831558550594204169309233550898257762272831515163853353263666159587145431797911750236625773507587555761988680902311708773220203020087077097262592071879692698099185899253560196743112699865880714436049258039520615072629227195611917932543190501623397570065641155635023403916100097100185025218158975761459203794915515138236369551402229133023673044543938433359185523287781701327854450945813950694234991657210298311472645201958850517514557030888328354261617719611085018923292748771521828168293810968230694317628723201527349026932398791822741273207901309860753287461843287230028581303502954375485848965159296628190933935001341274889437985630688022713283574712065423508632603852259721816300019327302519887926350747671789643838497944895167098893243917663531796872453448815167000014036798430946677694547916506572725458992512389206920921949493385966705103707057574311691200733500753368481141679072067433024629291853294531139233931407385839535852123718714819104574100342109242178263382427151885213915556984004798621781634170453684575644615060678564962023819277026840374003286502347288514566488453196519897150095751458713308406267592083719582758260232296812958152670705724225203130587073010897967776820190236600770165202570361898036347450370818002668601934301317885280674267555932225722824735296272000764612154436971073204419095105581144824621382450913539042712864048293092302500598614315372420762520628419733875905479776844068405430146066175877477172006668726677447485542467439861034794692453534002662934211835161975029003932516867436056687356775265911916989616812961934256186841527423185755789177749461696312826529444551720438807093784994325666857816936212278409948621677032363068354545232618306623470754840328010382633045360007689709556909664966838870256313382821985568508867653476386143978441202395624710329813358937871603038981460182764971606212083848520414004692892325189151031187329087397735679315905152286599172582027853269418804977990410287396444432976806040401690053933337353220072447536394477371561848306320442043266295339388670271449960034655080869292220153484294033993576306536998511949857652402016055291184640421508583831016038537978572782739216139652518503260644604396179186456268580934451370511478554933725477955256990091663082509434891232835615197898826041110638850731067419171113784624413425470433159823721724488660051655228659627900150867425382927533506585936379060305613263363109878115130827829858898440807058026453397673935256783439073516529876756418313137381457281344976590128437330828262786169727498842111909331663917121822334737797794533126189268409531245479208234743092589966319129083684447024435576766336030973924453782130415659963893375339439088155868949250228304587799445631922428903498462441849811049142666379100840468825238171951725394338825293140800399909042537440588110587315015363318348266770576884513957004829020086788436387146454073939566674102798944269480064683443506993039533582282170487510332212597193440007837703599194429458747213633200896403303165158805861008828460826488896000892907170236380161393657690795373451931374635087326735179025178922739359606643731829918926006242489790955751694782905649126273969968605122738668498965034620332849086760107816118641140745531556477117585160107968245903093063768224715313077073298532116798060135552068524837601272634619590283107739003350767151009528584254827067092130176559021151204040103312632234480618895716100985121885038678305326875030336043012621653563223913488987431069788196548894993128778248337981695825973264257908569669963658172270278157220707291390231000402716662614538541377091368580015558221405370963702976034862138734730532630165629451787019761022537176684779141016333149722536771476734578635788576125326644025182282805636245868210855846050960749981737518376553464314102644074816920634575256109098981318655689112114011360796378166091047365093785737734081374814638992172365555395264968924051702861672678741688234176388703193472398385125627613169338349428968334711323998393293673484927436175104415586498976001499343880983441079239335120811588751377491413229316012600915597789614707693080346232326312319080896519179150162710585579759093059260313634072207401374784061281243735331640998303586083598919262800203589145533206733136712118222156571923355475659817358737070169883664182489304085663269781607571789028052638275524856369659796752084469347037241716405265565592814652043154872698306323270029237291756143103670787993118346851806514511692523935449156474207598470981404510084953423405402882562127415287537358907256916364434347794174692021037708951842525895462080681060736214227475848117414922824004439878280086961503655541497420977364561139885922368051133376473811114170911932953499524184202477236599798155309489915138457242600254425403695422908260221700291457472591406046329151472808157320181107434640674773370323437268900213689703061123278101934469843610808560973971681855979760131562438889211073270783018374278766469009820833755352940420484076745338963331616615271830665609305324058548254777268654178440917142822034402209907153115773600291099012289650533171006216755714540020851967100680946236748914384995770304742859081037163742621768473896913799743821533268750432091512280777975620375257040007894324971430394561491519607896632238029692840737496507819092777452110886642480756625161337633246740121075231602101453697264871095171985249854169529027411818381517877267938965051870089926200865152107749645328952129273363882746540765812690089323354577172249621522626858637641026392801395835066131398036625078397723652777718221774481060475180744698737984823364568727803251656419370117133359751532267369729292940991963601343642644967758230108417092067905476776661003310073718737555582435617038403288842934122926247907835828501432260025875521335914763641716846996927054411950910939853139444084394585216360627735980332898287782030976450448900078698608209420611687355673144000485946274347033192007059096700315714940497246460160141364548219601139341858468583837560775399656625393413216576297055749315854462068536942349074472643480548900495527455385830790996365551385431107219354523079901451749172589412657769780798708636395310728879046823284921493819224627356349358272766010209542845435744440708773024619202418903598100965827643281402515846930467428236303340511651740655524571029464744336376095710973332838047067416461539359326874388969467836366638312406121725915517166296186172721663243973908324089947575284863956230945017881651111330526584161901780639008037580825227205506031883790995891221337063133394349066482676242590831180314458783865911627682750809901702204425200810513514692885012350645548425190000844192528243321146096302454282566693475374381851162395667660301757203387604022870754219549064124081355052491181419547582567940873222174936843741962539762512420336126099376301175093043584897882573119387059546676815275628525733715419053017430035539547944441695475466276004413244451913900945710806564670856594245440861510832728363390555131386485787209094196406023868356952004421995208156073474089576888487397010318967935213520519802280793913814113937917825953307813509367930519801606334803016795532581769775037039457401677586706718729587873655866893747069641684914344620645124980362677239346027297697687548803946680076034206437149863786265972978050518281734949885177507094264654883578322781622406640766755759094585780620304884949189573442189991806704944152755257361924617848220677107722635721835368559557954786062873120197236824867470311286913821290954853028339636654106639273315133661075803354111747943697083909308872783881257072172478778369913896690053716436332260422770482602461930716260943913099037136851008028088491579369826799482632613209505775636515725387147148966287290600554611253178575435598721479333991716625019428273651731540763928310837914405618334601181501312658689194651435648713928950887329633625822186231624621397241241723410943452984426247632216099370399604349624932643510373839154926476963259039171643285629688585929678014188705680158884575899347276177741893692689049768159317499288303731251863148388644286470490184617833848947836599674345764711462681750153518498732061132368698683047281565632506579229859128473705162300289196915025512316207842435623991237610359822132547627057608907656981192845354631272411348303530808971424267263483097422429282390845173227797903865444059063625073580081891787228375148151689732017700409133599185103426644857655500400336478566528963507240552867420771720967320289050415947775509310842078121845830321820600837005476158729562102357005678049816310894876777048129024876306774976728867093971433863263528523352763237742016952265306682266216076600276897607084679504282136956110928331540516876981867075104275980451942426070467213958860643892398100551984867914472635447391754524467861318576055868804803972418588421059397080250541188030104367592088035300052477533205928847688776703686317076025906554158744504141071751227535241795981526889046647046036649379219786017156159523716353960536727668845839377529474902826222921606552470149226107688766320701117104399528498392143980135110718645697559691233198834348582753531308777156467979294250177062292109539792843565642330566401302083782839268516648932307796672289937188772659936419651015513186693024897948940476343119880900127185884635900134982819745369064285670690659451300704336117957318178097680180061143595271386359334762029166531117191162558009991617022018903681434434968547318576949574388922045111514486318707272866014765704252758021991567855826055963607589450091644817108125437729299221150957661119285355167836177115570728460396921895408445656356456179454126030858865321382221719466361934021334862436011623258501353569832575619609146198107622336551265984297867233927664223597973102290002046419282502608925555485958244305172107723362050313348381945240141407697297908143966777618958609660292762338038872103708940965892300524631291588398616399903049880673953959646582159974104579208447426359096976844161696759486089568918785230672109227261982030429579378486197755289406789738780662621383642193698694458932374167745600160792794712840159204058587621453195237112346019240640295253121540096668905670639184083176574194623835520634898239921332624564524559505257846077358753728024230147950769608489537801599729001183934517145378082060712291955146254792798607463006417055311254092976668437604546159323306186241966180111152933560793504653711738496544276020685061022332318076354611315239329480756457418859483247934534364967244445621086144581125599842102109597696204317362013672202736820332505067155303949193299639376805502229515040595759931518852588695658027113309373201121260736568284793574764013266647947785859542615686696316922578144680092494946731190646334433685427456425399145223792388053801584792458368483671810669362308443644647362115622528924649010185946756628501002870402227645737965051351464381729850855368559839344645781104545655629947680170748672876950779976547148638636168724672116099193318814098358537060753746364994977592800258817443871617866380898397365957291999892136558217279297243616686940856756161262431741202761097649697742503008286876838293153751510952498679106064510297938975257241381766716393631354392982316471891008352191382132603317657694402668815410695053541472319229274941133007281681784962926173927439622140201547134221011147073183699210517239981750988989698290209401878765326638481268879078741386576711654373559417439718335003236465924139095958443132515387343039754844421527301798911124751827905709894449463644846070550677755897548697854672866897938452538395187997691699761472545209933905696430284504980593477886547387199879146072295761933735012591618140302204666006797745432517044865426062391177537598372344306374485690959590971570811472545735538893526722194035049411695131232821732627877721174566407085453136559089484972058599716258988632179638095530097282442781147343398288615527684370520489860370122162427455439273739751766066069154962732640202736671208545325624045524179914703257701887774760141172369873249159703044150648923301537551163412983657987426390769131640798379502854359642185305515172714499398163265876038283887928855167586626448988104114608413912776398161051046779976920031008088558603991773385411579123559765011098226541980004171402785136023132041747195421756188072201606791379125556253621127371633957131522923073771371114268913933794903667322751943954046753193283065787162087219399079079816167619291243093967221287210308125713616037176396339243306096310505441381587060275890964301517038994681024893535659348389548689142808844013162252148467251894869187711393750224491256409541975856685199631144125844236705943078365432547919320027643449112090663798636724425473256239053213343616818391076292969221820755717122207377205597394825528719333024759815678106229623427866323493442765036487268045927835211576772078098212095389180517806446206985500859064264702533879357271469158643409204219053826516801414762859425988685447055877963388934591694454656712200567845767741861178170398768278915718550793744081092413824982578259345922041149229245327206778237345994653635871474467439860373757147995624450374274700032327865439299190501238416625053285907698777352082774937304212419549821473219336563221454035488961390299087594029688546036276289321948575960365896147270387103929024331448252813461436826911071929784915221369779986855226708151470014763780755392444643875345889460733425350423288748440811668067552717193464188792842254946508232480044173846087779755029523001118780544607937980979786281577104951242422346511962781839569650974020844022913096974568326736898987288072589718828849398378963838617432176701050078848912976415542015339682281675613945111952466242890154192708463898353669478606915183185016075717118757378620047694826225331194771768765914948318527566308642038921687748573326638412767362607069098821351785079285646730247008119408419288000484512298072031595595301183254961046782491411678673759360953795079921061536034007254437582091589721048605931938362969908518198153860564549836634729602954965824732634229364370279141849074809426596612800747626310265744636067376986091887410522371331893978752033576183804111131319952376882403614084793555750587365673126186170421930174156779795076005323784990209727362797390087312216451533213587885256030162219352038426805828310903922066254801141383820190971365344086833711978487388843559031717964313811185723563564064771212176611913646889412265703484636554055824917063286093352051396031244428121277269986282773985843172522166214648755430503029349763185809773622473770429504600934291737882774288448836191328792237298984242957549656593977011053375283364159215520862462264110123543316992145367745474937710625710621137535582376537164228983802723325967478466985961988216666748990114667863216522017917016566746990860642056790159532866596033095573476630292223881495509074101761777140927759920311345857616838753095053179590139744803142841452862437316717852945787716768897881827392714561235866983102122424496298276038532680915896130415453992297564684553763163435577138500125714567218464721949168708181522993674241011320110920438433239281987644592796017462208443662065054653881597477076022790399946122718193187976551992266195234953471509359048927602685505047522385136731698132104307152846496109338268614707929988204126895553370298615680459900112069864551002057388448342864658646970470076425924668602220415792652469734216683620172914051208646274660460269345360829713842847238113191687913813275379618650021937847786840096847157910353965595248874418200720781893653689210458707058081267000402838524914968138413358602820731135179933049714504205057775695316812701763674620737490193272297003926695353441109274338747895499481080741488930360921366230089154036369086880832239765475159818795572110570085561443867851760866172522283008156801090108289015532841747517051939247758381043426156622272274645456062859728503315555055334363013027009475857940784589275955678155704233598982803829218442464964462513857332200491233725805191357370706522862248594734995226081194099548679887052674786595784399247970087419301745950017341429212155338433499668004882529351645681415728090171501871877555910509100341288106768770092597697942465116033904971056497580755251530810103306174747600904505102837119560382300078145184515759653705050246450641145355514154059175159827378477562388393756556295381846738472021614412035935342460429839476119194116838594794943847440752345733371708275896932659473641640211498662354194147141151161794897029945849542436504330341388643519159709288157854214368513906471942457723493085569333023734736664090602941683885484805202661597284633450633647635654653759498684922835954877837501320192703139688871912442184631225624585953670430537784727919664617330387137004729900652224663745286268589139781655074568262100875570972820208330803894811607835327542135826664760370530612156401245711835790804403238802896947117938350142888007192702403214685674865540840440472611873956512815520767363679187276770869376079766224035800144128627126620607547231252560076609718045745278462044023274549532107071924156524724229203818810880043745061201768314540446248254143806174375453620717032166727089832543104162238255425243838171349103479457951335187759651768558586454228920133020043217208437038822687096186802869025430352507749433675837512558299374787235455071908968952625071380806599692044966718537181510139281490186248453917803608608181582808067487988407761453816599850195453896077651717161176480611563816131082609923036158757879100701524497370709157730265070263856276265997366676976100221752615035760185802843290673259901762999161867576977928131097355836933689091262918371039195707598325559731044982300349645682824739729910100813782244185263087845422591091402377509497397185923071014949716509332951388130859768016542658368967232542950738387817319766299261081527217312557988307901812414162751806871312138253177026276464155536038244181549041655560019799791296671344225576405570580787897928238620065402318688411307808337897234560272384812974546426918228417653854826028180708878714439717810097328404805465952872071632195761462111713427748359104619356688324214255279562604821624912772194304019006953675352409892534708368219864448841146311574789281445460619892088558483503779877577739012587000957915601110002563658628135131153247534137233761226335466816196200815032039430929454551728368392422486138699877556357251930857672882160071224075258181124618906618667115738692637884214826709547819681208878864148722430615547914479364469468546907572557049296162126298859366803170107226565635671392286422409683335887867250894283507387337352775696685060530623465027603011744262084890666192599001151115086821488629451301031674250209620211759394493825864851680437236139505266850789517499461410491062220526266448793816056050440084272377213662183700998125752765923454283163650533343053453009550592752386958053303976955475351396320943068911269685571690993455600763985195533082846138464125345984692375349346598915644066112094336491575422238106620552420357280477821524394224253034730552734034306024051040262771665609760085981307448323673905481060878488710841233080688724215529456075042891199228292279313610612216320067426684807453910291791220784725307285805237859664065338174013372348053021447903222093621282620318453684866164470448813114561392842420968964990748014152112143515965282209509083355019695374136799715329935812415678575737145899625497542703593868852449410996416434073923411719065403519354883669506573050094569107282598039759002660271451516731556353548376080514581043881182450381995414222310989730820430719939129272966899568512375734240598491014147930956214884086834430967710655234148903399961732862200703363958097383770972029878804127042362012241885085747448051221305543486006460937138361197374593380667400881273813233834915760676235365809160807494269493087940320055450926413332210036750673145492550800722533422954992900005298085180653932225956075851028988971294669999035660654059441108010121075767369706962812699238034716082720061183999022363378613997110881934532132780235958659891909397640540992688819505977828529261098814576957570881782599997526822239443983896324425152158580923971016445415550064001496306913152429757827611969270156209234904930776404524261545829648071109587143703547557250771546466259047179404703428783557485220810578009771707960856574398190610563507506865892720333332592568281748533433114804835350106198024927195380930649443394812288610582325082066941515448495710111531859474103012864879179044194637080864097774860981132603189729845700763206040795786680274366960163549745875180342951672093650761324060416318560341178853531187067203849334346699320067424740910824298341846758816556501441223149667005279548811598316117418938226641555385798645998601469162136559852577973346839964491950766063887245802163733260889075773993024911194176064154226247389489604135599854253404454706716166639721370565661232166245690719135556993083380148610512351146848277967017173186769135353291779904291080314621052248671420455556304939115457638576214230554764553080908497223990911025069445152025078857736972629092475419860467923738292179646246474450895957059482902424355390318172830961000031624600902212069278479188146488283829297943905872521805931301534057212055085179761678934332219254389543761366946728803714941400025910897083228866400640744818215326718198664406655067271250371551744160993096530807708629938438921160740994759809600043040320394044792753835243674920263203966673648327563268791321183872408587333916906940045905767981059338034829545954913951594837256289026169782178793743044374410140228436843682423926332302161406965434661100024047635154075939255042211756563612375254262496585238991017895351616857356908547400682205935847167057847455851929695019495356173471826380069017649465777029095203887883182455401819532391952217411394557918564588630644541913034688395877587687433185060588630012001470301251543567280237111713755270162210518180646892108684972969749764549227492412488275986599233748187420488881614940484305347268138267721164498639793461376333365829649536693675399368708373542954065523363157216197918891689829774193838947715012863902591365562816715577227583316083767074208708576016755588581714384806967812465305606712295012326805385781332737481303826331349868859838416593720495109868174112209141694932720438073771691729689825962634207379986958561612069946454844078167277877198448427208888853834087767512308624468795107044860893695447120061562284090489408835189704829028272650371202937376312429109888228749486891659790423768767211481122724999211394911100212031257978359815127662429138989306207955276899154961615451326920735268481520303765893322588988000849008580794180229712055506916980441399905826183647856121439033304644059301198117462022891220199163598866240483878328265292543730215510230018773896586570506084347614532361694062886389707189014392566484072397506129806632327572208537020014550481623796097205378028003884022391508585206808855482975961682410116934893564445441898073449818140350657054971347281853666315871472677630797869432972206525443940579129182984391764752795086890291811071775162113767994482671320883302853263795424626118908761661472563167656436119590976762417669628328312287389410775988290059606576775329779801673827019900858565095965346039117410828554026652286800614855338224229966941442419970078025027457614244622484085934432591755149513280500386965252662752774839891538037058643867957557028185065121349042815392356425111746776976769272105361662286845508235010447293225334833735267526812459711756127499946175419610701216951162278189826226755760405808116204161759296131996177199753230267180420693789654212459282762257625164566408279703625272749547517773328651651840956958912445137853120828851110054282489160381320228465154678494666237004130114409286711761801236664469331928301742823481957949797168216626916220645126518606870037822749942528294862978603565254491969653746939752587461017381381785998821035095775722290303122150193714770247455499016560943686963451448337880958751365832342616421276659335846833624259212639132471268982796022485961360047217019109492688265267499998425541337839638654336282702715024964500025076096335746612627001020496998866573658545160010084725675591941850539175396140233906139580694108513943608318650382410197719713651109873781879184777870286797370028817860900167007883113335826674042066105452319343895047966527665569747257763711921670231206062392377594225227641171775391094762139494351255237832577068812019274264211205623400525352717723622187627122037441125967312711899535219938328533551091718136536104196683224970125647594239370150085895775736437054572302488276447972893954483430239691817331822682156751981920636969546186279431578963337681909395161917563285292951784128259553245592351680255094319317045422984531915070282955410894101904257952033411382941597371750398012397342889251160364401561330675306641853725355196980952413808044336402984184229744408864745653589087056038203548811082470735660094309002668888801521516637394692975847726687308625744447313404478217960384856490975282426668580015772778439119904811703222607647209387021915626930445680777934054271278625721762384443453421778332908378519429394423043044836581453085928095955745543333317984437352094324323616222659551648675751128146280175903746419517663274629850883615958491597228673111170004320980126785839554259871597722375468328795600113935969661921719076737573834635399589538464193525941805309144350024954116183610916214258849598155024513291906276797705239744178564608475871082013961795329082977359724666215736212943559961469665128600687747274619777903195585516212028075388715866096471955240691071143980889534640790725502350531551595735735053885194774492101366094373479204749098655870377451233170581449692179939207697287194999577473650734819311118253322286685690989556795276879850039485364618511673594393220430183136502805002179090551457741709362530925960519302972242561018769954717848646335074087982665291494757579156420887836476945097119105123011446548687941863926951572449489937232711661553184913790562838020114029193208734155832788702537497547721193065810715578386940332715249542982134091544953984927679285528437382729186402672074092509276850253454312757041391162960381899432102231417313580657780137907537580977936795581494726965245317155266220157518439198616680191639494013723441419383835029453724842484900574185824356871178536620763826185658863522564444258674120690107380109494144062330142411986200709309820123887007466931024897218350967817286488168653348785989917008062600296512679608899777801458215535449983418080012729308547418353117628959370490188350681751204421495666754131825767090294180142984039894065453996092113815752658460770901775509109443729188112714055096626981120328685852825282381340937729266703186751997876134988082808562792496686056249627898447606988162951516691775463699254959405107915200716783596982309399389036841119350539820836605167261044521677653137614054608706217433147748364971796337370052097211956398080883622507177564489969541218141986673293405510306180445621712375408400133183340750377612824240040803511597011989599987751064570199683598834525301122827911607856728156605856955346385670815073468520511276647140467021662395900323450829154927060721091888469831579539952542331890788020960642958170041599983992237794760610034696384130080804215606351416032151680787580531407319268231593512716652548442631825970578491796787036908460618240447366210999927691388682366593570490979732350354841923804251449418169375711324022616659857553466063174161601905785663070037138717090711690327733328080399279446654625802985401120610457731881085081307079104313519709624041042625145597784465212102984076165326178947081110957319013819925743587199754524805469767076979106568990098026874725080042014913888513249146100768630975959573149824287303755354242486699512609691740760710473177202845337796342576251216856886353669670691089148766326975321995139798691938504608394415797271428730779541264565694625168176254723441589275106002151232627572425434150366064777834145489482822422348900291929142410330990127791708952577992748197072380401522709794862438896467161988477796604839254811099726841305803333801797197552577589103064136486979254750709749401377777282763430824884502095023369157439488203700615289924389423761672619160445242052939030889577344781141749643130989539289863602996883412076306849203376830853868557734630256987409269059243738361724209198066349211296319121564460697950057235728633428329224383134079375790754872979959112621328120878068679995662754330516894242898190187640419532811408547569861556110170210635887014266064000056001531235513781099931392070778215637480290234806033393489267183151274612887331469418201958530249391814654092648640524259241600705311605351290705346832357061088111485619157225156446005106066133598881460510917595426702256895856659198974167716317120658632586713337194677907590023543079316557382619515866790842254154181582853424519203630672780956176390957296772899822478501396653015069616778039590665125412512457848584614359155957887216060386248390142135901952545764209612313505118954666488910252533410405368399564313312116729263543780090273671792110538212485590244918662720576550176685044592509017727383238909696989049177297778357615926789883332772386622479806906860459873360357894949149361304396444498329466675012555686880181934625802261874818550886013886016152989451711484274736140275539865018794580090724483033163449939269999922305806216285183703468439539872061622276665587056285057444176814625534682382696336811626506191245611697777165129398199143237764997777276486289915290340806587355778503555395662550305045948755410049369281917047313987795442514166327562408865862079118953145062773564601966581548471240340911806926574736864982569260997653771014298252842271320704800154659654252875667755462121557292885005921807477934647155575871861153586109213729405956613337250454117320366824410489815199908662141845516615524012641060407873712316975060092819819857774267266028003152448666779839555977439402008861578713727691112749558927056673921809789785615930295198949587709675885871044125131487758816881069536604065910025659690460583676686459231315271251736491992009297256057486719872613656668819921809862166217376484327484149800190854382290801718613656814177399430734142283587095213772159355607647417368462157385629622194894887597994509490170459673698369226083683316721010066816758446395084323924187969036315293710927995576264077643767227726697307168824621291103971155233122017357044486263196897459847904906143729543083636740773058518130604790956598233551372822927484960718485598591179112601199830468536000681130566440746087550336945916790623669111330207643083607387276783496563640037306907562967197793356219979124525464224566538378292444601272022648483145023683193666350407969116408183668339112352918009917159719880850529874045852786335590222161539115656245577707943789190821840382502684782852116574903410320354644414616428945916078396343369532017368050483535336985548341292789587764170085707336266031247008939450877660388911492162305289724482576725961147998540590693530708446993730096741385726673499368747708166462689273907270504348845776469999324999262055790437742607423356978216835812460982608682602306682663556192427314321746824356311367370895962231930102911989081377665591912592777019779762267007671934478707312280508047825453302478128174345851601095106444701927908272089578589371507812199236494951699967608275541054981179286695231698825429824836578358964978919175539445579491991493910944708389475990021691678428623583278499004621608023671127373009183614027410299707703235676450924666415625449772938037131371038758291072840677088628755961515593770238450507420359651167511184252590765845569321582205227315743752097427921336107315291515762937453922257237032972648115107208562204279944957404529115107960803298768646506474506932903419498727448383130669608044916062816887962493242274318599238165764029763794696764723319731176835464115929129182804998209019967880505617601872415074598834673626812657456747701005815110333841235409149803135563789418704073715211907054141796880190928391492028786778024492203593123615448014005119647375181956769867494038828412536930784316546284465122833628337563253686628069188364343368644972575209102670446222459097149713008594418766305257448910154346779121527863045243579363912861152704716673032105474070199752139643121024521152347365344280122416646311424005375831564511859816067619237462336924399334461722048483555335451713396981236315987191863016413496943057354595039127945131730324797043530055399028257072964201343818332459291431308758354467571150849078044020685703162561182049053827049881355232498852380081618080385027644311837852875360273589438436104213484097053414005833578281524077839535128124194726756263257211671359440912046436407620297395781953500787506038006537708334833409046855599482640059846299605078192998451767293776115581473003093003585484865489655487215960499518426135238125895769786253548587833284113122556830238508172975098707106352900625933797315673439620918576582114725849766098703483644904569051428078469979619133819528522962801246991212490316472303136076779084671294180445440187367204544084324102178453265977862543562193487067857172850939426630334172125604395568002716683636390907159850829012845884174119927829377652035654698352395600939581076958101539193382081906999902499900332662064767807720474177559869987420881531817136710196665637353901978063183028715470599218299110565846410938944211590908307546069281418243272384329616861965045604085413577503885225100816042890380564480239716909483139613684215746612359656495908887017521835077925866529609076286904850173900945924014324014195658893782717631629438615651155648064807998372172195191988588181875391979109573158408812693066517575928142592818217903666583023180357748988884629401664245647707516542679523462577138977263334091239339289673842332150773408939064740563036326663336101929130585250055595021776604035680851386507542396208329652372690792475794912153069926736088543338575144371660544109582003394530132184612483454186849529677868781332685438916681577209217197540392093735589903006103977915421057774987458321063718444191801751857610438125901587962702940001021760904670271880905896457321166139314409255676199193045615195341219842195448596181293091655600155713663268271844429728827471354306488164242399946871828786675738025818424267954647176902011352788788514948230365626186587331569526640225329538915282190154037855878232785503670805445528179715118101254952317537784971728718567024656472582278726313669313423561654559786169809994132753334594556454766563527569560920729927655726387768738654625463328683031018752471861122956393957974488103235002965070687877337627474932268452392727702093582505035991528790316237812903754242620189772505679597581563194942998348315698346440484293709140274628994529523822600082666778743844961941928368812525379344309044650524678810648958699843200556362159478002318835368724366032517108499662227044982974225082095918068839038041368288361333961229287010597078581023873780887022736289111300453044546289468393986277163319548168705813767561006699890286179214661667209337162571716400360106285822889394446691942423768550298510829228067292910547353705837262929207265436188019255154128025613771537393770806849799476805306145016706582761380733372378420150016058826359760381928310867401058940280470036825490379123077212530722268587165256976440465281445215023087517897313362505579272816437676107645875620156066433372222116260709211710086852333642802675261962796017555762672852774953711327193181044100785615970413934144005962758805752239193752822334505422633406059417769661581621361496359561910108589972314703591670795666166068413786124775617478955196726807314065299641860664314725531656293450134904040714071848160739821899904159806202516474707489666562568449844289269203793964795385158370860058198832968529626724938545853983419385377709684565385314088765550506146709991797991950478961174060763619113312341485620487917491053172569508175664030210567795444274039837031065796063564549346493529355978599727294734122315636032298642133033252380083625140196977309191802926829909244096463419135897640022846211039929402399912183674258535638120747686487709436238802243345954507074792717255095921275612085507996930626420801398136634499775099529718892356574911172924922444103947843316355345237607630925969423161282149725418940087334655255040131779610131266142491946961331744589213185183553261629738685111758697121398802775469471130139020806911022880507742006952533199312836965668799076099963379610392105389567655870429850167088557768724847570262231487688696077688901217971616021552418101500803586333952650785944548759208889774091903473589831736326102288717837383127049242929855395901764814657762902823545056355776423902666029550132419152970889335542473298713896036540610582643274275585457534520582885024157107867224746259998377987093829084941934024072189678169881110229968939593715048937334521988036378040553733290347719758169584365156807261773735874649144225711795011775461473896565872640433665257564761154719194629651817104590971117007303000028612343698702408727918569700902950695074862709405717123750206171318795297774578375531427787263407906219552256979157048642872047220070014430635779211704475769234975434557043171006107537706733332171398796890263585851826257706578201988315764105058789273460461485976668643448057139517029043112564998847531021034962422709541866298257719962608798577824291854047849965716264044956430186664160737246409975937363035277118988966215518530915363336681097794918725309581710357256170082498382995545672734040821673130891257610023419855260530498878937398846750094763367921508736415825152822871185114411363749706158375773318155768172335139665787643665001879120923392603198196686057546604198783578356812007313973977799626240981710738815247944836590824019568625806622906841291795709583968959357248362132141102745685760775391531263554228767032274586689783048029550132933780591498931240637437705874454604298961506686361858907687382606836462542276663587661761980938501653365138832073785076967183228638385709306524737579404981453597876195676829299792590737497566258170059169766131585018101573810188287334711275159346107946864357362452185501077026099148035686684267446028756144565847334283093170284538052033239824467332812377720504535797625560524019772943725742544013976746628575222502267935455163004670435038724197338153565395619867638634772841513767427666821820892755391552017367071041481802450863777824091068774693086537046875825135058507450185714912101264181260579320744584887360740836289005719991398461050722015392736256334064697602305774178923350110951676387273322003295810554242517096067048368726672368971474947885812164171643383175577642206467245738425825669086149969000292932095345500958540606302064925946440490073747357278529853747300754837433757171271541723027424271190553484259203181030914916067841317717479358786421995999765909197019771380157806802375682480295880577197593325517736814697768931172513167580242971267712206741830404829073291241010762616404153021598058567283063529514094037025999088731270802315653971155420449638541162794614579745537522725412522308463891560201689568878802999115669428240258621176059342521991435178752169900431572972476340126854243988300463544131463841345581812399318890559997692727193745282257045766034534890309956460859063532144014168818061372974216421967754729788134396310204367411730093236824583677653125782447342480206204796867744897032465460267771203885786029559148283415962209871435740802778631135494895265360779085514529147702044072509165335276577663512370885932830787437885782622360564630360801495052773218338632407652134545676763398264556885460159453247817809388619486516221767803170057010673894988256940054205459855254549965487304674304872159942593923460853182585643735378611533344867258544235365192285823976646078210629472016156459674583188821672454602771196250248360624749858852610919700220754393171157960263021705756480130321185088282806131772520301347104259272905433120705821468355431402968942019740992550839150126877908364726973072669618373802762667393012978455185812071389177007457788379841822060508599659435622961910155032966162488238085408309851481041278173488731802757431521888654965324119073046904547600576938196400037141654168974048340783916932133590588875672470710184715782246659609735563089174283379630653608578815070700941489710644201682591146655468708777338462275880475771015386729732276443085612327973889126612078357541237294212982197231826717767567037268075539577317898719992486864876544478803065706470999816953813478572065260507723080508099604339418994432328740713238449138892956385132335583363036450459824469804121599937467189255906097435960915857620573475517653686130342319132626008487783649619909603556222830703449515394443791436297743606800988095478266640670324714486764763725897333558565674216282499565377046763617626591565839759171891135303109000121266213076984153026188243204208266811707076063493250605431679838679124713384621536258181436699310542857961783072141367447426179651080964647196844372357340904204944199132614409590028346595101396208280541153892345457362159696318284755269843220798150922883032053676478692435978337783160299724302247092620945449128533871003759441896950440990600041967726525462404847253175476863265405270432905847517539729562543860127689382538095718131754752702988350549050612574493669374765944616793401602061101552247338235490791520926021435467752439349470524810843329445620340216822316874522004520494856301573067695744915611201363157502820734051069789140983431803940389178385975613448304506921102894070420916477588940181163733306277181700930309951692865258761873740595430748189461130412354445200860837873980037241983259162041091863227810116176765182863192401287902005529697591942242258776504079650211792011177830326659852941636989820636550183016034124400813348267125765152291090964363708504808466579814896697088685415845483732674309686857478462424531467415797833501978274325688124572396864312215469491724135266896771753649655622752090703015522795500489159249352472843106128814085314795021723657085465742259437392098848639583189527577753301541371883316698717843774799789826583150651516047725062438146696281735482319780069882299457332668304961531400922819045199673662825007361567262441915026824194444464144552165531651002715230590168328924511810166101449944124691475741159154778297445021956529430997888497832184359230638163862750954074661703543650290598998933785146372341958712015208895585002341382336056165795704483762164799755102676335439347452239983893798285043467336262433617746354724078168600073095230830589943354092783345533771345406922845706610074061208151012304477390955203673721341526440587814707109886458825787632437057052690017401350893366181140818529073102650503833208551234230176840663559306395223120171432522830284794186922402670881904750734519584020286367385460194627261848423924655474722154270368287465704204863468781569246761017825964297891109714563658437718942466457255461120197039051159839776666045888151602084937642954779931639421289847753011509513051944236222667087194016301428519437194207097388760649842584442812869924905227325158458520442024397587664852788110992679633593423723977021659379328011475879691104393484797452326748369415507586621262815150867746110074023907640840052755470699305516120359387610307292924772976299911337699417209097246412002431187506968694423956081927808212958195618908069932352660659786407146268062836194634290701130888889649605062243729747821916373672687197656772749895275100286211311800286739254454102850514878548216401316804233529600651443683284993650095306421322283488301124585064106604199906304780563888492478799669142703266848273097906150246571011098177160642661534183828244563127067748226841530709726051313416321199552602330204277896206360251436409957240313239538647024993865703256972212440201536168241447566244202256551252358189888391209859928776718139568162914405880357935834944094965761815361874465830249384282390942032483881085538718562821119870091205005768319331389996175988224014521780769210229320703643776855332354004232032358997383070651959049702602385845891529199255363191413052244446849123405649179536452449602503419545159924434841683672397059230378000644143346909509376679584838411631143439692046881027561977550040226023283145950819754063195331909202773174233964581802141175899242144255535947029903652793222605786145897104909596487414524056674624950532013164528015088368734643684446884884339902510731465262670591858975312258851646591618388632687598421026028489069885233378173525173035520000087770947278897576543568850954629732981332580261670131166355930405059497612779431627289108502931145546368625975346157153650415385047324151045954926882062575321067259956678095825659578020126064043067740725719371679616086086976848299794982255576583956512410808407482422802852509011103535120417040055071556774000003858628505974464598810616177357956335648636529481162004722939757594149844924264883042552403783635083402081088399125682316175398231177061832124385463444670383619713816607049662223731649092037191757699795481415046833444126985112840312463969712539851894905147246519646508223744571942317514582286824698037660759386174660161914559468143255890263356441224434979982660952373260193084092836777831558411689709556949024896295034391270710625849606271908031312029134691183792216030393710596366215744483934805459544666308225298780944822979771980850847377744738691044359747992188821716176869730970755925158591766116437019261212114537772865054349675222295292311689101510392841125021790601054816765224954962029573481849504812139787905617291453891308579647297788932963586676932826180885789351704830172320025939353127742773529142068916892460131045075388616523954015673914317043835905342568070462749936068425558684851848043795979659028104234971483319502655680304404021785975825574665056872827243477746216946622897981822661682036017038385347160619346334757700126256262379427719655825149370943635715923285363701222401557414851474033157897712531559651191158454054245779500851222299943247631008165244907635354916084521765260833734503886216984296102812625351641759103010768848584906879406571120062230244455180274479735280482314270736191667759546502628225683952632708205384992604800894208840950611374957183531770887334445045829836286881748044931793015149804113139910297308426121454609329384679284833835142950824753234847906189715333895276759724516786037551927413727082791193827450631707560726618179927195490321353028769340355033791691975517324240792603442327790288841170705529961240926916761050139479041833446884189598856571052004397326624435208641465086756026601975268033657670227225074588701153386917154618099726910358140162543543524651568473076967201035386127854936736179586535528410859856449448585400806148745360627323513534217889882773714347008819496428626802153733658959003018537348352171438388695433206491448353133254215247648388819585657890307789663291054875226094415177760391228197339243057315541425029470306668310281663570424569590529575866064833286704501660091925712751792423223537235345378890714614115070599118995330914946588115770153188182151271679596471807910969542855123286454090642926420160224393628047898742159626986228229935381289388382694544425019060744187295552336643890684546774124394511988271092560768617830829291193964595755383358134378593754798237473597089188896130860069840505491870166194129213991014453426170306848949595504358383788349726431933425326029475056452084028717421994978709529529556036049670600855974482346904870894224706127565015102498805210236621122939523831803122748228070864038527564997594107333297712965417130718203045327962654278366597774871103612638218715050977875522571065834076273624438229697487949037108025595577985209568806745811559241390131613873755248569499256300780310249526063843312426754956342989010250368684171109770468869389791345852518166018195689656509566888912226793521940382860554707974246875438116587152767146817844834698619436945421295883966950080101832767511931593126423782941160458551426651046687339316038383108085580659504277773540487042640175131017623409742149983468417577753779461813312160262271694393922854075129343565278272339408020860001749866912052366574928636694812294107708510312598674329450909929410252314301166069931690291561830834891110027572308068310947660596952940210642354280862884415995844433696069758658842636947933381645649818085448693975616218541012239589794156053054281940110379753224130387993577145168491851184363474574597697935769148988625757331908848220616680005926459320399056787546861860353286059785486961947237951869169751528842736151966592067288599508699874423712736635297867633115892605914857862857470896555777038076095190588857993931757730999381366903313419246482663714865224902534192659804707255148504975939311922956393385881562225303766129568213128816119563710532473837620482076561062112377559862285548742767406692202236719387388838345264187896979181409898279021100563436576852912020604833092865969446595356928348843222551413375247772438888696305525239783820952493309377208152622614959308402249446309388072121210404966138147733291659235108203721678153471973716782331178534141267106497409631280670967508095904367137774058249875761734512452060770693382953826055355942700009129003729487990739510407016542741172451510507756748980717886492036846219492376941310191579491071236632295683332630594496439022265562841917212019103897751771056109916919843544258462191674499884533927147880713093230658889017537742866144332510496882106250026169257343144433359508518590951719706355898267534568179301280438060951755145567881413301226215185929775991461026890155703706763411508170717618205810109930756582593842870704938942327515060543687350951949431074737318405754396633449484604364788886013470577719779436927480545524071969344358860918201420948207619650045036960226980837923995369740480322079031516073359653715027352352546569520819526245641372542348609637413060793746907484163369832229832925878119595545005771170444945957052645496142468041070613564278252855233255600130553583275464367442884593136155082068053041606859769562176194931112061192191632306827819442247738653538794887431706651675777006041023725861760096513360367078950270294654742915812700789182060967563633099155443761884662948651408184360308851576126119060899340835639516746267264421089844238814204364491594987326718025703849282762690638917920604213013809108103813733377729729455068538191692664079539226243377323643461696700931833183295969457688511461828582638181181431851844297616362269733968279034383401698164743845565312993902992071294319105005897193947801924745474265434916356157754537984023289191414581342893143572868606993024369585424602219713169570360652747691936321843706391824186077193565669436952085604398818913106778611854985199470806181280509270626245111961347490582605021285649347359703453233807358569846984363959752729251577801164476577122344098562922492006682348772464116372315399592707206092873148577501908181385459714788102180463520196997357093880700695680772871101942409013312302115978008578903910824702788598806246740722900762640155100262286663633128173453334842355660353860336251755854549566895863160621035499479725957317451820715237850592835093355783762756936454832474061172595680399372663637388107237825852912689129194109062827755235475297393742396745348508777046762213952617266861924274289888360824220559771893016930683463591662712228498194834223700957500903560496564705055860168332986174123965665035694077990562787131647226462853214476771420549154519901876473672051392470508042649880169243583229799629527885645028107978555519769547524767726972422882217590881348783005305059849011138330797128678705356994566392810686298113861811440474805931483783107671457476916260844301686075575966063953694135878593623082949754387505275515249160770146871350762954479932046492465462019300279309554644904640943931606086010476314191601331897380353423350851171371241800911241859593711830645256706650715582354840170934386006208303031132757819950679481436519889865091619507030265953606005907663076921380656418529720039217402325148115662657578243037996640444344864772411857705089105873905165841353351704296579415709837364405888902293412973780637716671461192071784432554781125134522716859275979400679574650203302628894719598619433922502044426396621614648010622234839831700888309522336817376517187911842779045322532690717568480422970736909454805450154608708714111798282316064599195453040926256435162309649843176718732059924146758666363311901161529191800208235504241675299662588965045235736509674346893616540206326384954605730172780438246095395728660298771759581234629773667998656239466795827663799486462469546721578292898391811692204702581196863202052022918139197913607150914091174365449189268736458564307984398190607257623350086962412835604322628399009881227313401937678938934329394922878054696061398796764833153431449209590488851656851504679251707964031404613803119985758689288621577614393184723368316303651678721006616416806359347612200747574222127987595378772644281419183295708308171389341288610147137038878159170095049413555056186154792837555609652232100368478826853967378893203635442891456895753491959562315549513634114938884513401423157026796543405600484669896353304597270536277812537423301131129961758635788383599596686793723833849974680988463471469173998890823669278379726117348389029178447030854157696346868827975162457418725059368673000630806012468864903736042359238623790267022266414039560174237600779773302451191950919605055823986108893153438341935316312694000610440412798655085164158694940430071394382194977482720423355039314358471055486484929009458583725407987133575543658255914113581032613356901905481163518144690281975699135629198417136155465692792611801018184055882005183518582037420211246142952219073716040261795019516810658911907955742255600975888644498068038235959082957292592318062908878213169860156461870015142739979895710244419681173490398007860576074179558588873359247158355535574023476477472129857491246310630645934559422333730346926515221550327558623587692960005499339454504937446257847223808368948171961506659094271211820272668452458181624686943524446057201862034666479193780804208085324853699890495130846691655990965233509079148737133775805606222587926147231127854058044678973370343610301346891483942248722378214310544022075913190322094822129828521250313799350512160374862597565986940911322190026889548103027319191248948795870261632754960722522270849365477997103324663270626227305930214786247541305355786947380978547891121964971152578411480047420076482182097058351412119737148557534075650838583611325815314759507734543460786048439323512866400504895703200681479347953881830479697213399864629149677195281311508727128532316971708999941754294647455304304371882278408946866605476566487300584242192038083384757545906865405194631740226459391365221123501314764402562245939181949703245427685092060465990049094962003966137644966727013262835718973513073912049804850136239089003248008793868824814226421840826756738291997224842610182165599703155700579791352188563488475221497468745158865092727696357298398193344422436168491984181424817916960316575426885109181647271207968964476042330260663165510443906956870092722167635172914501033130242832299182345083587933370413855454008209217490410466080832945981621957798401340594597370501934488670950744209779873355422844588975190618187673856544259857505995285720006199886016087019429725908661642836643978534546714349467569932016934183724795776108673029267789207133518349317822636566864557054588774397581361096712102597718722991314740976446788237673442256031037691109279634426034288972861839792748159071744902355120666920629265430106947836963289715259777426517237297334972785717879186816470028536783154207729245528185689672507692583833652444650221224236164772060176505364170938255702887715580214566866401937255937097268775617626968372770634372972475541279667178950414536062633335344903038300234172853591332859349242742147321571247958392922611136909930016828727538665392166349570914285019117214758849563532889126520744695574585322405802958358319536540808930949148439194773042521401377641271421504627940496529763894193728994885301445185193005533125824991982712298039703023564000066795113918736828306721390869149153497592130711408408248705174057722745413342754493354234123283443924751353097274033378614752354727776159547648790098536786992039279107501725591840038184298609041868677200264731022660722803264513854806902389636130478569896050389751552957524746062643392294668175035408112742971736716898185520782529053253714033107544034595902210161323253744048973641874720676495588576883244536012089963297721195448141230402957408432114303398860895030087537367200347751603485230638739648210222322698762763948897937989983447510042869765082496284240729027126075454263951666766321583559141062701223272995778615676151265053448505903860700955029268591011290484208075238436005660584717496182916291142388198828880685282330652348641165633741355077779026977606566831127169617415278418950545785040839920752640615556775307219929208757060126135736671690405664716353339967966103955585166217143342647299551524723703373749884685491717470951646902117399553579376990311612620692636026469899610067725249842488983783341624189953670984827625077298887795386879867849080954776124694018767176341433354369585446977344954781775384446041793737420211368871208748428636602032817613097028482606103813633427936854995130022517037124932200777224211635323907567303004206160881049387095790912192087066049991872135071400903671047193765105108706471913518543499470995820815065126410341490154589973701839519715302952380973587400831773577069112554723996301198667468199700202381555405058525173596589794402182715823498376171576854554083355040538216005148392985479388644002195139408746772188808934822634317102760387345819221696647607336722772609930942155029781250067929080407453116084904533433384333823949763710615425538340790987226613345649636867680037950955778593775769996019040411736948533828753985643797127266969304483830301724478944798688190006785247645551508396617939355439722104887854431852105972182607805254303248918173417731765735936281347872200930690989470567062438375426816340716771963321661904639735124619114000907727786982948672110178235060229713967435705841634325403635394781560093057156353075575548186331673546465769735308194639192758149613139637497596731169368539080371473901488094312677043436874808545634931787694220635824187161109810642327718725203370582319533210007119070088337547392792710716323195693308777651327094163407905751395683732081812557351425095666394105074039745675846778905882356077613951392068934069607054861333834034337656133908926151848438100695234704458088642220516374581321004603667960860293850917734771227226308207238527710192511389399716681317880006342505123560489023261669988171575650601541316445282741627059565860314495885649127436678862622547055809119054341448942730235381201623088015486192368019237013865396554459095325464945156001842812046345753265044014877652684658716147058824578976464294178127363398340471007396812351372190293221302910436072554940142112628946835841396363170364274081393635724177598941841768836668785308990030113472122317598761870849107545109437797092804138861267539175511690441941471185057947867289865318925648186633501891807195055441895609126553731661539817135336156067545672452627358540795140550422891886553667763118581197165822477854768752513387156167998814753681515349311275755123142150616031702902262061108202087047597691560027861887718150698273865652386118433279218506245714095413771390260026831620385559778167506009342701671001361101922226527084795236190472860866412542599683681340005910968103635006395616220966977637488845994414416230051313503891451328080648126559572300877053352233174790890616311652136371596207448574487600651096901348196395249913662938420961382416251535295908314979685246823973739195098599672606172636521820678698783777145393270013102419296298888190306133054712572714082939425131315179903457016306728496310173143835623874851451923277607194739737951096224094954610106581712280895232026724909820460478168993729300466805853721382839052310317329836111998459037545645406877885174163157029426900133744584172242537907323253747028212616901558251634418974365584465222525307301437719362388400246014629738221172612973483942083605648115035397259038189554290652326216447403801147551146620241923353000864569393612194182595226097990193549688203114749342259846541017250778812945650374201059248656455604370870991257816576151324513569534376897914125106420041687103940933602957631160665698333841458688084491505197109578974151432314828779937365984259829849132213315892373592778040927709639768885538874491270457760382695802077885693028179230500680549805890098973571936139907555032005400749477628452379994922890131663207562022608880073649586138314710985164014108317299289058561866462085781089368192886613185891228199389032355055003433528604702553436977470002444627338899729343081690198695325812360019433370326920151555094552772963527576042913050819963750944501302810489310247691050830371772957863579646394733407420237540221847184759658361530463317051115864177230416129298603441468731670003621330901914691505727878159630571243690004774835138918415980633114623011992065064000675694334807732540898650982797572442227712755529707948328966083763471192352680826125699134790113296254959536409048539878113076015875288326234617337436630489842998897581392582638638971881532876566133007194583757045451816525977420724619701786591856039783933447339712484065465408785329934604481863690648528096067501379372851425815695681677894504257429878088255001413351726314718044339139143196447352320584639266298646026367538054592999244332865458095128249793860962594182072979051597664971668639187769514897023478848450550288358175099848521942347146230517080581089821350279414834057452929596496665356164647697010732238023138065053239688741905530347456308324351607295135602933922044798888493449413798350942385467480044180623282893205815470839574022174215858656313475043751669654300479676015038572739118842251335693900441627635039295735444408517676644953746981245881542411210049934856857126405849737327041657378998405416431888240994291093719973558076576544807825305401940446498750846614049232323771036654336544792835029428047952662385822738675616050956637741760673855547354288259601557069280617354118799626381409017299936015366292854687296327527771328265411152809518711837844844350630828186987184431866332741773329787187693214268252694151357858816050946695029832261770589645173996816283923954697453442540291297889689887626299609665967144356071864622304817672494508628484978045279448595735071286725463695984150683670884788729655384649846658430280198821914126983837659740997456862138580116010511289563156428032994706930933290283900768073587184241164872650100724737218705618846663714833539639324418491391925691266529382034145066121405828046303273450305004403759567940886460039390921700019580287957958452088553714396479256985558487753883891777054892292943296849594666970592035840103192337394442065190950088446136401645293437054409977779626616280136704733887620129345054510602891189077846899420142764456601663912447799000706309368791536710677624578934372684585000805350718851238330679507841358428451448284313522474903840641571308068145860604015717755560680934292267031022061631728057489018110217841846893436985542870495499138860660587793945108686491524250632420654137692386266621317694091507968511652010131283533862638859198186597709368592306451809083814311305384302911535001540629656500338387249666912292797942169243996805385277418164862365779362591405012003206888636108305182017917636830189825441090394265967883490976811115457198213126800261383284735026440121205962676470580680277843536635620826549712039164405015345341241827823930651338266579937958132215314067466076162693642120274587811949566045032704706900568775768590899430602766751330822401241992171425002409377595219966256188151219632859123971526459580356740953578821036666385052343089610029585154367503028061432841417117217688445950974049517930939588453814659447977968218358578348559111176989962283420491215915741126491960930128995620113299903281537605860710856538090892345775564862613657787570622354566754643103964411714030178947745445127104190668545463081191112072496802126794518451705070448122242301784643599377089796189908436878241309838862450562196650990173185930316315748406085209493048550969939375872202048695143111426029460738044498732610634887462169784556234629068592950678767523661661225522925151486674027398465205369707636011940560779083971773692963753208979998055539528903779461536853709715611993707019813958313592370798331429588221417573192968610705057413109115055325282153651337445566243706697308543759549869443079311427558451929551815836711151177501188242278500047578696736385541363064803749411695773245232626063270082654866227566300741698477129883334722615331732529368025032374207989431371631495426870550476245524969018873574590532100118653043320505295911863655208525320360333374876201621527500949751714827649410172806151222836204156898273526329024321160172515411601882274472480471905099275216627846580164601411926446061524106116900438301301345924815416107432348911019206760565937037061967491174714459104286232419528893844061653910925059834563664162350783043783001264121197213313151116147224178534478205786729727086357251388123790571052790942589564329135074996814148245789915753378180954286266961249356842748598248175702806867979945767297850874240024999738950631424664135232245692747844557374244861772441200621891758550429608859120882631399452443152658500446237229572800792747161823267095739782630655709793524902842796370670481861342950875913593677465535415085088505991955296870849568986515548820255251463395513432452790254994398101337131556359448042184490144202265647908578833245607129269116193652282775961074171113397721091027972265522795007260995649608874079132451332245080229329367447949981491834559055848082432394459378953242904888951568415211389794874561601955717581452776925802270802107501883172002707272371923378474987155319206816510224381317676214812837254319640747779088376325598566554133946545242578621584459591125432801835005261523013831609639180339759656191989368175930526858768588005426704509902276855316471548192592197451946008413574061064148673381068909428608809082783127784827464105436317991621630668801104944021024462444719032182961989175440434199639695636490469859018011131970379958843971505223414750414170910598210428944093271528019308916378242629608046636146888851355741123951816473731049337197435423325000550933221190982882241268832798791171545436890452880064109283860807883686904676911607025837153174014382774447150099575901152333232052032941977780794642966351934561140241926923271736754994327643592485266201155058979124521410386607760404164098019652814922191909123391001303208190649862278465578562312861310656455720179037141856571878330094073297788664649640556850674985061082392266169513197771830246493684388986406205954406892644378882296146849362960265027967265858390097489489399104947319633978560063928546572361180030551137138810888527458108674610619024911083535022296754999280803532575503481485742913935790145352082380546122134573382564266699818381564134362823593913955340582206502949628027911761367964274036569407678607254135715920201966314601305106561399559623593097011046494883014124535586391834737078281020945107353115580205618327741251409741655832364422354410656515828984105745178770317484838496385443097932386373361197333600967097673993795497394054108283830534270619411768319441648391982849332523779984001772724732339951134162337484645303825879701675117357662598752008362950823180473375000662834410082140737261893360535867198259644277975377804272715957622114025835645839520311843271445856816970314887914895924420681721993684787934976756786179821641664657640957611502847940058531840352161119174374187464550724363648830650083015915538258068153173335306277938729291876980651974607944236930726974644043338809340528446833616248218365752648336721962534225054957446725065896085798306878031098045091534363940884096799092106027636947343236732303884882410978363658898040018163747357444896207089352294383989989599090611980159725544884122072936432673543065712839165990144267838249245603788089654004403836521773093692499278495907491541357362209530486829977420054141739179174280520477971129808773231095633831456975699020991910018090321419999758037426484631925619971983701647482841533282437617008058312192124730978176695989123757558292549867047428330461067856775865654784612277927565318020338897557877091408222503145061943949758946924577357849057539413594734165725972109759209561502895155919649948558849379168467103761190958499195485561964989683283407936661721570420593386845721835803571911745220354346441187558730845041547023228389659116033005025888843016113974975760520965653708128218735392678120014644176401155405785755704927002731827441415429156938904669319307135213077949349154769235124498835035839184054260341273846901970770252582901458476443305659683537194115857590577387713241962959766635841366133554061274827833142650005797293427981219668040520105930383010001009767138005819963593614801554566805925869947736208475679043314159751592310454182550422203732358607790962859571549926748291601162559960000242263817901049136754075247793011784227164138965359989741006148827566131458617715095523015282705291170812035572170377201883936263083717025042667030588887660696224738505407581384398442208061829228746095488155622021146256895836420123434318732138932676570619753848054968639214991037226910976733887781899346019193213169060732081932775512006788973351532019722052443134014473937622740943551854454600393952318717922337086712824170138324993799452314826540327335496668214919305083611749895846381642213777131102590486356852918799115439004134270655976498671836323625875944515138681270065670297279120519461377136856116956252969281344264375046770467242500320695185803358951213384502680070438650579720851102395189955670764907915713057754163989573061121101072584890154047549347886633523794958270254345146294788316963447754157145861048374493772296173668144480839237148140190674172766803424904056069289958661360536781267487111088943231573545383195540616821884242557446094417309774695167045387781707978232501393303109586759076808244332201349599948312423657637778119968775302653893172626012363287242135541215944089357992652675828122226148881298979756231678605440935977544981791011281153962634858995247886217152558007143945444408808290772646608290047045318110496055865495805635249117380365379174076936519911508951290407980606184470715684205057259473404821897359119002665153467498355672871449041511711849830740211236302038356936840101733758040811433274510930173985137777980251544286051698346384985303704033721980573378644698596269269804753632703784597283475117060819781564994039416916681512239643065418050582291371319995987806261361444327500700818606150210941176966012890979216304672387194339571636674259838861785504531991153524688366966530148240242672915267771283695101776172766986822823973307479646964125862656737416966225986064302039551613266462773450961596180690373201365885389722771693597815433399582646944466091164629797588309111214180549160863613593090566806770857532796386541096979563264690583456520133719752228027122886328237474417312378350537799644069992796463446657732385948107434585640398263714375836189368931764732008678242967434249537541343861044217560929500039571571950688119825149871428988339450964182941707532997792873100238359065326103738898582864485993507844683251722349718466281452135825311779622033906153722377804576507115055457581976783538875260740380202018724534061603635744599892925246803573272968421944933208946589127143400417119661365850643436760597431800785457388764051322222748434348282430555118156090966404924712443287228540759456815719360185566548524034929581795564380323957378405166178180565370115517905515485976755839221566761927498935842406729759876516701473649645005163047213370675541244716431400774019137613535463245102120257073076960412010466105266535660992181154101163580550342517736157298553221561125232037851453679426051125473938334612032288009246643476181669185963842030310241100159458785371484489915144572850036193146563201327240454555134502024789570143561354566244446212138979814490232618354359415217614381771159817650157876630997217829188426610293367284536757236162050099046670674525518731736842717636426813887874517884406345408970841060867148099894375409294532927533746968078874202776459903527804515195669820071816167985239777809750091894727570076189560706510302444008049767090447016833678859676143179184434946606136828409585690522149580589910779221549430125653316691609474005544827497234303190235207371982297480649482859756490864346019207361068424450588822131652148604144535188267105666210295842440867200324205090949376159814480777418610745374036647969709488229892571677705722124806671202252764661007077311989198401993202118575007082595260565649395665479369799734961024502171046121160706324922151884988202307492977886035482184759134845930522793033375541108376273348339316552241453293185696338119136711609461251147308978334205169160868630779983335986968514168982118451295197880709748227089926275492887297368271915883291150027119106364574504492244991770792808429018361809196691606867294748864607467208029817274158610024137745267049299551468257142243892639673626887948696479043800882761576307896740920328407059375110690934693180242959782865616702533280756753862765222664799091041443881313998354426622635708941811183156485548924259647295618230986867164020700000439176534680535284307048433856660815974285674923778859358256906474296511035648950775502405489983375878389205784433724389675224729898729649432039650547574546257575560613930206188949421904690751340042235316563746858493490150717302806286489663814422720929797084452478013408632158631067589803542111372100343518489542923952159790096097623608836483184076028457243385735727421670650912993467699227633691499811542463358226818444103381916052812511225378238180165800301395736713634247332479494054357224278501613465069428311736741517988494917874760487912337470708210900651977119907744730729317801212038176542997266977365584948688756600304496725756655095233379819214827110627322081506442882007549318713757533202725935631016993242094200726996393411140986602862845185092819054631334486320688948775285491065397486524351859879791287771471725880947062656436156258381547683404207555429413857442822671810463031860451203175773181523881935556992058841938140938474801549765025381738432291644342272842728879013460291115111662770015148005646641768071612915035933674944320351198173873526483912122852474839627514512153755965325460102834218722051818546584065062315430636149224595153625649164222680471936425883034379987326964109459503899615323757800361088065402409840245446594930091140991127672621018236482945034182899000326616497394035046074063269733538413762948511170375750523214719665000386659998506297732161441542586514269144886395853630035292978480104324301767228043795344970905297224533818679793357356298630307139069023029406538124581217133771981234920164118299658960903687885043610952931167211881451955101017430352584795254766040248672743845339531332003978334752650851733258786204500274588695539482685498769206884940432965741854083075681115729674406863579080802911981154159220223770173664718224751866616943419664960836097582015332858767785840659193387892631591262496664403597691453823267412804667737111511366571400177808296527791993881595726395774247539819910794807118203364966955735062567582249231968590713887004358885044524659350149994988876742285410847550407121515961360725092238439534035340358665020309821963473394441567985405175707496239004676381145010028431520976950087003610105393826503999818324147549914968907991456836063001131785418288502716419615688134240760420098984202063578437549224371084987982282435610962113011415546194575928783049372411244812144377251412128862678961118131398676285956257163539304970195574815646342776148712459167580157467893809597143980298976235301405652173085857090358606041588785121543108660899261796381136340957402092842030710074893759269825350982041435107738516721307089334487910056460624179357988246536879606705522361494789619668173290082131020471508250420867662536441462044084417402369396577784145244146040545877634880446838476480519808964404551843939539055886260892100059217353726105415859927409063342565156309291432506146424964534626635393867344499630043280169309567032193915146677590082759713886631250227807757936774971537497070016313220470124568009642099241167452011769665470164112089807951567965386867771024883590098177583874755028224863538393027603151209273810333731914141521191015799105344226776109446412734669915325295589954864949365040919247731082763995909688212578514604662605803647138592755794004538939582426602053914165788459339006725055216364497363887849126049327869572213647189071431826670501063283397144446068186236408536037009272323151640626008508585433890266137336895604892380392778965465592707605736167557798930961661035167102883806348200261925007513421601313006421570744352772989332866342051964168977147542696685227520981028515382051661769494194957971130968161523330244264975500101463580981470089071918061135791322964016438611358217794706747657190802285529339749949826990780775843078965398151872551076645364192872250307311221572948845137556620117166889928434365568416386791709094543516378422321945471772234231459126095991667748559146036809132062715123293225629014316704928586632885749845312987870849326922216945585284877321435418882186229696573638317322791057799513011511990556105087438690734534317449631225756154732973584389101552214406919896389031928595836090472560596715353263461823271047483555524126965825145338604850257934355268914751709332455823566661162817057540421717598277888508266834583266112498385736491595494837559756045782308783134625620898818752595400639004976160494095254424423623067565467060940851123694535160884789461258947215155724867390992283801883669466058110896685960929704646356093941564975484544305639058038098047324431931267605777665451381601259186588772682270746533744727383086962274905143823109855361408431324878248336579017766637542370211451184650159792328692174468979413128880655610712264446335397541240708165590697530710319223669646527994527601660528632090096590456637675302672239495075490083407554339634551871649405644667623122967191730522583332556171716741766396172716426460288532043920252818350128982257475103228678412132359172874629141401297205059697317603879970176057441741067611241922795202242209266594767554340521710732705660795821786890428120486643131290249080762994029964040162998730333699810528054612634296735118185994425389480437297441200174279034799314086696955174471140328150774592874714982978706441128064073214520422441000718214295278102277071036792018465274140487108883691996158134275731849496031119474125975315737992611651195431359151247825042507447546233215076487308816626811145010747717888552553590721494832687002541645044654522956697823144846663199617033116566268319756189446421162875168006340324618900524683384405405054651943692235894787299487959432165385336757109623870379768875283920628858400015346282454966133572602790111946494112933127020147601291468246923269677431681854170523466437914647040209557586791111797221415288630655210813975017018728586270174191716511921754695611965284907216859163648322162275774188204274239621104645709989695213622686359567083628167174683654427891895537441005161700024259483668069828378346141412177816938794037277413213940542112268306430219563442008144070907667667442672314049181299810707213782675934250079305688452531162056582631010311689923776031818844421031311105796724711439320522655438152147498620949889972624107529752519345175303700635827980568157684131090984648346831938933188373174129408616946427222716637836372254027571152488931200626375460960103864161854798489561252861135500340003581318328090221629899328417273410705665754804387407718376776584297229845864389734747777793948818021279314899384138292300498113404581938065693603231901153668804805119322542807611452279966252815647247107986060272266165849080152207436626562688426335002157578284500133875134759304038022482908341191706118965883798126464202943515945220384339861856396666629806264964984999275252948362768302608100782714261262110219807908075566273279629930110196717707962742094201380087713459989888093133727479218039189512052573432356468947620858498428658713465348616533897540748855379465884927798279431158028216910035960432406003337481235043308603180086641058472466255693941869261427453358652134967749332452450484600676148580845514211956014112341164133690780327585962350070329931713733383840001677517194371422669646573272220632558012658952673618499582247973412295874110301644721045606363267466503443120844605441438267502913278812460854237063406694741327849141261250068617721896331731267182628420573721735916490950685068656493770862540493652872070322492329776094109649288792384008254268203103240454980140524575738853548775485897672310122363331270572675401253034696956485050285255947356706936942226812064542399466079831505371246590075272892407496617446125571976545805052219497428161838288236012534669185779151592511862482169138093416601222246554391708188382783711608861365167466547190114638505799739211738202637533668392581016437137626040236612311686872438579616814870803808226019321355914351087637689341354071959417931024321916020325051335649282099486282171584392102729759835676311894602832850870906387394307398164216521685390610705712963316052664869029163245723397872817906213215547431181991427252726436624923513019941300994761461685347697518544231766615835390561562069922263699185490089598008504125617312791513201956305878537625030303776846253471828227241137603549547435510032648421135908273702582919591843303650181545418936539109892449334474869632097275392327447274377439770438792569446693153957506442711415101603343188009129766400009920700054729353687781444809979663519059575116473068635576909804063776132022711147436433230420291505822735339584574362018555206724400129228926428280356939169181450042715489966727381774157411850328441815780412676022088889260439733903311010288966461119819968060904281515291744831293729169637617536881963626795860651370186151119437648307754234481813413632385977259515196123607650814103633467152660788562370744271585462826819961983774447232474543613938314054652601818801135160101268588849109447605844829596774619550946544558890871775845123630373866754113574650820425859903038079637780337032086826188790392090299968385378226267741655753336853943462570093598352955074269973900101536390546880912283954008000107054973441210121257956275668925345729089812361807211381810296140339338746121663998050700631052561644623902324519166613693826606232630550082601042698727982664546785809104880544044660366769380843619307361317983853970280018774757488624402653182756347775697339220872863614638882431891359469178844726866388904048507394101535730373500586928478119741126139417556924330409738680741930308555609973316264592594894158139289556232530925970457983812280837622926609947438740723349993305145659806790512926483928824035437938633609641912242792759745185781043475995345643672954153401341835599537426601470309159528700799376485083745738629353678778264514562830485524112404945890365397492865214536830016646747658927468625758447938765162943766812155933834577744875331757536934327546711982829990438575753504573227811890013255283202409634272353817685551383415752974835548539844997097296544448215295229267894583824781249862571894282357743725103086127914450439726204686928355089609056031708216363870706081495534757913850884556943145474085465558147830279835427663181596578912935160031909102038685612388007677484450568631692537475671673162971961172631252081873670083054180676829616064753425442141462028580925086151595086307129583247624984046589500438881413775844424863162873664495044564354963653623954865108067400157486224400389408708303188211141518959865082655069420541788086773776003293324514575388709834010743801996027894822072807675370807081647864180924863007844348740195613064103901109091432593720353520687752084210987652723459394318881947322827155529378117472680118346044352731084168086606764200344561688316273288056299416788677641247975752067793606706885859530181056409024657461912295113330515007788202495815784869254172192764166576384213664328738559239564739928611486377703506307403704475599576921505753390480625393568821033217004751243548048391712939713788570358050250572072259599848182424682127821944215576452775849592942533485235254689942428968370558695385775611531180095281315969694449038249580433358796142495429584108393355097888717174814107857262422608611246678195753943114902373836114556660882642338086021019891457970410507411666100084897216664541318541583425865549812700200071217579921143701504539189355847633176833238974934876353577459930690447499661973725538904745271000031921856415392631952697372457932175551376179307407176807949586178601205845177955771762287500987945996411535082524424838045658924373778242980756670735808019666735982226851590415162773480471051345123678629497568881210855948429006237472373966769340155073524657581979728827572528919219569065504558813207752688395135850906165014659986717546584278787136852643845152681408992861399191238233135414032633088406183002396905128739063134786367527088799284245311405850759956028013707971247338181220183348683106614785272664510402450324378848032689961677943474112857187763018300639580641411634429850598753588239371223660292581702467545920940360741166993958352689844807785739700435782786640739467424718872677231627767158922827144030448704117339323598705024296958010588505668395997617349196478707151460738338453755949085749580117450550645231982705898322357997730777872031679968563993730608556160782716305957295451846574823492571136876371833277660515925328102477883123537491174548586340391383893801826179968679700388356926725025100287972557569962057366427720481147201856016327181209781144815235949357366098733003921679533700612987159873682676518284935465450557517810850523209595967311799638437384416970800113460058070321607709493527284412354987972847947855158793197034655239288557247432479456341420340460247994843007362154384305923264209422132312545613670490623736138611366515081108607720641399122150990141776157318771466543520763948131922311219743754636355286694068830996492263480672180641483838391557178412707889133752822027869073717488027044303972273145708670096230269346021626176803107911947287695780864325328267058192011142298119410324576682846123403536722403744377232859518544769741174847764357180817345356606504304042119846855882552475864647694541768145242886391113944959027122705536980107173157848147855529070466016843350956309199934580007205880678392444324803202587762355284381444795989037565544336227808009921093145212142755988713389690652396362455288234702663115048422168339693327753348333303557060596567184408489266324992200379705617980215274799742981946085297052486611748218469935941798301154522267383856749523180916924885111039699042985559350786070357103320733504870027960525149794073585242224344692344309927420373655882895137680920708505418463772807307295267930116251005591998509725705914086383707367500726288277854890981762522040154274857929222542385080289126920602061964353940148735092171054959798134666070630801638593501816082104895540321026601794436211308481850458459935071063619450535152459265779756893150640209747797793969129117929981349480723507484394652964425897269052697385835513885890098570098341588277206162214223480320759457243160007121937580278093920943962531732422872223445012810818967089557352402715650319093218764271934798953215235075481142429395547512631642279587275567316593335026077233581843736279459225589512276139830190164543955890593405930433118832041597832816676913923959447740239363528376946080927652318978444539727976400253639682705407908005251735907219886963826205910749151542619586841682915390719925893864082393050468745074527471015503138495321202207516822863700152779500119170902189275830887011321762391800469906515396880925302392731892237463710752186542459437833574551906734717235561091018932158977920411452612902681475998606359737624761172705443108105564707134440269194909638053267927622334019488519046553742971034702111036170757365401449519845468899609795317429500478788035953383453253964272259794681993990053369988970283717772350933557467463333171802224505552029174285977209676332170238303749542029341385030001237180183087351271400957411478376095225594687592690778340050556651585142541864581985212883802061389376884094247113566539010435726431655376305322363021960180542048612129398011313174964521675824182367091951766066222986840981182337535603291977920215331479010883853600177534697590214833700637383784909753560570524030814135023376594271327927926568270557630327562259240834814920326035312011461316041710165336529674888358201075479058484464711227548198783127585462325281555295403876715129269413553967762219418077111233418933683934662052649788583584425606500225759187379160497673728526859741710874140991269228977118969475038173562102928118020993839090705272042582335392688574660212627558362861486373188379033054945352930609653012885820109287465754831084002738998307914575486783278807904162360355890740973232268457448489409945465579987721432517769120868494666650392961023486722922427437274067504624986571341027200246450329603188518880699018494428892851778660060343588252657827490766353915998266806106912687008848622096885074008960462903049632560669124158303752468966609149968907087643630008810863735996405325905881695051298596825406584760580462223037937438646593164465641712813854674842424128836955974093185350145365862269426684382850848585817891570001238944920369045319868487281275048773866947145924213277775999896188487808415455397046440267634037654307772082405443669559302372282540063512151969676558209329128879406738436546090423786006445853345012785932830016859085538317132120440767770698182595201889206983855671541012952519237944522210941261295492892387880126840413728596313425220641373099661748239138377878670189122635321894196255363415403320030416040177913316240669468355954926136328590258439247714304014644675106357684773500659202966981603191750945483595571023415565242707553946512468018415172366914151406124476361380171126496360427588225057741332437292437440725591223241049495026487811815253316859148126765822579723411624674281825386721792419968592852370021763317858041594737289645705509100320870351697534491937001847744202251867189923565666134306681461780625419798992551680871088558498685487136901505638511347716824722198956642361492828806955706585159090778520866098614712003524923390430562323785098781103416329854360753948457658241355842908634221178379483126830418979407158067543219565536084838006133735668448816817579908044270019221299943660586815726991131405963058765013175847740522245399592100037299766347853692875552115174243433234660168811478602850424637805097289734686583060482154746019326222625614068854571228398170571628116061934091597389475628427012482750757621058911772109826366772936613237853833061198992631377087839012598295773154037751741143763973373598298225955753670816932932286199306739894597178901676128685460118013176846614038739341714633957512840713155012027838930715199001683712631597440451255086272432919306608700106011691058898826140186965323006769968553367135174143985347574916691737179271479156412418388837740509051035595602511930653177158900050953941797747351012653666860724498168413374579506741371276770584921155922048926812187521321960583512699116383465993072007187023189222382239916318698957506696686162641635651278516522615224859715395731743548274453525969869480170047595889107155366607559338311313610596250167834359819199869290624814730552507127123305930959019817950861447541381658952715995054879698488584645940277411515019340044706269941852393597019501923507831754008805965878043644019880754113533459058318590576011493080826559759719557846265101656509059107477250719413901078758156165085462856684520022299800606409987151856166132755525039557169888968238963065308678191927050360018100229219984788894701517107121689916239013026100106295865057584957052460387746414963799821573186586062469463226952486483843259991010117305520978282185192756978721859677956864833906427744050854177471219909156227344717583337689548805467486990215626277141969180123939878786035150057452471353105534152650460634550046086230257238378608822960638653169132860256665855112426045464013735738178467195110253319172424803158427564786576325004994378010271620052087450444300006862126447915261943770115825766601808236216886405785349577169995259666728155648697944687319882959458996814860922705686508012420019859368170434492658407609747162634870629787032375377704162040126326508277839924380731212586595526351124395000838941510873256678052711994550575840911866230475991676761105293512776033182906816112070701033914930598337282181781577214168685683565805691443557284499401381507089734592596063304481463493835752218498550912634616956034892912894496354089015987459508093397205203140822839288052793442522935314753276870541765355494427112509858273228164446647198806334872379804608227265789779046503313410697239143814067933790061376797712121145067330152498272953315509945697575301970006765042327376710331561683434996671136972614740758949343556878474386127021297623317778960642351374445104712198306978378675278835797415300922925527575729139188246549824421925449450485347460289514816861268795989138978658660139819148736437086926891634241068805474320787405691144054679188709784930071226774618378189137713136432109636098667004439575877543279827613575679733243444968004098814437554064406759244590856282463727583661861150334382049220027286398031468190651247054824836179135302444652248370611814174331356598494972875156540542545262071822918671285432265282166376576126428654842671234938508891718839076121684132287930230932161664740524038440192116050724797919675686102295320387389049651717030630587478474533926169718906599057929464926775686575359709264108286065533317907690901073310253838133284950321192931504433863540263577705090935627358715073441658280169998277167075098817666900131073291314368378908211187695596096489812990756368528216266528980028245577474095277917039852773169338363936441777654629776884232339570950689131155681739474887716105909006792451235423813056968874049090452559598452386323026557330304607259448515401290334379460151308045165716853517723823818230577113223408130121938919846285948813090548523997003588581637782307077834852942051707542895019640655061057949768439587559021364569811402051306307006598910049684905593687086934572404743568666051949415164850917955720907489416953029526329833605281167076314629121720016279059282910909848829059758893153100025104639012877387853374635844576777816064674306721522131509100174506764352127364967508421782890061219130368985317440228704704611244504587163372798611871801853794211693658644645048897062396643365071596972085079602786954931000913938064256195006740408622641683432674559621714120585091828949395187014364264713533958797004561018447053756072516080034649841512283160094609072036433538898472278440441147882142085369274209430763915953241648644117726754613456409637661274412355490829900970182240111219779753754313384002520205689849036860946803573263032685234422565423268869540781326792594475156550180060352461348647760921205162722247001372327544907533957128071013727598205417589452088329636381297441173994378843441438770404650980624409111039163306058917910165831861988368130805649675788088455909451167666734071366391967405320264067134902604809307079114268203694881032999529992675276628990052959962825846690394428362250871565480809861405388078358638328319487531179745428104433070307288008402568384426112174198284960492281900556899167748562074519376638059361813896167175030303519057546871560486280939868682814862770743442837522747521743694653124733026840798142713321012216510780184648370689053425518911415109298944962009261229299745766064106325226365465920505628194038668401888978520189490052014832030866173318317721259972611147187459696086293089539449082049317690538975638844633024791099291416305576870050713916826238956856138235974663765785020355498279358429357894971232057003376205455492171049751139395013037696289004047955770725829942848600051932735089368123539532172074606918198299098674123887919907795444357180625406307130929027050199761693848941921526883929421242212214325404424656380766710775519795679368177336239159727981404811046986467897220897460065633108240792797964477125038432238688371287591277807389588763095268543372440184106013697785896549623682073338354125220198262132596663753087328911936110920349903330188633550442168708864183993359819153608198682674224104012687959580612123342084805526765887054895357847368283414819977771437987151611360113148312678139368757917319552074550206610012505313163863401270046433234415072843206949612075223492223667091320165346228009213735396244234602864600123346905340303647918552618562708170713003410430783237918918199173211558869041447693869282645159266573277825878569694316173424634202816314999211572818407350929306351935040496544804785807865853928106774566724777188445797227331914830699669326323623655086419019465281504172405156799732759207017130036931349982101345586404468383306041772010180846047075602149227843573563246316373289147170723333565725744902804725731303248175172797101953109328204167152122380141327609422327706129164017967336646264112397241883181702163786936539504420141451611841926173771460036765103182430747155172061439208953364170454401598825376903876628221821747606892965949728472483362410984689999031176491154024739291945970182053265992259581041680301649215342748431018808350944761928334014674073537030715715337247882064478249363855387329766742345399495986054077278261562829548336118825664771062757000850954086341641762093899430764761859386855106259803081518824961876602210679907298178354908093009597244456693063492587885318379923490046716921858646680302616647438247707378234923188957614378710174249188440640795828687808368688447477793073340044194079164370686050182685593775414873414029625817722614036416059106144810048216065032201728039569874190086349557131985928032578903932499091996277763880610448140939601059099153520065978818682932252240338245351050732753330637719744315987986425756034110975844653176905055267829403890054271843701344064497112092843676544269488915389156248473829961041467917696983059971361078837629638512154067226735819070561562060180139322185287429920679179040074405648596343344086154873755964814750798765193508020521270801128449449469828426246545919565584061082439739226945131180353620641888806541374386260514000419576800576963886142707171416384995846066514976629475792750371352966362926376502618508500165779850476160698784391844327480946906071255320189329091527010113519680913048009993007065098637989227952829657167068137428256380946108889859263095817434821465445008448913812144591352352124538661298808217115119228458940759353754800076782199369705957933978823767510263169538054261800906630114939671972406477536398006725001490150917908221018870657674395243815177765736872371728029982231671980326326195390469808297526638383629256213128374990059234334015224165057866793534339877755778379539778857193760445170392139555869626741395924010211030474689139860545346387245708476114906772069417869884881182330756535326724101442196911337279404161662827418443530289815732164410310617867354903204019424011195052884873454257232371982404163119777246580602875946892607676445050535894584153825739342360518532783565199369036154480210200662627241908361970019450724287056289188410123994199283839997500583301556471835317068835621975564870988396267246409636668991074614362000884826260658076553861274370573290801641065267874395520222470835533106634961262514477772855073193337941348109105781007720282062610880292879714715391384581420656920213554431996864728307941514302910293237961645170108630423692293972654347896999190465189201612290741867303360584373802654843463501432611518163026106531026727877769470559573105627192961736004379485669793567218893582688435627115940094756011456501483571216409115629810399778686746917659749788968657839959752684128386784427822895132351325707437809752592673384707138965316929959805159348127180559561189551247937104373715116497355969116286207545688623511148307659355120011085291051022631450867108601369507197239262766229508463836772861278341798240057644668092997729305491629789466319632209936216467100732892955465736836932816864688637079718640701650837888659734457243638851350357877517477095394297067632699612517579328341846384585131372081096030614234418408451654690324772647398438607858726057857364924266408714944752894918780943625807800010566255519339306528829964924614272869150635984948366477332077003641245656889077955294889786942465499147600275138871293542209481690050051363542505496740616550906466084435976690528051583843544313180507097585410953067785679571328904324548288852500606211317924334905744808141373325917512982622617609707044718688736920969384958902434212554585136820392288197218820988863852200008131970466653084103502142591927428367081711938741862145373366545782072210708374272139135589981161856820435485656375826137188360808217430236978367113147539517214843153990278387369682671857941986761673031600183029303934348456791275008008874297619476396511693666489564945262490651006577298144486065103104592892473777470354791244889487167530226619466050789371039620861212197929989463374687064840811084023878714082021803283062933233734129593483283521984706280842140672911859659135478679620756818331432568477246837499344923927270059048049564272037558625834999066916957223143911014744725719980604972568029872293482718139534093197468337653306776305051451344926473108374467159498140175135020307222724255194369944593804212628508060311458265481089745181044832320320347542280711072194875766537304328282119029289196085812776386072621633348955827493718374186141655217087758512688466227137698220255451931624974332516545532802881713134490112947725711898229652913663934762931660312230130750565071696544790201268082147510838555221797352012139632926855706798217542626162019338190013340474878186343929338045386463378701219483996926131725190126204898602810070507713960870436644273330492877536077726832260644436437367811230779195789231794704162495627397494293817996010375585686458204246817775665893589246266315461620867161618687975296316157649364808240106286570332592584434626945684395024113601330024644595511903152286227946106878828794211694584171967167679574417475780733295852544457530685684103242821623414368790550730334110423110821022499031283380150980511943971950241387814696069963926609705585951220892061356622306615090284825831897481871605049556762617989175477527449632539478586455211388631844239849054721233032554050744773458057118320090764437709392208002839998719591183532036153242941905689947347000335895280042411040550729840615771394877464800715956524640905077978783283917624927805885918896015486605828083970452671945615445759387391844448663946164134489777578775208530514968989843789077016769113688170657246990390106172400158528777978492072306041992624304987392127394328896782175856924919518937984471390677990672122579429144378875530142624187824092347004331502436995041160187303959868760000717347384524274630149612322579837956149930709435500929668800741254291703735432609314861834771588864998697296521748468313615221707778493816255240866683948084327134658037726220110780589267308999277472390529207651802261644900915080896317299591756554142626472594871834010293385099205037923591892975695520635014843826319517545751651399857903190802409246151079986283481672423268863907225561907503239804902953581441736349643834207873276385933564207928667223047903909677294514864851324723595350238397111181551718181699837336662097957732315822549378094206678143790751479574416982477086279634037255456772202602153460821524154852461887326658603475951840247752999541155900476617875667093298479848019303506228840341041296969077900355118041305585362140134315725281461257255537177702263321721354714842336639767763376341819275442749616834637175678977432457007129093013881913699840408320800680615765325489910617634883399051374182090514184197435544650757980096477377030164020379226968572447561565448918501328687332243614111573390347677126820004423129783556204833374371181636857222032294602565603028875158386902143014930567843474684167405565691386148855803645605719381226686644834406224860019462437230337539814068156825532226969230388937742412092292016403049794318154436552762869821861242520136765994523111376415134385298277921208986961997449378503579016845847612272549796138705348741425770716507397692102279514706005589518869092783497153234789589951942447695988336960600094694944066987646952423333494042391774984430308385255685594264657068105366490653316873453105845487345193318232652809979238550358287579272067559212250341213517115635897428525419935417997355940728848083053630711511941306273284091689968426389504675658875680848559554127081244775081788506205468123877422168064018151540614336069406949778557015612099814118720612425270033661848914116752189783733139305609135750862824589485404319283559131829325987047367388102541607297765639794895742990081686284042878931171309376945067144182534996151035529219482873998532709430246343276712306925606385114991570451835946471213857450316269104370151613101315738280845487738314053812129536073941886586118059063524771499993314117326707065318645892294755140521141338664826603353197845154680296075069324293324120680098644127155135846409360975937308417093050678739952273283563029041549925992511391689201999598174669555774510942782731178568017399199217718083467350563968160480051612337179301037890290191143602660567575268357290807429288373814863853868977781524744184023574091344671833079901718537078349026615934421838585671058249328723962992963896904951617414271322394232817664454698176358171581513730610089299875902608192199125858311796699349341582528288324037674670462623546111815746318693774735681204000359983280275295834667209421300718581750836950200102627835882509093778583767241937599484671755586897977044321462480783941881339332579793076678366298561755620666191233971936092902338832815749015789582878183851305111054068214853586561534053731568183693591934682355273660927270443556256712958266572158829933533794133308925885243861324599159663057215119590840453172168518706932749901040593734725498208418868818716014890100496281590333713817134532346578747872288383018475997968669006300121797397895116388674889369773539433675283102536272217064256932836486374216167776460836011480646085366239277522014919254471883982718936367717049059050332253595371217872136460480552644612509687326909933850771764413638659282931258734860724169403053166165437417994942974333453480090796266026839345424211649229863915376334876531185050806762465096918362727996790653638352816717380792249659287232216087193716579087540656679305662455385037195771315635882578611480718572221494900301844221967865545264058677734518245908302831823962303979053308931845271539951687908036641304023656964280147059840724644091210373806763926385466859318934526970176883529965558087674700898059034407240517952259876733755751423656443130827875515569885789553941883648734391186350285751328569977212548071944504932189101827157199219000282298429280089380357891665623595122175684545085231560320503851653776535645315789941730001672853552182950452998828695386999377577135537459665645189720930538055273922400978764781036048419993598670108999111057842710225594541745229796981188688464103350081392047475432919633808836129173806665585412009285257620191983024144899908820906217313980610675872568635868813228078426207836648286302687537054738885288333031970906341888798125153215425268740482180634262875290441474053876203806040474559371532265174591390692379946610395711175673614278711233454208241319687161339689719746431197285006980411427694501293785163521920881163464733080281488687156249146780042515932984355422753193338097727629700484593190571724333520977043967867997626653610990501986529082545075877209149835842883877394965566710390873519230000513075703023368111134336925332928774387117774489404785035310903545658531572660162457141481472622542715150488087850314807724920694781937256800327796805786944140084030765598879981771659571225434582768028230382367719399320426070938051631432279383305083275479391316025509175510767982990056574005489420902561821067431754676759208955686763463108541577782969573889460489669047559331536978160403846559331224951207927848166705817504666006352709801260116254942353845148585747373714814408962107729122066586702297196557618219920320205418258108171903318960657106507454102629945846275786837996838234433690180172198047312918244291189344965119272825602245242478200767840034145074834021730630567872438810771305692355534858673974760076376177965817808644942644506114299895363062510880736986451914893270608890610276355287180243858102684219942488846138627542786752189966385926522980282618923907358856426856476495349323281005219634752113026322755553346408016996290349033524056759791625000826280046755697864871215328344657473459273914777773512981275474590470353910511773536728085749150430146043261301670913315366667034398374446520117003259146410766885711220125158584058201577200089761430760709216570211330153420277191690434758837212859956142403906101731003477215222028755658122475649054483943885448057060619124731975464561222248667463803804466632181877284157267602416339341524252827454029668577952100397318464215052454104245341825761397087762686279741946194641384112361150660121721209456948541288086906677559797113685531679854755410737483817298915526261056234291305748152901034667636280423958263056731185993033143038053995953617369344205414933209540585561741280148187984824874492028165787445059865240966513374757062427311812638519226198220551212400706413606270331854785935345675929723216802628747767400871945126324607293109610132539998918238096391141415772379110760819785144218757880985895127756385250203770576471287434680125885493259078758680410170027341948830082254725388108840507991277465518181367144697987889752496000314661871532981221489148663988087172442844342802207542339216253601479766869376693852001578321763811859403795037010482591213984343621154125231730729081125547593481823759381209073966324315990164228160088046336180293299429274120247107488297528973277630969748253622762590409287812383682239335047289760024125115188106975690901204055956923137542081507033928584284059812700132994662453922757913715687271409067921331158054394590332850342617203016643567752790037206755698802529011845296054952483787139765814909328843692482919245885366360850955514835430763986723138649005517551086577158133953770637844670354839246720204501063423589350466413946509247065539011086523426938851385341848988438097251881752448228203182490731759871061297934641928364874323108798939499240937951094778626177993868822768109346472876526575551117560548306065644397378693308256214032728833962834173846625184921264384889467604045076982424521182798287830411935659283540562845886678139689799773976395109836322027169783994952101380077235750280305181265665809315535782811886723026204687764321076585622112137087017137839319490124668099746394387908317472478666693884984618899892979191615573191940746566529691659600422411171413608102538144131315404410267402777350849546145435668086488266649174368844207989259271841973948774621970516857729298193299299694434430824426551784023010419831942286968707618188808370736805454486915147834136507547275152489618718030759993104624693821086128626113294864564725556021726030383128975906993038666108949390655254809316470216216042281209878141361617389816003963945480132094727845696298854353323346926906284359318358784706147448717774053404502077111740259859260221158148552098921845673110336882615854974732361831093216164494568845189378419380703713558668508140325872677912773583242676274499514297044507822377298949017415709311481068321602102120745017895401589719026320721538509838348883684158830881767909287431789269701459986655650985255958891671922466564812174557239813141596747969439364072033593737600868421378255861078596467799003584073850754685403653321043820365247215572760695817226448445733503847831733100987629009216826332295166336097304990546224673020707183520112806874034990550628150257528781436376615127282921532786893230786329449241846303957396553420737696679055022832995518544385088462197114246792752285627395118957174551595236145101885835015165505204507956066644020908333904775857252075102173516920356565718567413108403730040127040691086510884218673015315202276813806330082635109487026130859327933699578339168838908215892996542394575365225565841832022707799176876955443714167344448125675111308641738759983048059952531917846165326033250234786232004555477372170185832511801161581985627842203211221976958890582149669573457702707204369242395838815548459320382079396018259189908723733688139351246758714817039040703647249874378620160285185786391408911042871936370979472655399089473347288933227511498608854487380559471276658244344435366797189846261084846030029454673863342704309852824362090070909155652478878064952327589023869516325604866649061431594189214503191054630532503570104319010105316589419232929912370452016605524670993833585150463023945833044171940225291756515565753919225508220588519924829089822925107547423609374107357382429740521824896441595674677371027587624510800575525117817049458352273251194982529260179955865724097368906538226660918094536059652109158146108659128887163323008039672711621901376697629309851326041483835504665397461707927051304517002288111604755580237149485476063538959958726650538124971099611819811504471125710758916731099506574418163206298739087348875306424063868997670158513329321814774310138847488137398077247001133484504579702608214615395247009743241746247029054872853158431187349412436858903142702092930293142280652503375865387810570045435363499381767180153410157119669416485795121247512918112459734460480256827193737962926687061712218931668931357941476846422654335545543725472293792462272241010030493387116439641995258153911166184577998493003148181817506530864380215871582119317881763538695484203605947705031111112100331887941744316213287244588484425203808082907492648370199593912511574128822346670565037355516347070315730955734543246181278796660003420259865367209894481304376142065199369095532948049397507240930922540531280199967147665713343462951896046456191558666638940420212086657791384280632633592417276603918420219348528308203840817417051751212053131845516399953841330397103662714788405855556426374646476672634803211391011062515434686363835242648897615395386738286617484621813206344805474127781685818551151053708148870570523468248815226028591398109064247549361291963034256301786378586179709596565710536700408050632734096498602798502973253095979758804115795054472823974099190836982885334648012204719328908297491913061898892645157606946422769024349056160840990980421298106481380972887549219067181762524202623758476668557737235778104314681424060876035318047650866133021621867862299089207995603056046025521632926049597961768376977669625587564618968380029040664190838692700231114572535336685224559183333456007449492102666073766042310804019850554763962724395852169777232004249874067123606996437290290811278352554652957067719489193668604987686453572578500360404396189338651749181536309513276642490313954374600216257330589746063531089385552864678306876618578948927078785217268357290757842156104073650782828978837390672017994259451571773957505888557486552501151888694978832401696352626310108839678428530598154934277102095123229148043853036028308385141709611633552696699702838606413367716202412448836892250574099680070396861005367453143751309171198545440134583488587831063630851854695020012154820966569584124015676816538218795777026998771688419279991064666280810254644486763393030379420117620802087124722166151853902467394879432559069646859788396589234198493441720988072785483832867155704484330756774144217882762407956769237914807679781612835820540286286233347823618105726009394869071497717228673276569309161138976049932481753352773438066481356633437788042396406970264663919922451557883264512720644638634935273886946391680895519340840488422351005224770895395298709406045595951395685159389031691569466175779866094356945119431176364587562866678380820155308373282817095628026637432599954353743936729759180135097617858875295167871822726136509523457224517263742749808974348491646814913730669733208100594479086185772481413992561777891248142796322233989809686349597771095444987911364666793204768146402350533394898761169688708107204507261371252527093055129072101413681609615980554147589224518089817525900401026501790627786767218062378637336272642578849510102085868975176252413540208629245930990224778821590735447732710675212506799901010772400010648370119056150931613016296218688589661519718791729466715105334045390938688251161243960604170465498998773738895342026792721179200444641676563892990107548536375453790173314546891609414130116363731707001405474385916045380335805883844995058352508866486872793614919872970629069652338912137428445834911117436614396685634506325186940208111217598808362057624438061292974390919143291228700057038178632969812109585499100794043846515519247330491738043633152727936265193298441545128313857288231663205916879067954237048083817740057888368057854653802338192036678226761932616804661180854027718391841347852179705793274264030780205692703026519695925125953688991976259129339376334089797564303839387093130948161587335268883262133477888963442124529511930528711105355571214711805894249728380866701138700932130629736855601940029845303890447327929868746819134025886222341984181964692084688259973617050822049452272525322211757945368429681369940251125370858860177374432804157563061621712633665594978003498455603734346450474640515288316403124746045904695767527229587920894802871013261170131033507608011612656798166649729871286054517344608798308961013234537477602962267293008601814874902930269140217307956451010316778387204803331426535355359255065474137069190703982801786243966504853320080673343383705408805739289231441519887660052881384791023256055482629825479194086720119843380933543346956237105328258676039118969931514889799634635461335180432603761788685840957358800928111071654195960588906969249166577063490804170983232187946856926060522818474583198635306901236795497690537886849478298662178293301444638711729832394003601429605260496204577936954753034112327041711507634092513474386721136908532775072264829375495685949959186052977632228822514901617127176219815029211082005914134342338892911892301526700390983564881352201124983433247963732879297709701317040386615570509507273014619857682755153839388490585316407834908715043883313120662226473843725559920885740859191299711286632523946764366075180453254446320131421684162936483940213187366148678327855159360722592143070406771839986739403106216314296291136164184640182048276552501826775536442017840401798844423915627067987490822425469028119680511169145544655585597854354331468252822883565626251931647541656743807870105562932026144765963835688315443543883103675021343327890599028064710067492262433714699532744564788076936866382701095342257758725494863817554755767573494272353520430464841057287533135991923097054353877902688497329261757668669684979806836568298746026565498560334222058360214240859220697786982668755648926996776450590076944169883667229748670969399202629533312917140536669451057667455349557736317153104979039202221450005249788931520738144562105695320574900749812177213061938850388936136942339138741239307437250863650350985936132421563242360363352909507577929758134061064468912120889000840746465661064519955677517875811731234863697067134049841682196919906220696876538400051921407419641087785539297886369461500309136627825043663392553682488355151224527378413077573894982155153111991465537090905068879766981935492195374232140857516627432315284540815982146763765616467110830879485154607233131546185935625840722873353677483940830689263182614686734394224361036184528354252098587526355185041486089214653762722434570353894225695632929509061437509550463743829405654537835620520042580626776923344739587826433484588281361103989264087685643801780232620584023847816844822851977389829818444670281056242045100516037464999785182516988282755808051445373123549711667184299660208310868437985115469860122058874210315561599761341285927583921000987912272024892132258030868669484180824621146700581445339792649326660437774603273710350823314504645933264786979408852000961074190947638396042666917456812246690133900288137885545584647318688282904974014705499744049351412738298250999423197403969363315885967034889363999903768388940155583080010167151986877781574701263894467349586141531759869556855234992782938629171387505155123186742585539687326288361886892613780828784240708194792510073148728816670933731138177398121105363731055643519168763150946407994917171617749227001506238875482174384959119207602983466796939996821675643521201975555482756253271963173252453608544537777713907224184554313270618657726041963706222621358693865396345588937425794387205612657324872754683211519763133076656006115544261755612928226368932911557953718288335976245643297555868041286196960465233970975984248824161126641942171523057534073166191225565520661376035908690839357114225614467769256401277121371476433907038557343013369705615991812264261137573790276631703794206835890960289462215492208825357395230329902840712200236243022064570000610818660867148891716028283159485937866086357609188054371945283221072925998400948041671606243135066534792982593277497665553046071901740812872980672306061432399674136837789899909205805367996397404560719754199514250186150956607956494102603372821012473378881357719921182963863500812853512182253817720729072835457756335045440836403941168944606644715176779736970185332698859690365851222236242467884009978262338273029961421442706985408238391237547402533262086389514392567680601686921664507198991985137711300189870611013161051953898394580676582999033462859591007157874291100433344162013378118517051030448626272822471267240036232232039664631495794353526301295102227513093662132152651647669957099087015102878292601301429720401820210485221824794761057150627378646086620089717881308874915952341561617526011438549644304536720610360331500521142625124849212916625393750488979818215605404321773603299386503963118806019666362205279489551182229147948263170626431101109330696733776546615017832933148763108692529608053132273914885273641652536913373526937630011147207494678840631413381622501288757143173405448235730660540632607092847660204626898399069787011633653426071525454672638486077059541420255586149332243104163369334654535447270367421623808036206587483301959019670426241459642346314774992989841728229672419343632370241731927445180938418497080399052963109625829020610843628004294310097786367548580635006100687234023696667856728738929999756650693472411285693043205604232405306663447731685723644012662608474060568165655616449300410631059859509113698385190481531748509518722871317950385822820854413134739942931400937549411789901039032941303115911494227029255028413129814445160028363346263355658953292040810924330024209410040851071060183135982946412471753260313981107207666892118598115198764712407430497849745742092824965737309317737779198268311005261496906573702605713024587879828210683262824898053242894579267721865213526049835905631262735140733970718483252192759636654080225672841281042596580954686937801236831782924362785561897847708690451480121104419716404498969129867609120973165875921262707568318200237554673578454083391973510716965912626252194174018377324790489123318971799240907765056464219330055212942734456573450082545642281490463339615139453076599020301509396623597778497362738157648188201237237740462258887170657986553289035522169322497169351116719807781139539579837171719858538658508754805301309219324079943035250424154719952407615487845407107675167783435096606367425462000801510107269659757635053031800953386333445069395495908212856984372046803111959694191772267032053168903161809081451186496787740411423727623998310001421229835394972841665679357380440841319022198549304496420477533963877964279418253814820448780499154826714261314868894070409284702706912269101112365836242533070729186317524346947242963494683043628970254521135362597492012805114474738428810257359349047666046629569534182326326895164612853474530664391696196704545366440655547775523942274405495726926369680214031362020753956228624018992051894454123685815635819561781503742030569878057417660456381891934461962667204247875821757141010756693196378596818232126379641571804579282102340242051732806918922543435323976232692643038728309556115106402622389312816757929665474921348610873507487710357825125994478754199437371312910562262908389716937484637940090808696813180280030617802317855842395226180857580655946342934554162966348443984644652217630893623756883353372770093180189322081378506585803488217505161342500186910174422397167173214401131738587923644507438819775625277860806900271453875557666412494022355712705598679695839149196495791068461826863587011040604891555412187529392198021679041077615197805843627934845301238414818952836046281883028939142970496910923822565304471879759185985570121680877023437607213050839657362972977277889677910703340661172197762461179648085734879158064775327971909975576708071300807609012835584307862491277578907836349825454919916633770920655664465603017482601027498844510983137132788486379363607586524943606941955308021650286039358911411392713454399818793315076157002661529793944264183619787466750212223316695310836143749271649061298090328405846098809916880962966993912701615630460481333672063166843445905989771085349507697647889306487128519928404251796152553715458862024900451900857887427071402182987081778881113402593936134322712245317412165420504369064509192819708633266300586318542128624127666506371354044321715042166330297811438158063512756225056031087214105062955412177405655995991046943957582530106092904511431527806572727199798645062228379719743064317602578017992642750884854953882128786332536457707444977311908263049100555614020827059772441402698419902736103781224666290543487407267059283256741967549917042329595227346038149190191033212090396086394259314670351873943702625792964423291443164642516870417177815928506692901359382223145241946293063750561764301000428270260630541040671776475866654574241744911408892032669622312149170221887495598344202382668500263145183918083972031760351001226335115108802758118701379407660576588043616601668396977337067218133647477082579398518121322078390117796816594663789746086263482096574036748296329354903600307529658302146838292027086544802524210932852418315056327304050981560761613874947811588695684227377697021429243902569850668311863015535386374339242442723304034543359901309705420643431497124962452497369182563254996941737072355464472121562796455714726420424024745824774004187931199577624467039272203776811283022906526202599576612851454682514117087504202837499873480466626913817886561762591559697468325957909079569681023736081801981771613759333364164595237397587211815728396199100410208792203093375960537866890350987044446929056789742479790036771058024792970658499455450213759485779088857174024108619535265422891750553684457869526695335033118887826925327158183507923309226457386147451842681622333031832456203283345178069924583747549003696125353348716682055017859395469755326986999713506815632478824498467947633922989097705728176449571258285023132224695749788626368201231153566989386771856707493149569481087242081317678717560378670534416327198311326783610759719367609907933699192360972199749526720131677467932807784836576193762131091231674574296411107841270222846893466697125038676660334896216352123407070359527480941330760881244407984003129007323902413865621785995836877116874261565919931495121809824316369947232003827922267900167185193741580459493370290685207934079229144660751488396667011177220994618262417789762878154261259392501715545339342041290382995216236634239126980234526279843852901276591262259522298194545401089331305548528171107443075625355555185404900792224919142464167569139578456189325991809124756718901907975066385949247171582202628319528783310650238084016816269961472489483698073522709338731532636032539840308040517113456159977999681324736411281314988517537226351701846599186102819156030666084295989351198779854115717155931835534095532989325242712539894991260705914370824651834712995186374068504239301361210300593928894648873370758457868137885419760254448199331156648823516940492007505064492545185838911165292885641937710925339079169521336384860211893052484711047852509268435943216695683875702925154367886259682654187612108792110393500221474990094643934764467791012932308854704709922495143991727144140542427883178517686699698156832451383846751357283159920854769568502190939478995727048136966955401100114976854812177918283740144433777342682581187295475829943652418940195354227186310038929097007198040423894175819937451626945148594789247971347817715817153608916323573483381517664906510582619498967318854052511805487341489157522379392577074947396180725188310016734766976899493381125937429117919788544772741065789697197241512915872516102043171584266351122637837541682387931780997206094741364811018039568763362097884919366622752198451550906819530245068529873397928461966103241475938318390960164075063413057361490121926690883467937258865932507884401924609526462339911215828870631057819298471080780676447163332973144267582067037814134406326479522617026625790739275776436723181114959931042383475067585753373063778710950197428536823951448610979599456138442544493759298766055842532103915102759260741662284377428320996973511124783193064971336842052062805924093816198720445762036629341955729409259564764176097166090903911403677554760564599889695245907948537823583247421789973952331115326172510365145925801421172728727755874283798094629014592353938295567705222707069834911999976060900421105966354830098930668318499476222551008426585052435137510254578396385049980148793485019691703144056433492247467994131492542140689072213254610737652832912315217427354330707934909183182512655179362926643619062836915106784925714344484005612709380302828879960091405787059839652933003270366915308580467079877889623738155210993066032371652785523063090000729519142719994336526882949486613857812399887631457650059117893836827744637626909930930879457660529874785090274724888585839555182027389618126317940055509444731672779773831546610668061333556280377041998964826583418979198616055389469897663337798788787686409236744077230032758256967740497524012216769602398826908016996120003075017102846699591662218046671370089210250729328621563423118555239053797379415659053363078456629120814040583867802638081378377256761478064779667366637808381535315295638077025084651567825374804468541034106888372042922085839232781074730049860867837121184802295994904355094072002928681365137292777156251498372207134452393903754319819493048817672364224405446677219028066086795157920409138829514130594331063852695607894903464725672461777532845046954985140890246548841017502788635366204980162873679265944833956023395684046597409205855342898124676340880062532324695526606285943430546434937743789043447196199161848396145104080157979875317203846071125017784924814656469310828242036227474463792637118656842572223839302902732474362074520078013502023058704208179812663222140251498987817542498222135208047153852510672423910511096592332835291698198170434982037308861969157885073401789962466643295939171988338247951903463204558357224467697419103613461576546996703816268301793188179071904063672665000665862665107519142625153108957043772114998770949122086879073230193902032148603052256542028332872578255339003555457487901667269873436910768943484732028577484288767665864500593987588904257826096284469091058510324003274656906354006311373369912444703910630406927533670995344233347982179016457986856698278698598238023510465350549907280686894755564882307954234460730110618953160991549746600435315246096848620183306336875418977542623618013208501124893409971271160975992306532654347150408068364275021342467114294052930858352836713448089246474444588667191221820675365961592236819967738459640446588197037074174479390589536924061521676444492255545511174661158987122730499857003080605379735378765398283668263329704816006622305837328833751947644282223638939055038594587773635858859224803011872913418979218686592896699609024535533987931244267805032184989045921022227270307749169323505086391244684759735012806067208716740786338175867728891617792192557475415415513783252988333667104165221523809157182244797969408191840580864623699593487542983019760689146398722539236984188489412336610350890581657365078368316038958908595626330540434237743578567640656264760183343183048644959304703637330336929365064333446969211350998490828472271909108584189773595151798196632424625899648949692046021738832315728247769908429589610675758274580549699572015077030141127021447107379227736501201548263185557667626757155189196164670848399619772392423632664298955671312928722504069737378281891955067133382389368495509868589643469890686853434262095282010536391874010727493499628251198859499373602491392410001247762513104118715291556930107093159702691368879311489809377926701658191719874708335789558856614751208498246415859081424642692097164480823491280980434725591864431339263978548085892456039950541844890805556579082701521230598639083876318834963946530097024102704339092904648384097752441842533923154837804488105318777929929055082502748434569345850850584574551873119007137340635778025450406566274827808462419214956104552660163484447913894284859723231234438412082565057574730175249075675440751695807367004283637083960504297761591244264460595351975966706613959654105631668294625974808641698841977216483083589403077884001123314879073453194483037855123356987899976916356721002258082523236492374426987966868188914507571417119082898025918674252745410023940566837884825679846856937447610334629706230777116409044545774102852930488238680404448042893343065920049819499837542843606481166856035746375493171699969095952741228683204206235400452410977410240008294309500449715354109263908169117909728161384713656875478648691969163015920477209131174803781566084794404617845478539970324656526942321170093066227130256830784077187693138239316288292397052589437979413967013558346790910527375502892349901237777722781537958778787337174059353560317266064865200440666328365016947260271171855131308054619977008160756448060542284564706021333477943489296882052119175375433439575449746837388692560040264704760133869849193866686357446019600946546957196518070198196204200604721479240305309495693280645843713850614474196580191598445007581802063171200299939508223346577443968413679931284346343059534142572542919383104455128549763547263190496807925502744692312795529966964060578074167665561859652587414670312557277072144176148856759443878549414925343163828193464872472158216438953630351781067344624617047213568663662173722779632018646522493194881714267205628624566027817522296524798243510864436904369840980774431714407252573529613172360352468318724182194961546766587106372824239618264846908228541263642175167723446387687718688066955003780427616097209242534576822255926312234831168879112707191025599264745098887917101930946039439769805752727984890105681636715827836278090221725117603968170995325256295184654494804560784019130880261063325592248037943495910858923733580947836754860189927266730245233700013273877936615565912977410095187620851043030360635801076803743129578507768265978369443533570737301520352994228214565402390505937267263015128024490437111621298020297959886318318721798268974801525040023471329000735361488873282228305783042081312976511852220843735250401757331745180748775592754432394738732045480005613618454266019396059822794983155573708007013566502392527017840273363552599651500131396622507786942892410030114238757687211663496363190674207975866126593600864148013687250160524337521607180899933519806211482346672857805495402045322533676488830641041914332101049025560255121249941877729612181611267236651310218049064722664129702936566710212048591142875626056204938402043614325150353798242065960971709446187696145466936513625844392396144713824311757189512482912097918689324247423043244421858979361188814903554858079651893917525892227102340950355960947449417360545531990298126838870130444390870359156492867686450130187172036920364250171778309897769846577177716074054404797871677475604088964207463204574965354732117135155506469853222316325426694342976199011780479020577818067197007376524942425192421769971864517246803168622541284869198196722186770361317615449379692804064330106812625827408159204243734773542621581469806524127972638154869541021295418634600126267688516773392968684825365667213364367392464168461854879656532199285715540493337305833799603694960453197424358082283802188987810376609883074181073194456007222911084526635185787344065283393986222890968627957619215474897720642248329530130847775094751515001796992035043639973711782216905868844071313341072967199888151972958373345043873802873422734414673032237776365740287019209116598214944702540258864707507100538262412702433310182899128770074091721048725629380534830363696555299342465619587502015180576883394041160796991179911418478364424295190529637078474814689106018122282670768980853806472770475451437253860756685023585343631154086445931370938203787459290047660183586850990654693139034359377087769097226959128543137987345302057500021878573386437115921367707410671074517522596031434934820707787288700911612709332325646030574441032847940561501587561433049089247087910737774732918248362366588954192598747913798030390537265860639202886804607512983771739027114867136115144238715881439915834714762123278678346332890252133356868238487021285606628372131722726439851088861131313232405985171403339275797371592308562928716033408778767041167528866012665387912166031304570876123783543465347939204661580126478490419289166851332171407976748960387950500161860234115905958119239467496310140198840050080200415918975520304870419015390400733705593019240115016318912670356373657330933985157157715210886185634995090998549482564477022881381665085097899957537671683450372755456241033159870660283051540184206968937633910136959585849485380382186919875063779834227659979637773100679811176814557110436166510368957106726604683243691877671114481999612306683498138879227049079025935402816786964679930214842978193442391105702654624928334366066211191650075457134176995235356815946607090934207242989095078230828389260068269244372879303074465850464697273610242823728812034878754668870174960217135859948337619467247448187514730970682651176844266045109022237829109615722260563949839143594431226930452633461221255679964360508443923025655691235482917534946633536046720150456252148706109030620587643803686611802234707735379663356783743038685224211243435786182845366965292995711576574470877608966533117352625231457104621824566160453040983935041409446281732870487396773954541140144697888859761569506022157747835624923116852792483007312558590144593924660119112535005408791973791242436839253715811029456890833743936932575007537595232357016985173853441393253712907878741605087176035456511380894511097342799733687961581600809224534247179452149472168597406192131456908463872967004915974365508121900595978877167016803869945723285436976958520802055059270090416263585370441200919304069815854143910140927046125143103800114302362405340431561298079177465176391761261481642875942649736045499859422292647881170184695379641744760757530651912383378647150705213694539958838811168042868310229884938131516373709084221739616487109283639372710056663095998053254895556125039974466954127953185196013364626192447720155086210902054459036636245578296697211711316672434456658194287127902810155762724286061954588298434205594976073788954417632554891280858279735760541509713050191097823569224164289054238351965639943897683824311370409555941288735049524063614062575055538423668301954516257000130167997955656974492168253756340533281493667241795182682012621228055180562182921289505913891377310123690900113586618689148520045672437783531304559010702378608461581338376563550087618266791091179285803378147357999131219859111148617632440532535784311804380458074318952657342553498124609265773042319667596096317876890501837394521750621669293803797088365081540449557392333984062777196951445896956455656858468733248745375074391174337836941097163414356786865592420779177362473075049870577618329355726911661655541163834282677638773975866136265695438849271663586492482375459884621001079886483342361073774313664467976664439594640781984495418651095280715232409876933263138421299078513086262946991077589109181612079213818962232394581073002459639792054927500528989825339866440914785220591213706049252643853125221452815715545255077824796588384635377403848526208755381434632931078543649285285724935631731924195263446635698257075849767696887254507640091399781565905034458384627657686296331541913849212974697596060600272397733760848013100524382611738629981433649088116143332047962740340878175845073561304001756089170111416968746032064836489914840562633915424126024247075530863415225607166419002605623548515173448417249485493388219859677868857376020969404282378154207236804022502461405259476217509596591787962231834861964279868680658683991053718857305640118414490791649796816626991339581049128302783944461053390068228739702657730985712968855443245234363676777260670720466291626117661196554975630622468088289259129352779242013994875509242178746648300950856672712716236022450672528926559095864327122125025126709883283558299573385178893807347792147874889692221605566278948146949161661493077165287779835590752821078777244155870904932133376435397326828469533712255823433729609592775701458442386109678812521539887604695305698341999144078831078369918621419139039803556526304971285016142725864968080571919259156210450573396162560769502915801107136538124000816208414756562155382738534173444590592824001333791567196453205427428783820230655411234114258230491822754461578010979697687859931009522120120155401531833415991727258123094190125091474265386503267743861763018861697805710165188092987200909309029281530759434719931988654707108935788293731614560671312111404965068943425048033451498781989337094187300015041896628912334170651038093828472928913099067952876030668994425281264894536196261664935245733941139645951877832800347407092630931821694350114338398640020423138024225323573226849947723997663717921534916768259346963215190968976722067358437282104825468141608271053118320591999862217483291981041385042424024699809672153927476775905283765265720632012156382317331544587783090680808824018225788953174866883916414301041657959939430156898865116718148484163754175084532727329966901470326830142788905673448712940975080081046336970788858398476248812315177290842774988631198851317355015337765345656138091181986749163576876150441501010130618038281757125299436030285998243546088245804377831558806869951725640044532720787056164714746581999342087936501496279494570045751970838636786440281764443648993461634989357736658742056016353853020383372092650179782619435165803089662504267177877008157827984401668936809271666398917983755525360707617292735456030071482409390652541529033500610674064953255388282260722253734277064096031088791274210954500307215947921242107439113898392547352122737602504762085497586381418770408409176061140518510898708273419271670782192306151742346606908556762556467572981013867868713851541287638570011221696048571984241544833662881836442063382569604464137557828435341656169787646666939586072245914221705699585102101573408417375356031556211008052061156248722779894435445699132282706110342206360487547378561651670360694155838221241555564337580913435885655179898908886826990291173895159127003941744062580767681971941195172522903319867221737813056203970152048756947540768484143956372189012075576767366869416864095214512662174056494283220269060553280924239291288991787018246662729545536533702853488513189417602873343762898953731348326049297167473007546766074600559056342011676070668123970786203847707231583419340546542660062672691586228393815770588921765974900101851315890761111514136760689610176890518965422944323030502649661053060621970562255060216486491772841342937847526193604155072896691706700067886532030657923252447828951209225105479578851661800359079283750716787341423327768593021070408784399078051385883742779913628895841348089310704133850529099053823444543317652426565293179532471664809629411674530340689098276943053447816091192036481278304107928860571995719806633417906950412553308513780588051330770768243192514047737128573501604752073930519118212482225987369537062275311028020555690608954996006219736917921568265985894590963461326482136557926856296945451234251015385521385464129580227171903948368840988632829077065419924209560634097338138457620363352918177746899608296320135886756620183578403381462844411106168218337485753683199288978166449443871009084520806309954113430651273038125345956452126334741591502782411839474015919940033778147521345815750304944903290342163733795230686967038425691535412845949849136443063728011646150496729868323819842613947756152239088799685784756992117051831928748770254929779418017699647863775964615363311315111051877116748041234513005211392736391799845291521609941987616046196158948589015958829076557867264679341043738466772653115400844170790619849900147763112169329556082528103004738258645076716895598774305805020922473723651945618297783888877768661298327126673582607120609081976336089023377303805713153476791607419950755897205149035029460543261564134791887536092230471234929191793924212455273881934944224722088366025597459811119224537843468692814827243435616774286364254988395356163531939972183786665634210526986799758327393733276724901970628594548638396049654875815851032158643781031183779091625286493968236741493499074189393286581515605634803624021126462201662963850280397463421303455029444234070033330712192820682194016543070991098399078812781422139549444805070569526550882745165333705995395721630995876488975644508940378696800266964955242626628926676833983359761682713760739153845942687884674239072878134567305389269359552896248411517903975307370780177767700752068806430007078247923002376537760365835022960922107972082199846186792260184482808922598513506472579676396294576290510968780565067975234196776978983731455181904337026134683625859114376855872678278071808033473818462984808752212024251187546106177580875167522534373524309285692246875170831018726522216152959029653431073709879876988396336195898018935018903535420975377285638067216352920933123832012481124843650073629565250709693122259860888174231938562380285024853900648680420281977767173280965978699480299592942365464851262992723714198594550433217437301321006089390173588225464162288197639984343300528456755760072834614093394112325851210194667682384671968050751592312001856605739331388842454500874777322470570060134848307934181721440638132044488601099524332490160415603810793227406990196700633801168725548381448778396394887935529068509488242925771647588654026860422813514393684626118148920283765539093038697423154294968605713605739797385987022950472883037117328118456431203483960144229871108561117364600860122546889674774152542451538743032415297741828915729135543348899943032205526621775459392255496504053756094296591764258773851660431845903449103539027564382485123095882213773930010874176211948636857300436539669623204317098249461441550789091698433281017337255900777391909177221056799153502137703203824997238748760520625092875955431889807103834104565532830480535135150199256671623193230478986960628822012467131601120844274614123242431029145654489467713469085228720789059356495381114390831913229078777551605788619064761899919646589015199482045989465847415565924630553657052139520539982383622755589920117511240097684191800801697609085246320429820612147088380863536605429060663346954066101780930670895112346188205197938022458995464092295719431904755008673526933908470911241813885799508527593190409306039475302392231036295324443416534897293410397304176046076400411491006792502974346284660514006903512493047913248104326928837894426127786265086197549004162359398078890502385097887713481742171417439209546560758995794186241293952690091787597390830496358669787251261890453219288327737197186970729917077604288811179321590446911280286718496889164670882800156978366260596180599386797928082853434089515243107776269157512219815951670116467776464155601926016230926858558219914414368325407577298989219587156591965037540852599977955942896252182137079690914340449108151657937688333440616952691697856951437470038592093958481754286444141333268596421577796863127865286978013168753577854880326365155277400214636634058844275236528186368306275116791749885776584500006679133700002942033087134022589066065773847629244472120143061711415310108489156377052364309183441261413284298168924405553423077005218668231817287619798212786123316143800715111417070503269235315306486650912070100777447152320607030258058213823879555195560607985376401583364572244962167366662189106893874932292566307897448909696577636812311992171638992517669177503216261107107615280104663594584472533933552379734845828155114031569464294911686760323992734350500797328014828994742655428288589367751364254934052789901736692378209726571525390881678754557751281166660522912187841106084006254571928707661393623260895332060646621038505540313260765240253021355448073282371765705897057640535633235465489445949354377838413466600020970569862901803192404982831635902368974599055368249502986637929670056237090237334850430127372297568716071994537358893300049533400758508314667970006218991461602571076722796891574767801386477206724896401214513044926107840830130846068578440226359532518746886374023543693024635736490845549232895647876221564073205424133925758605878968994732949513104358201100834510125892684698396301703605124410671887964758454445786130382360846171229689704396144786068862888007962047755969413543838438526613780459745227031677372585942439741072017192391156178752482177709362153195021666052899464007778203682659447110639661538339168655233661580352709922298528926507105068789040607429815931157870031784741373978329480978024122272987796963443851338334765593120424342956481378100474607585999836051647724266167425950671708303962625858189653592343973978159625391541182203635570710536980398926059707483104955185550667849178013335839508167254658367907189775001463386079404589977775414028090432602749132087008860971093154528997023084411108500957157694764550981159994051161621068171023354751804965528341833268841778785747184566236306500361683920809769529347245339022810234467330576309080281103588573779738471766746049994596690613488222110673058895155963645374809439661745138857410629426736821050086522068046496519729530018759664664064335144858487244908051901820925158389555256773830802702307903875737962218031324122624162773238051256762782678313854478679757511351522667626015555781663506683778843120480786938301153269310037590841373931194913867578351145456678620247007981713013266956517241087386630879440899045312283672886674417038549889403002063888320944871197330357392494379183393412105979544631289693587850218876451867239132992821232761276837057668457547176775790217935643876149544559250703126210399081334115640391544667687406263489946087568854310586993009925031823729562653438521371873118573417224860608637777161529698161360699634351047805685628970043990339595334882615692292862453222044073654043984815224856588667590054228779024312268436807402692255207451974663548633990721723441045832063743615839714772159692711275777625008535806944384858305987060640629924953320257020181781551049841445306899432086648972702890812922809865786811571297197569738696032805635659592094539938883840643991116685573392737042354758276124283758709117880021136805489390630344804398874121074835077713987074564072584602042627398630123699376984094545887091003093553887127520332699091437670886446443651075711129321117417129737430163194187025502146755901047876826108881584606488135168424806498101039178291968078686904745508679757393133596775997715688148384019629637821088398138269981023002858000571866340584056089047835772114767030041312793402682022064892296940785559036595190216854977973987914488484973110211844420092858707770299770697290675675139626090641044420169938699262951971963741398100064901956563391274069877404776110485066583727846482495749336359841872906545150598550627552695919768856752859893522436934076716017618477752261329449233114132777638630296093532332653684968854201105372737131522920641103154215234383066841422183823658247341337322066676773823049125531861319769850903023071929458913414503082519990192890631403987975405814609205445496255629234174382673739539632700670348785059569269620900856468631646462602156528664160253114646705775915508775808919119988081745131606384222641584395881264527241768574869659303192093106670745166346361117500031284407650848183542157148374239421978268964723031766267083479682929383550354104009857979213225125149534622167251113570725448058882164851410677135464593597283169256472394013139734337096379143710170835099278399612287022451517465010389542025578875016972501140138673521969574921480213800331302862590400458117509749383195569890584543747680777599076971286886900234493305987321865164268139908309110360909056580411956723067721094348074615123182221525609268889523980793007641800548125751127235342558977953182154713288453848281801933239468364719868595803606549865404367003280767220422737456935016097669448419775494780677735898242568738917172022841202347046973383213924681411292891404022227550844778854656833372742079877480829403166717760893671616224450327792276977121194459724350490940549900459970679912896840378910264620783762030398308042827358883670292612502328415546679277868735918001764145535641341107873701007156849201475997468726541977249690945817472924831012424171679024425245674421298113930615298150619861659355647812874065454156983133820996999653903585633959429309142315360149990171288323273463372972339842061441458864127762573700532280360044160165253897406571530978074688784784814883255520957704919863023465621914766787032169706634201120395791009111737622824301475269873385162469712312550662395852178053114514093247254016120893056180665925477204118277215680782283809497249019227832189024209072445598540947145935659826377148862186078983330242580256510289024991245851755541195050012545380078207196261671616465212242925039894201462633819167105248121908182280194196966867849913488489886201987670623225954389407265939099795386931306323671143138794986842015764349550064743613096909870322447458266287418537997101357144527891382455648619446839942673151875785095862124037785750521927957395442399470301848906751387750332944684092703781240808464777576957116488335490089712970352475825018159492309726709527421357972758248209545595340769213460356120323576476290035382072636923007828726123113329167210393479043610128772724947960236622293684735042925286283728969142614221879332194439995928881222275795368450977229379335988385726973916926829924375945915998797698444402584688796623097870853080291039172041344024172738536569971238436454121726779201688366826552759550368367612280874120729581090956071030992504309518213009297539677874379212136430645609846619942716363353604111043241278923254478888300083991928860141276128471540529934195473006887406171878722367308406058706235308979622943038699530734864013204680555160050734870313353431249336960982615531101449442602233908874172949792264382952788811756002295555490949288300971672324629440032350923490348501351565156025301816020770843344583842931689159398611616740651631277966849744494016576204129971368933849413577514885501474100441511115841596864889041035642315592534377063201259902559662965820722341851936030657248910850364965585045133259424141116539835013568913466024772657365935358578100141894503393332941084264937686738796003992492745014281023549169958977173551510658558736046516113713579892936244535786568625581009019263592980364083321143082613890336805935104910788326171575067327893255696331445532567478045458328636837514734269447222034744001623589207143655159636587306650251467929266416644331704048900296089021085028749949016122764815751623200538101587382018837483542752032530378091255683824058573979527638225084130433874391874098057854996344558391995694894425339591946960898044025426664589015235457018043114464968584664763230919002154431845711305530795164912481626866626731028390501433527556719455599307260291251707807960015823281284650906244284484905268072306281692357633286110363456097037489208680736190790477753188866520088843585058572712038074660327937578614981046791213436195346382592321100519778749988112996441410356730611666074836957094176220104744822701846158843689642679659753408850425021184766232983116399816147275315350102692816438518252787162248916131965303396840820679269762605782345750123152270527502025170029306989620037157723930959673448309664321396494591672602427496240896854487583012750925431951339501506551475301634249992027455331143785436552042792591911870813861362020156408173204217819425762852671089900218371829976789812916669557844039517073867361425544459739396394836276641207267611110636879558405688756258408938050860388718873166585558215009393012236802578724891649720765727882731416149474281409035919341677245611209719866508748135695301390686852415267001260200568631338960951526127683963556856671788381550503317285543240641313946515258468259498478723847555540317606478948308305585358532598358816837990047644194057110466432934646153136568931091449814298780950006087349915629921757680274078327731723241443207381123145887459639635508558489409772132154747088547184005303817383961654419985991660452433761660411068468326672567954380343827496441706886908281923686287689254199307287754271173983983875042369213588122849150860177614833064808338494546412872453866168371940901255656975752537307408045755119567771926149750779952835801639680713866272623664304909089432536972167316753553443356398244493323321927573174621447261429037059769976240923764123150714649674129101377468720042598291263221368010903551288357236906358904579540146779836382659535130417270943680225868375413069859585870026896664612155630107331662309658771198489563060835943514881814924702334344895146945580138743741282464578065114782052829729411354361698715196908676816637183822948106833352083899125435524088114768403976040865741367264194965205263058324722621247710265064602958427688539921753507781542715357394913721596538405832839488587659248711421678609191104668096757771302181060705192058917015302319969238068572107014209181906350784189153188968020918809309507954572981877476803008533555589952690702508820154982595338321061137631951714652399812783239075506592015764443939346833222838468472025567754351558031071464645268461714130451314765023904476384164790150887574340752638402225017088309977636930331896025036794590251667929817864913508228606837836578081124209057866024605712132357199865508068094557824082052509077589048254643166674613697301069427978625643262398623231567440520998696330926847152399578071210422318922461174922420792552738350032095922831190672213724787726354241696008827209107502607073494002650729157168765630227488534352695987837244250320604344442145452578117092476727844898272647171780246123506936582781410604229111696837894904529154345823097571450149844333426971646060472941028974663862909374078994603119815660088670517514666151780844143618119670463167258229111972904604992183619840534761009326920220096166383779373272793732565504502531883285864150616350382964907639367600482046880884524969776213172004917933208128747343279730160177930840162608691219023220521245141800986707038359927257158049011672602368483561480260601125955185338650387138382554181035671637599097555254275248203405671928333164614920793496930435461430314234691018226743730397465893574249288982866620506789179636496843607641906718376936475553862320855576631194117634176121739599031171823137902955350742472104434436001418169700205965934087496712250829715248327398448502066096592724883568841791378012798056919200497189986899494104630358593695171819912713384335625743585997355897935901155554977090829171898360335738418873249124555124359979522680467256634483272433566688242130740136084746611613018100311450533425849147585392876633370062449829670569890994771293521390137577060008251866814417568688302341366656930127450035972603171897598919536644301302119132930998940126241279462552620714794438135828031103488559572210440810001229619914193944554220032473251155425502257648812779267797239226267264635765684888533377967042189614213589883867467923387218404972063109554987614990320844183512870643315406689374766766576423687784217732501019536713249646355424935656432952043882237876645664345754266543497322322854163921482329648492519299771654905548304483345099982437257475344703299662548975647425136630373334065695721296454291925588725544234784906869844759485002874803681286521752819079542645093989830499412900486918131893252605007051907484682913998293095054428813123707761810536723552731220162221829930039169788410759485598416005315370380012341078479925288070900762054973927460127311620276722628934166269083314849249730151567642194765367211840085406248737232602195140058198142178765444687446766010559755450323010411102029258437178233595144194408454166729915460303755870793067191403661450527754586789955226356354576784683371018961610988199278124919056242771769227970462016063249070325908504771984244227169323027478389644984814806030209337384992927960726360504637522583677721994450700901572083946612782953037485739194156662197301004142915442062600679940586378745092676746840745660126737513198860302924506788692486518297249354085226641380407436708696874752330953879297544483683107560182834727951031851173729950803917252370004511657651616756745093049901966921923421529225586627765787020255377471755596225949817382916549478899837042380220787749937609303370790134457787288888589184235362320611472579690497645123912485790430477010879518378411257495146688769113908884696404729404800793934787365671255917102895098918895799962856153084363433323792267857380379528073840128281351361915818867764552063912160760259659774529839704200415908933689984487461127024255786485146741649238674905558769836031721987098670981255289524960446615892908100731484770268182034572128815506865314556775203833452966218838920123471708784887348893812670768625947068597278171684382577614614047045162176419797757737242502417077324667539649418481439839493947402724046917481519716246730042902352292844853248667789326670174277463788884747410715135426027922835172908717195446776579400534503589413523237661199636816578233890132577362702535571687023684178178334818651245438771853534601419501899650616970942208732266225797653950572598502402456804161998314854474849631007639528247715150437539836366138328048758851056339091032434131033573830157432371508577968022783678859434944648816140963616779566066513203672517731008054998159577477055590445842348794353786396533096015795545966918146068321550054585136916064554714651054342874456499286730683670367155636352223336510074827044668441970065739197645080168736488024238405718721891521989867710064577663499132586080376320827707745502656254865313807334084047268800196736427719201819592472944261275671863587536064562044459976003461020910490481448989170348128718693336157997781022816709310729960710532247722585801413499196367842976393470691745280848451801911141982344363338333703976079686551318620911168989395973368371541461747469648788647455755673043795664848554765893204670706733660508829014959224639277507795253614019049642992450730595964200179018155629989097359795260326836241474624138505982941050728568399847409933454588308555951161801059355462360977330184059988850720174095279467964811324967514933678162826872665927417032430329434825705046724917058752151121882172244972561526190085139044734693856685288250212256972601745278257672145817032217617499264100592537502916214486599256646995541498296895917378998273248218607303357913147670937420378759507067530172734659804931814959228173529500525219231750940087835882878679128951911820297297893682246816935234091676745023614636966506178788319495141748035634941298740170070168227840165068697367995360858677215960576358014706598492487968524526451396125549044431276535592526993440326363312440075853594378792977956125202909159060391161055027778042916788839888140837081659269839733883445241091527459691380098309649713255929340906885067163285407703081223879478357984535993009627229941865734767783444412602017667048899250340274687211348063038263128186898139184494586649750437479970419392460991350479822745160522524976644486874182839165157694735641963498394549273535277060597793822954986214129105424058761526129098696715104719395366483308913860898126520653945433683853883101499467272998422196861832538570773598058271810561737621747046099162330450436549603945972004578809317574407145449692790363232576897030365810635434028535821197217094017829993456066310052408818063217433938689390732264950383493837598303899301559865775464751602782554501544583357666513680007529030844599671651363986123062805067172054110252354936148608784921230619187551711008531326299379304920450782157815060224664323449503324247879104682515247701269275922608663609333859776243232665889977622207119885445896404791524159839681019362205835489078160181976633231063655049521504508006309736862494783145018491440109544275050929357512889838192258424236963068381295147002271958161034902862046292405001645653388526591682990647624462673508344397185339732993699836063951392362462615546580301586886864355727170010492671727893630044538693908028037624595446695682719162553919353562536290323372229378980141342583121274519023730365497046246772802492077270330384318796527746563602239805664915805053943762317064476915329926240406268448492624519291118069000935715950115860161320214945443496172471563358972694232051079823553460450620444114901801842835788448013912212325835200374986778733026238800719210943550252001789052829103382251189518619044050388275514771378530043835760582489292317904408119787382437989960934502285185456087201782190200696231543801257250694374764043873568093621228006093634176374525025588414051092059867491281403378695809199189875658981220058671835095998975513872968878791841390077424100069903585449947513447459544828090782225448792891171538217478216819300495687728584099019895616347260665790274690124424190112884753093565377726022246419690999789630274989719773055901424470614451436625540945916153789828723478775200077358325654222601271884722619371691576120120729039796316647142596782117885871533298443117432922256512297535333491571502586608489571287580021214318159133167619513324969214083709348363608894279995187284527581413497827240225607475936615223742889532844208563018605597744887480285645761672997474285021218176969232024116952590114675671020607934191336974944205517709993289212712612005047158953837089797079415504613605012333722968900785790158764284079223190279352440639983484773874964208017386702008326687703615901252899712827180871914339838580107252118771984229434161604954541404165999326099017924085821594603674022303103504469701731383655124746557962219718217420285986381386235037330304862177858369987728901538337927000649167271464885744120840912366623099586150351196655202980283135704793622583704903460452500637250389981534159087085885988221830412803967565575306624181650765061438653052334404490044564848494449906683989373649982716657707912836909755200884870705719280134020768536664027792570269069564148243829422883018840253277243444212140362511532587944303393694982173587996463024554627900266208950307234943385556131265855027420749036266626895934790737979544040901842831626702923942567504012750676991537441375144055640600926150259300905692475330297889464889379351691264