PREME/G/MU388081

05678352648982378097159976737698680320518629823131225410942420568696755436519824065787635630487537581781594362713723457308201338723573762884125590167112040643738466660053655186755541698291243188181674863840877075811251753588322981523194099408141272230975723659493855595049223532342532106186042224667705581275850800028133899433447902324828385515536217300401352190064315771248248767386118539057464122239727039314845611133050080253305677307139929575319964698877370788020058308872086216757572594432531420679573227303839486203058826350201549699317980315650688149592443069587843693289807313184458735672411947177208028891343282870318289788947839753936838532651593381521921072203794927151349472712644686154087547130066177064801204178622530160233679422367850302011388182956948607527379794872758986673005605496771983056089968369661678118809698063990519899370615429445484873455194026954585087572894456514842609329070740746475272790512992040270372717352870883523022081323125965292342970300606040913942583209083972988001023865887723404891226637773077209238324803257743083036884918144300305932597235685891327097306347837542777703447461586725530013253215240902846520405343781116026633074553008868281863357068805127900274648360483095906449979319662291052087090246326161172166547909062959883008540485799214391233945990166843158250605743309103859604144414063719950094844626235863349672957206872843640303919201525282419371798531243752762938048763936535535017182134998391951942308260351581283389397280102513938053556483472957304308362624042554230617704273609577628429450543370413479886680505970023919087685778394384887803075075087003530455766363498081187682679794129253671624666018370843429537666489181599239996069131139127246013380128353410809007797779545165555276133951346114021023976194885861836837656895413796692129162266054894368253398253891248842791706326745910366371069046977994551143392586777994672457127864010731627349347828109663436231316762110037245286152866724229120913529050636131101608828912171920614569117830959568479585843193875618049024653674689634497758026763401880273792359896077493085307867663129535005244634855200673287123055843476195379955513066201765842939376642523329944122536615239786214423669106381908310265132114117707654845800460090595017109550669669742943918550718616283660353095641788121362894271148904318897144771660500691321891846389388954306405417865231845656102831262037831347032891675854291888298769877197629872624232202084005559475066149552868854492896205343094559461691961765647385762643508916314784820784938535701630020543724555704994617212724462415641258154710756799137047181134478582595977642766076253388817047271832202025408583043141403333156285037955217594050337617242850436901318661213444577075124122321930692232507521423849961007020522997487013722243694741668430657976829760283359069665740796595695922178834914871905210690209046338083581297064640105676106281305389900638910380054980501709127518290573590193254353162580345081258388577508145625852624743629070412072530818799935957883138192849997884143156963628380460760255858534176160593603136868799362845989075329472229333228083651654623960030696330811322321062613156214223319836558921789041324396057156217416576313304251503254780773025484925078480741094952690593557371347215147978748928868260426034725371275487461630176297129157683778884484346944839316685080376319591395926317235404007666594246536005361273822413722627924338734262128480998856265513940601356624527178059860180719766098950726411334590133568271873588917593942712500230145752487210441087676599213429891841088864772456012049682120547220082281972517086416413863980139161015870215982798407754657340847857547793808509699910197556924588031911957571420917280688909327118436663971343828661209212638861122633720015278306255717162322592229996321897927762196837288105530964154455752278046735599618968595485931782400241438182089640143658155554993789948298792096764597181090323062545753165883661277990541374334758715903602242633704569655164954202905488758490134444720656605875964041970468544189345925957706071901962347447305054133698633586919097107705794297622943720846702585735014427777344793117842252477707822243815883230069947732623131229728693345025641151742566943979488820951714072679101470734796236551345384699297894489244311656145867943780501099540020783878018231818042331539126813499312307332246830621058185562330768262759159410415859351129876077019612633318893215320031104132304925895617799088089402303274681756997008820076246192676706783079269270109836619690922478836975595605751035435490307258750290716639647306084869773804099860595010693515474981000404284679058243550363440052592149338848985418371985008652535242637727699304521734905854414988466912376494792694384619879452011758061404768615790687747609016430917955411976354130436691369546976667484321860889703235019851540319353608151883608604115274849940105288996831008714740486062458835187540194622519305636864239638756426070763800530419789107676086116489883550613754523526105294609557616709906090963558513474918778953565464257025501817405998627931826213457821309997784334385629195367749477360022347162341612788120531342080212728581410038778291072448144226826955958878315484931587483264091193721276544396329786698119743022081542400493541767275473434515930899806323943579702307250824327190274119093386195511221957012062188092212316001234543553159737353465348439084607803049290547560923287244009243648894108505967770240984167311030400867702049133119353235523183123991572128919475555948817330866530282980065846931426350119732759373296117828952174076284975480576324028813037385312347832157531040321304563121098503456344832559447195908543551355872278976443898115574841640178009046314433611813734288404145236257851834336788150673845982307542936532631718112619524239839231449261605525989940199459701490740914667097019300816704936979285537273487466896451140691846076010130277471310244974530726792998984072388631709041934741154136232371259540405400418990572676000844344029537523730949245184563021648205734190290438234549621582026051484461282226390892319224345662770217199390691941750795127371097332614377998238380278951811612718841540418320816748003369202106565165819392515221291132415928613258871117564463686788635524889214095320216329898406807228311790747197656368979065403075912905691847004342568171236238413526336246594927102983257074814012073672830731489897000628561839851115681101254055753380586231752288488184624452718685861572263082063926934324711422411203400835023845967496581664286153763152035330200734048634572344362158595957981113643828931420904928034889682635904514609937276328014852965174184083091780041146056784452105053223739568882635102200457551340821666806236819593774678079451082148335988101010736075016064178837812201859197559229103756272997038908865412867778652822756557975670606015329064242783267101258260211082340369168218166009560445604475493183081587629135585404204564937693021150705007138464701920628407651161182294386582457653530253063012588914902533624882343137781166183752492089085287244347327225399555992309393749152223216135867112112868019979718682529090252277138087462786010405885982240232413199504696854873979532081018199825545648511018163760747327786968165139486157191541733588510889047062855980930447772953306991319085860573987127242611872013046123824622164907707562580623015318050252566199110899176058458746096524680026532093398590241778622569668162999847980397074647626132445749063531887134817648919802469899100045795290698872677930909562143367095096947563226156025106674901598225937768469729088969240799149771697469823758717132690371568092692765268709502119456203247310485065522782014834372402551141470363206661772448247941963465069127772731730010054869791064372730726794692064988367547549048855871561550911586893724891267375995376747475004929797041346775481397723246598499860045798759782304102607634883346925913492031971949189821633333708617752298227259828805618115910301777282030727613864308192159826833306111922361087329507280531284950149504198653942643406986903131702578339374907206595383918265642906122906040075605622890919358323204727325097599772718468308829805520333888181337626389754535881950734355506856047453612442701899058092857321069635009505281121152125214467619713339962480751645985746444425206788558186299893478268509765164200927377134230520696133496259792219454844496742845536890774603051706400425687518128502393125061585307684404695722397916536362970211301763076595142426188984321979377128368073665430306725298481740733914726846367255793055935524403827853815842807346596923371115306356187546091049413699385149032008897051608027238050076403654155196993081773501558317863826068052432847298347125613748384335449781380229449306336563473510287536769936070459875513684089793662001991397725661679155611432384088130203675471307900008416226806416746102038005795602018479083818066162780203051294217839767619243214644967911149699706138485168900520616087856412637990327264142662353880991830939972344746093653648519342603077149067215474025292014467971154632968931418122412378474247126107582085144206968756292991332615718621838928538889811166130970082980505215873978579964841912484693434100676708382930122082384196357808356129725907312704798819385564124132065061827406395080721909303295911373117999011923333786090576689933199451634738199050677549739756619603018695197786452669100626054620416829777635784741435243004174528332248631387130213332073161484873199088545822949692731715223418685800601110872994699702995219493625163268168529085685361079011094011299954692200942214938623100349905477570201698794735271125914346516440418878475057855876985223228498220396376176076520542204198537648896364124029588585198578531926555980594827695005421802692348733228804744037907342762088238826779397883031209958584941536710035671058221488664956805286215493867178664253510711746694459665749040461371947934849086481733460513679573004949032138802386475086810521021854610111121097316916855935185603461480005809340953863178625606288503623962527782640758819521887746933801401055420338638908058361440697088099730924509593663584614943384107385523360516554148506261427311289352853784248592885477550253431093550392326192201131295636823354999582594202305460331444991932276703791285173556950638801151549514737179436569549500512446136919480266629053629226447497594613655883547396392271240569703906847331462218783627521676699527722111937231373660501064438091429547692772724303724689977664745309892306815891716818714226471807932562519015990032964605051972041448006448802923851502979040672026101927113545757741826584744921657728939837794904617039844211834741125181542025369456708020531109699875077822288713414585747617414519440587055154241431723731245638962565864090938227513515972041239373705883453973415749401090777446770106095778563065423088433887549198492202012777109651619711304532398572371383558951709375893844370022386436294128489712647980760266744622255591643922599852831249854834359074505709211485170819225726339793284454415509262966364733934207179127762900613383823551563624935749821848027473029107765108102043381054864603184955918082037201914763304010884518549635529187143922143432671623222026865427418076452623107806094698036633423078398316190594699935715866333160105436434155275398844982874210573951004426538513580278028205508755835280250912127433095691993852673865580938401849018283316815308697131686391771316081564024349631163604909934272696754206587248540726870661540491684882645150667377450351752487584305771681433532096145184891872009654879620084665387615335928719947317833474842334430604405115049202975912288088482968317107422893377685792020400992618074186219800627128318886388586099757491844520549228821009256565579857478315173732948166670432538120183688038872269702927660919092798986000370391826637520638627810110268200993111962076447182417152825166520545541218376234947324995803815548998610528514166387460702448692327458686082155291817595155629023932827468117478880824621540570413194612551090390054778333023704514651201748600872386275920847837873981188243682990972459589733823211807117359050704648979640113360301263024850868861779940479550227436083515532499696013441362105549081063710941677360956189626749797569256480831908271596942068752784322329977690305551730583471661827398575706542284072454464729943782285017683742376187467165242074366996447377318078036290460745331374625762308680721941695360593672470375074274396371367844105585612329607931359524966662710268091623705835324723928068758557411129008169796441392548727347389939433138868286271125914473032448112069985600954728275360151335618403134031293340231725209933758542880684189376762994456795409937267295240202869583261695674472057551977060167982888348900010418173538130344560034023446539401463575134533395367791776178705103651237471023062653136010184658186361093226566102059198633479873646126900823610976164809108521556462683049402096302872190742262930573076156662376306208484248692341697807819908003605339001205867012999870379184062684148561480420781655510372813981218959599598195531540794022217487137801764758798412231308511087310975008739579263360458755190342661293665715303971607422264488125078727986595391806813789441831015348512310855572011175203431708021137058398964660283919986628958283061903517277076810044063014385686126261108162913176167184766604882767416398401529029378786178803959216808095226114789062468163972914526846053675934287483923832218334799472176379281614632205517409389367350115495496144974014413564140281305599787936644914289347222012928295514966880779514059698313050706033474614415161650386312795025823179589899345935604521639317736003617317711404406430749026715560943666002104169685073137385857942841265302377537863869864829535009257754515131301174798413022177717154797023037662967934818840959538297187859396560819753106016947867322101591174366154335476826398321682734286470899845296831704788926464976865627232667849837352663838356094869381849200995459944288751694478447165717359153391775623614862499675268462003033080412629784296026637381742294401375212310903254953662172424861081707897254102607682584819359838932410990366416541871952696076596448725914779277172529885500797096915172176568222775289683749547267695791421232429744409414409026747797965753713591107366749229544563068555984450801448574727201554175558053525900818652191837694931556132815727142878797095438606980951141039522204830435763699220996294175941420828983193453855791020073521098294660606824081246717366113176181609127476696089861131177794661907011999070756462945442291182179669871728285615160911523629291906119692073178295869797110586424123583566039277866615371651125213427856818070051141040107658174921421208166524808840391232446118358804351037652976748270830595204920676133799491608274174031326691440485485012375200720213541985297323244103063962957809290071394111289089712011786248990317572068210388443399672663133880891784197359327803779707632289753848723452430704450293934292943289973442729266460783338218313599152183265449248567673690540028879911494672359750469458912329386096861750062464676256691462795327909289019948935495145643086408873762486739948419867306818501025555061946029164064763206276674013664470052308525212903763586035143945742928924032285406051558939961321914356822711682578475921699040335811013932475315011445884996464793360814682423423103829360683407896617397754623647529440692464909182893258433369742144335713111700975053107848114452576320312323332698752917382074168694608842716745564715347005560414143858343927899834076184886377609213750575266926574126278596691118976089495151243974221259387607607487108097037442067768947431957225143576641621031900858897750090427534963776366647048912361111864207936407285204707017547457197612580869762278313431443666012426962235893227471563454722909657232644439604573272119075739739850075631665337679883443297655549577293650197998718002878628009828256238368197546597841126890149744675691648934480546600807193832011712745095665980158517149293484247661671952026136591892705825050644456121049568094729261521143441837873925529573965738998595376632370123977062962279798444359780790298948320767890707406313755097129840839084930649919163306461981654040172554151215076344369968140949469458525663178496727683719593682363674123582536964106717972633428971546233427437508364399064484410502484241595784890341850239490250231258356597109162753964471821767161559638531087915352909563514671130377110134590313227487293926311513322419405704841421434553682309170514319227851717453743226195952273214835764703498722156225150827571014906660740322726528231903027072664006332859703859127044320890310996310833212646521324363090975455623406134073885003038361720725853892789845263965015015393961531583465805553350428778482755617432034225651665150130317399244179581949207501817879468142475988230183966181457181113652885186542687811517047964152936781480900157492591799749708445626034035191478880089082083932427347229100830580070368945330754115295330300567248856234252234360607772754092581049150644133358161517500535807404185288036844009294278734679300685942435610772895888561727489361841112320645383376094180867144030993633616776567898959945049664645935022683707463152619497566192168868766448981059038800785762163116657131009328247495049320689932180636206354294431125042862076229235043084220495771234498695486277540194501748258268941708129462008877960650010670156373387725600343053860427090781838627087030623296546200834182417424186336843221689418755657272020235602035114901611374556814955987346300154477037243168677103900590419283982375972480141075661894282281319352915494160697773592689570305375509991022612088899413788051814445181793018936286413680984259985996411705943538149319239578565077322978928973912269183636770143153058223029664492823954828359308779952113135044231154894696389043249715960584569121170108317831227288683376441230218902951157978066443156207213909636941570176364682464748920222061009780722992697923876314741522448579178072413341202991898773537409676837344614604843964724730757022336777459938501732500718428254053595469535200619981384858677884904909517068648732257517607183237966837812021645414633880596671912763114550557660823733383853736747467259352905916223025705152493544547302784984860071694826557972948974203430858895682260584120139906738653122141750473033447357738393494959439584983321667055374228448194204800326627595121040179681527581030787309537421603724169160338409567711298782177501348788469921765426554152209888950449474176657375853957194201058512238589966194823581545382484331779562566213354504272346876397263813913403406252205911389404380249457343399232801229957436549523918794825147098399110249917246641842691284036975603974201039906916700068624742987838345729747806232102816152718878148697067725585215737834157534012429488378995828729562890662719010371209246862773690745241763864929341498431379580721392657868443517208968632150672453396392371984055787174767798882443735155399196530006769888797659305560959409122926852704039803852551092945382089289921213979989663716104379528272291554465563932663841881734524421833732150968262578649743793639107609005201893801508546325994912948728875826372335614232528261422633140480913661581362302444227252169646868215129116585101299622161117572872569723021129985397569738449450261278778715348306346861329901233231578096498656664091737518377329980920064043912275109576273403429492904363267134504133044308748384056155541749399112571254434754281242807175255518312678209686716924543719816712333160701448083788346365013379695749731219762641589335748630413721257394810941230399334097910773137888085982349534489192748386349568215332855980389930737861724738598491739453194028522594587835865631859901579990769026657362001551986434126178894031368333421253176690195334723189433292339364255215872528597994580001105074822934395631875976024149213877223991996059773445549002345074738579611810055979922036223274123883080199205230600465111421267178165844400702864456259087683792720578736192639799781454307092707896234566387816048208617890252631600788874057458155399623717221854084356340992694107632099299414292669398353807446100698117865763550747037853950313130558710298146509001358991876745388459225256723550470375403190029070071408254371928362548721681960903221306012787420738040574769303143601126710013501541151086128231034960264455309075727068091422593813116935466890014127369082834288214508599619067318887147189713927610317556568709047384519403667466758684335390152874060489584965112607244850408137684667840915817075086120912116241992290404757021638090832007785925591016826826757425002566337169302441277772463319589915606531469060656943494465872584802149692330007712865171323029041218928154919547439480455836694584710330847008736787850365473528671018497695912883738374047038530156820381950246129463982320590468624458133311683196505105635665408374213943202002802120981266432615975192972172378194075096195754496345734588476558842008961576553164439927099333484161506503616352890315829126986283980504461425196019389999334431793850914363377730014831103053168170523207511795264361149703694469641404663158361259615055069835743305018837979604977101320822855011333564335771308805342737118117012077447833208974309276607537595007226202079154795578540225159372529143846319490873178959469102338792462740619970764363652908532392906712213786124755310757246041429789745490944323982658901902413946436216119445986208832744264416649465401205579023516001512148144064063505614251865744008137004894973587048306689569031345245434005956302240932650643507028801585458880595254122059958346336997561993689155598982260561660893705876220890121635054716225889273916637391416378088112070890281359336969377096633130696696209702068984295873134654106474817655928097096727333687734606222815080191391217132091965619684147631520402912812377411568824043318392524349879207043092517285094462515723410291671413492181569574093775754150120809827230138616498501406046427318685297941997656588340670172095515801759411819429240935015070793784470415164150636604359131577877066337893035789264665453749847206206219290491358984183980802247364658873772897050724361995418220872405346249927964788130735842458394238708428071823631799890509473556655664449668675850979549510383550074244583864691738235415271709792891249775001151937249027808806658516859418768231102871369764813255063907235947838345533157182940554835105299492804749331877345645313756244129920946347593588140863678916144919269182225265510668007162519913697633814793058653150478445135252315712998275266561787751450372798429618914784638268205718018517182876071279943502998467879159752180858144939494957945034754106620947595151557261112604087741818171652161645563975722815286700015712563413297165801921977795582050508528712381856270607453475114131166628371260997236970813926750990245933059659009579122585423864083073549572602833559134999658160718231448788394931793728244192024559422247509601738620265981181984062787211830644299783509998585429872343632870838846981468132047135391872686936243427446000323274309584107448338037431605452324009803083862032754668633005014722526576050367797840780739422190680848562524589105451057549863878065568573666137515036984054618940928901430045305840425283702237572562729405620507314747345699720143085181557705011223853333787531752141188475583550205109704599639020123599729195852333071783955971495210679201299303725737191081091661578273137290288600699147147731262778975035707743045051990039808752259369821672745623892585086040654020684187773463030782255802232241664195151494861925624796861079705800747463009627352452028230034567789456514269101367034957276141599712884801404411422260284033614379304494910543316103949371016684009744273014052717148800232815936237394057946182677881441239439664305315305813540133657176893650716211693838308818028962295950493736498961066255672457312987733452315475359351729374112171756986062304689102186108502989197596864077865069635640177698112019226485695194576360629802760093921489899982503962170206781776040692314071222547890585620129076656808078200446775607233926757786250463921677588232590988086712070940561260897665800920355181477775739534437085375684678179943444848145954016123702275832428759808392961810613430986839509253359999341609503021374733249700256597830356654072725374905569091166702940758022434178756573721932793670542655960436256490627229025611699655947656803377613890835052656695687814204613104232299397583138694440878123649285230977830292300197259063061981188108036632451377806160380010585281536485743440967257335479079385487311923876443495974758794469055906402816274506341500618364809549234737439310388417585723197728861569172097693597192590785679392542285448442989006507407129893436825552263841474669749024451542215387946532285086743390982095111841299525204866497675887066958595532618696676974100835683363085939580766425556685600308871466098120953319640385187896256056422732732257375219508236352404066600392055294790622349676393409220905653453774945076863972966721404654033783540064085124273833213128953159926813697824226737618676894191760902478132323596412849154357951934384636643641136469996294668076009550168712328526458426380911641683944622513449838621096540205823525385925006314972596689485189785906931029926567911835192902157092632997096733246554796860519961853829793639070122146960658340874781775669972292504772468926727574300655596787652047937847231442304045467980530261733800082688488667847348449330615579682244100978389526818190240633433978282424214681354972876681818911496147350742246867682644087477911113566272565602143067899561509159496077073877612274901441111160395489360680943264365383353704789424572328640810917440289209115536023229934351803386048907413272666472266169319732836617523251380900598441917153606487027633037816144680907007163413006409042199522143980783813890135329238070247985575052975311595992712786768572536145045499178031247883318035929044841317784014145163189531237657207375167097074727569579232470874905270640384724740460581861213986833265610401637296613122561044512250325943037236090889954026730323028093252828432558001288345790345139714569693591854733938826371395115069140915967704596158204210739996110289429672612184747078428903875251018989767047936670042596194873122618528232996098946470067359338444972770598064559828722842467870567046794829699414329660832315785161456612628970431371184190514616473747758507734168857227177522828035197884860218510076269351172525764483721078241969506021260195063845064671416146523961659231663678246019017669566637715982704101944433049403309969363801358049030502216694740731711635103944807461522958646250167985379999220036807883483444244237865041953985753992293786682167311046836984375585513298918617299602249736860443507219247926133056733544045889118006129911569912232503831396925367229109885867594641876940767808468053384389058273093426603653093607610535797786035381605053804466242296357483167712556383982084194817669851172058666654236265323591652835941858540466611863725453405542083289839179973798953286981931147181051972130399302305413724764236070496092005912897782990572776362830688228295521924828584135760864000821218513010894608669676870289596548896607670997500369762557838068992770210498604421461486187720130224613739398529298078928195334025746305800919377104760151726085122807585192029594471967496331319985141768795072268385879989396717765826507571006406982741603467403766837812385792907609644690604599974714094293145551879045816362977868379259380362794367062672728020678135335902853800478208519312586476173131276481888250937412337546564062547949690889915672185430070861389153831069920427766252382449369820571582236648282388309483578406146111343044514911699235181223280569197221434948196805648186661787647441183210804470595196060463000855131176363392419330045956005768672566183685246217821609898813731997212198270020451610011098037101172472254392618733834823464012942246826146197979618786713088685039528837781812032974504684410342333502355039091944925773611037584736131626282502839041395174641325432394949695347244474095418644258411514482271201276288915624319121065820374998282593783726973537597132018808504082447903778843187099827996757267027968279233253366768683537494405957363589796985196162195117597092602347831967200363507272045048483628582583551757810654228849571081105471943000184402943785611431114787891961586168732471556483881319086805554757435300486840030227361002327011757242888897483577714400483022631630224389789466883082187696833915121765786933021323140419878159547837211331674662059818903758341851770326314484123574740609276835957000886247806496920051655792148341019332765003884648074579168142647310784066026182483900652480410922859669848641068511958556337101857281008633674131426398168974549270075126893194989802945934037462119020336440512536628946501876112585581891318715113141635264468826640013894410588566456611186540958114172143235958291836230200844753203249636487417413626402392896872189939590360830823337761310608650992770076723542050459899179044277569046587041125136706864865900033426844818041689334191398592462975148656416554371238795496651555948340737384681183295518029306955557320429175098960776389658018003368485578747930462005642675742385996193835853154027888965795388242721329736919608119131046353286708774060934565163361878143716007145637670448205616578106786504760651370804561681562726502592687823922503438796690803000580082117374724671725784407986809319920738812771676283606526550471898297144997542364904083279126735740052565961706296103044025597600806679154629373379246565616115867744612295735939427074624581093287141334422850752782579059444765269515092320607858142576293531279817110994778958089563919342135413875367359336097711004175553965295923301791983859390888677663118582242610961429840333567510002187169956609531680728295252207655923679961909768623872658902111344487856542248674272380135323747627292192347916261441919523170361102130616418660437145357463367132159404634873003996060871201388299630317678633243579343034483274198253069205845102948080597958703347303503972711677521003133007837529595735671392739748698284002372851663138077593462801854581180540451247847837015471226183934191526194171910275717701596139271691828819184244986814036575472936034782992433786672348667635582021797852839823343607393203594434848714882295948070553887482424994521498086134159427032091958201764594527433853217378188700116321155832128641482438900952176582416337537376742477080033134256905501581564236884035710678114094777580139326825025532382696476878168451437096450489611611796992233782959163507724111077555655948303234695349859383446121148318498771676030994935495343522679702229268502443914101339147525252229698965716492044747048266740101667008659621290888622769998341398616381927813454302635553502984046371112010725874100584116113319144690658209273970536377254091082085839505186689660667504004831273957429732887552339049666231948797998227881160701790856814977840225583354044504211735547975641088397583467606818295247528402829374719914462331066884626188483175782881734827709546062607542820091685910596213501478480328501417963659231079442076073854991159551920766558961624968466688240637985810900443732389398075161095734395141854063676679956090325945189563899189777949108580834782676256758055217841413457593788929938462124325884586688354454204139610073988932266287931159101879851075630953039202706549272930341754930935869412905765547294339689145745843628687081250148505950637614822267872061863834976453940833369526756575417916252735829537928480408354272923125148087472529212967977785156908052470151076584949598885704737335875135321490167013182468275452320535641475414855420071188420505652967301357710030700911338655278764457171507896838520125434822733558248890214829914787714535742171569782373839875403775548754796064772648421104310517127841304645363706459653015863403183509228868251613696122562384244736145809142220853784380092758144288926902343514581518699638812019657424254078757393287380585978208387181287835814615738748418924784856684077558255934791075078386289386182282250114342872475108719906418203838583379462427865210983332203016197501908411035701890211603394896430979694411515050707754517082843092885024660402771334276380944730012028154027126457882218168181512072791176981830638446637516706395926629006073854659894646766245629940200145072743524261756837783943503543304582321285140562975797005031056377124754989400887021730776541642382413096752806528372065961942120075020206503939454343047029224206797421150732138863790371119737534485029571798911620093970741290711613855555054970805839142192825456188965532358533990171075057163625155987909252260202464293933220596590896652777233950097216159376461609526042263613238208140757356728581421853637823289204206322346064188616831575985740334832525760215470694918512086530148546082079149179467907146758068741252176795928188227006213419400748963784256473798248784238827909217187365613554931171708698154505519772035409932134118179139808274351295860682051785346712500583384231952073869892571163557956609391255838533139726251026117004593396079176564144382856892630315125266706310217301953381719235856665694540129719155538363929156938959013552192879710086857371433420651193826221672037148037343588085216297991580495710820825398086834768054056713295256687855022304196188987242810655429457136575343909916121249189299433885148552378289111047319281927328753194682646552901529006488737466094206365624766654371660523407965394432472579343185257941507675402665426060799823731876357786260948406349629455040412309795613105867161543806777126168013593135482028353618948537368842703694675287734263390669687628115588096084591447885942151500823601322573580149659113138792787653781795950300625051439727295174696570036726607689440342221818666138137601256483581802563545523429019667948040375949166145885023210699774645538895774845249096104225158371183005717386278772566790067299547617065524502326481694042437416264545741676205812947331491688424640017809867944056599476294986445995032255024699542601145120157383524662074800119816845311394915577064002485196866376118315698527682272017654876215139603613791845305214700762211516033531383619447722063239729297534967700037927023063853554486291340954905087621902841595294289736003636829469267168505709091490344324560369510784330885765640056138646639097923873499865323630732263449940173146389091649605094718564297747024969196847339162539157658318214267870072683765552292075344432978769574705453671933442132344218907245736029600433718617791010225137735758661380728994570438227908969758213095501664190428362296253893060647359147614862359066262995359756240930245111136265269111709297022043218717027162926071727206776210450210580043457425764621766211847556357863873271941402823712276813488462127924420803302026369773666905520855790450720672455697817475042789812706826263977499623058149131290682608013778212478042641683754967066928935407071522701373386303860748495874245215929948734587171299217629087009094313286016443598499156592354690539079857017997103641239452343873214057343034340883069569259110750892181954444745681831092766130563389022961022250787725435693711423656373711841296178103309093008766143930749258986719393044960144493529458142193075722897706438136141133250310739539058109600851691087682666325331981679982879991179824163844159479560783374858344383161852993604509395594540380882307945903276536764307179159300802352281494278680592575818992512443888148380387903904911960642634644668077961105900483475232341889429718727750509765707899780396574149185430488259672809163123087899028275772993490283138602820768132088364329877104137127997193268562418613591817004372239371910526262158459587320156837899019818124631257637445073117417269075156527030134929909766801957527731096319609047433319996939390566394110618725992466723032421389972326537364933180071782069711652335097044952791771195973018995721540239778769494651302411837258560118970871170161975504980295491910644288001505622818412014784952987950238673828298670798618380970886018113323578877703210218782877493681007991600274370589338621901386022010054389225838513269157576323640245202451249377002603267693435307632374433083489628441167295010064329472176787286079121781623805576458507609563794554741437587224513010700299444621901379998605411240640620316301262718679888043888523543001768119606555311221583845028929365140594487248162608224309703446609296665568489409757038063578571178446980801547407952917236371295824213548233545908153744557736839434107576940942486298554354909269133486059066286051816369818181697389501847750284840507643218161539939421747872990575949219855156633924355828331189580987529912621736531419363855455305726312246002212116904130072753518346493390336431890324647716639900549114213105732593329895918971399002312787702230855617181621534619159212891154542934580676696617690803356800076537768990511413634970055831552198519620748453939586693113775168041526801183862801974279641112965951458224824055124817663166938912581212307490037776470213990893084512835373838661805613679334576869130521959589051093028016182732207375264074546844234881192052952243898376021448280913303459691004864382766210559572061931888732879897752763730602488877313922079807568370394519946038484922499582851273120602149024412465243946868653806036943449461314696551104633805780404330570773234837136081906557847391074681250303981916104060568766937253842420140652897968544690443268746679469949648295687745943472177471593275457660803185073079295774934161273930360206021176389326840710471616702806161889322587153954713128007561509411069629630289474843405774851075817041564893824737262639364134300049496136168762892086342750877294906495637594650912068289697279276477023027425285441553750128310553213743140700284223037851468018791580999974734309233431517238515780287339999421272018854874486006209864829611395325453825753708497639959961621848882559780832891327392385191379157989285943154152537156668209412320048504473422740293560630742815784987102996495604826618996022916777785461775981138956274377603206829543427171369077141194023905809985158580524946254897348592623958903432956592051404274223383173845410188924591207806142536027156764410067532056580975752299028634058970637745960966568908059313795823404784235046777144746446058052908428645746649177638341886128361024443504592816979790451909725037504219351637018287682560523017787590938303713320578713343196285721098686372806922758467129252231418385366736165249402071565502141518793203253967185593414575824511068837038335852983381924277506474858452733754222506722765156734516157862601800606946479116655892574735549624314038695782034413033472459409362378012085035668307987697518334796022358950543997345671124838283794188379597549802504405552613789516372063387291970608420788100058886018504668043979989641169901534474424075048107240101586661559868819909623067283718564266383647029864920698386148128143082046778916957578732022770023638445329718440648636980537051347726293878714968042104705419895113071326122018423383795971096759102572127641021863976927116672311315064248260461608549846709736479788221689502932736746019527198377968077643368310921467076659098955765251668228402273838612653343770898102152133669990608562589401610721000269335953499961870313591724572254331300190926878739257117807449618444692830144416475125463989076811330962959035357587933128633421083952455923998149410454633741326357230224122187621482915821564082098030756017492721511471242730790713665884844992215354936129243575796985611818678659292314023834306320455969439415482045090703878183735556529176526757188460384879712049115375426383701034523697996886275488250806391354621376248340942333586394875186558211290559652361074296398262507497849489348384300205460261565051783330176073706326682478695595231966581886978992559810737830679795636290656452008573268109142409820386384885618141520145771215100141539353585875796444325312251759474020332547796743283173337652493398936710145083249450712125768853004889174801412673638949314929691200524805106638792229516845917980227406065052086920280577029971974877938702431573328833776255210318613025129222810760458387290934811863549060447867163141277736625747451737694188197750024652009297815411516122141485342684274277840430212686282670288280974713767385528348861045634722707907398518165537032615002662931262880083034255642304497112479805384095393461566861604273531582092992623180056568390949011482739944282853662044641525311896927929650087313405135819269568157450475103440663970977218089291248775097143692440769061248880824947192357873633993245581190179438434825632977957209902064962205800969639284041070816100724378054462272560762330388474578957936845641643615300936864578019799195608788888845302053807603063934551699848359021320499260477580216118070693775603069005517072450050475120531538741375228270236487229238790865935152885326651103256274295405049169521805688298893205462222801350872972804283191381097638576171181165522401613439259863627230571174284466156909719274087292275373088143823447922966429180649769932689609102109738868180913827867778763599113917228935238835096593623191181914480949749864067086272192202002357170347183357250325617486104504777827709547046046087715970106254269058247743504998245565340426573599375455100842548311269120493694145971819104568905570324778339129848088873752583067342800528749767016534637076365109142993860855366408313384942716136598689738949245003204205804017901513546817099286045356711160313348894005433108109048668614835859213272537812371573892564075136371296106870009559612978197806025884024203362330523607195379054193933912636769697473051708129469830576129153804516510075261114667931803600602841642244204745906406931790432630355463245019044444827789086729543466490450051564470233897099054449603377529685109869472627077927352502706805943764577848921274093527661153524823985891309657599192429857068766508380658034138885952986195962171581994618159516385757720217709569760055847543609596879975813097409958941839422322043667754125606619502611086744119395833289090474715199728337601320816755404782625878090941005415633722989294408376713669321768036096289877796767090803715276377324136623461677180801459921696720660230580059808540569592239585779053265042392343532428335579558145228995279707363766448960770600227104423459856948293212824317980993875127127202494538022217043903332131416105556575827454405950149049723868494768043155715795992359643771159490347449280700624452581128746938603740662438653217788221766914700663932333720798056745301787253145411565092039921079855465146823728435763742882361709793075393824823080808218393356480713450662788579285891080578409041689040287335992020315555232105394206958552035007604737721297202278505766211924062455041229507106206030363850378154520533157020185162030714138617274879497400648854309855568311585185805254288532303224218165705207458776586813399134474286988541640160392863757823213580839637814374223051245508981964387677303433155872668707231508006732209154567102875798685836226305564141493910848330881500504167410668610730628264521556799903902925829493354381805755858985455329030280873075820024562420493161387460756185274390955785128014671062534847297269353044039813654697392158504095863396922293756403585381666204725999220567957506664404885424105538563178560933447762757986576882205397557223974287699723761150984126662393292740757682087898034154074923351931186906262154137642847615962669767679905654396004880092951596018019085431959510694179334639803803739020300383148873277086234629137519044508542071370339749188878675213343575583602643231961376429030445049135104470033719896859464181422595127152820115201150758260289647205669264425167598787463047863258714742660996478765097501805850573522835512188734422599001073739484475700284608416281460037827796083828931244586951802079906145787953689894818295718912239934801015215109713810647374000924071349392616991230463966496939841882828030860197807590740236331819854734800950388084781292145995251940657264128255064377447638784757116025851458908524390652651876073616136064385345070042822756245446319465828824379598907829489183470248347281196308761137937345037615643239328713225970527280006763566630892374006247805423429936448344724717373463329221895317727880675372989630142339432865259392794963214282170956462445742398828711635934944978984271170028549694168692167854947409757324812418497813977771595584738906309700308468202898932944230893278824902017198102443741627323205768500603612875623826242435765011700428295548598850717925648332691956535458337011453806781775920777427837735863135633001847572140216556815874540299185875549344158619343326964192050233998624771432510354432159521244195514152976868465137827246069594213431804632971781970278287792271259427999319431566807560444646539042050517395663749542987934436397797648426552883101529592572581655379525819142876426402068301134252599438661571583021556935949574192473256997129590895037398838174349598327964733229423041021974013395601468930284747038056952816178428863158036395702062670712873493734336996100215029956978043077418079633321675580191984241010037337861086716797511081294907744894492029955520931869652622135255771150670403869104190136815113923235389523694079893546084464775867573871624176097121442609128710904376274185101517815877195180763379230122324856538030719191964091450235500066022268016200167679343900760333277251760134102771495513257875942804545849957903665739012828268700250767131962712576459303445092989878997246576992167474073905239681021384427108759906050084746488222318462848755087307081711467349560529735564229203214842566617761862207154005016277931731754287083312216864067838898394322566924909859573425388933929894671042371685870621511820857629706593403869430845483879413430213841802364709084577474726713336840359705973181313605424605037466885362996984149604045603727489682075934085492032013915286721537342536480901491310841415636706952447531276381906252275196689463215392063970345536987637807072149087344560098125289941391364064792713874552265298714165716341631769080589140539976064873183755740788098870395291145026710336434534402050175427079245004347618030847905189825753576384561891456642460839978375727008837742533388243624069263711720454921637072739365757195081247284869373150640468608802201835029509558956408587231325616954841684189671811818085582392163967677718072666040470233388693867563179527373721127796103642470851799952746843472390407295746202428672364772303978003864606659414090160183963448521149513063288987250559439593075178012197160908269305475929027363787425905273739388076299833993459164330962812402708178663302431193103888653337983672561725885895785328428174762402583845429561940501455785810491845420218406402362945028969462916405671469762005273033623506078413747650483709624430661804450664863529397997541893948820833554929994736135415177776734230878348697891454706738362937084968765659771525775451162101462024895384975273828274832659137927385727729252046127052628385756366405602005288600927609680685437737097360584673284610153505929031178940319362660928887838605020513418912501309846951805569751210302141665338120911368290715450668765812748540571285253658001844287209669513620764699331513375420207827464998872249133356983282561233369299924202353705289454874172614363979872808021035406561499984203276074685436618478450449935102354411430902739650037184269039026355656868705321822560612471840926666397321229980212470107665778862584190441620595642063144546751444944000885983984766019805605668517393505332602018544588635259575093368587818306871440676453900003725215941500382182237842407549495794456221224838762570553143342341050229820575898508370229593284172153049140817123245394157848956243172893320946874791457852610128760902884281140921160550809194043322935698638736998593157587375646926936385162092148103731151287115641713432159991969640347322552324647734756876852658513509515538822127638025151153742019221501567976519845136568290525192246047520828106698162103987003013350971222526533323433307864624311382003868163332868404983568796998145572921241454834805100722756589030109070715557017225544114020972436523639568920411301603759852919885195658075841043300433506105398584671443625591981002305652726971512564338268664670481953858272418660773220510238716247754129847938247883746324637403735395628611542482453988736327969361428272596960437789015537935139213151210172754526161757760172170235329521796023560434882207067548997713787016565974461546531995064551693375324736220341602995521072202845721326137888484468059862647974563085805262647969488357990075503105086024249771150410869938386344387805648356926348535599317212268270693544533620285323136281183787386217353573068170326281133901095530223562058410908491415253018468024917015095601928536975649306164502709506477041007476096479101397135144662383123363285384716385812423432530282895641032022472269776178586148927475608308330168060388257658186314029766017489746512638740899629298862615422293376604133226587880915031344859217331734857149196374662692852142249399355177551326191132285967707174155887786694694562793956379018901727486058463112698514151080320316490861811195321862821336758452627013103480886762105484572246596012286072674249138495693539676770827500450840749036983133193553727030134863793840061193083564305971396081917560638756453829538625869100519562201895053528490205349790456882947359173424790352256912553120034629351428248915587013493641698664669980783175308667677727605326175459561431733549834398003812013326660930250701285682712417852248827147279909991302700464840083824122368481367824802701889580422531695169250893885060293972356966036081366365397972248207915413052775123652054271740668406587959050797940160073717594185628199888274464650970119152805090832990872853223770099234229959428136394759268287264260383228633362852089502035216571042005464493366032320613972317931585909617150021440099450756744717811011051662535127880704816209507154152084727906656325619718750038606817702006663759960246121533511196130701260652202803322466536544961501654108801549569107449373917682195866516910224544307152599199542581001005065172152142587553531749712851496081423599444103958189070478388944042358792926919496142835627199776834398921753052224067082063454232500604956671525569460640037739884659565876967956986262141411269639390402735635024105995873378706196032555612525190371837845015973827397122612134823429074598620579927423613139274717237623408243455839802380518717395295557440579565665249317740730379559720100524339793651516278855573849619894182874147018577357004700370236586108599240521077609709602406875877984015065476310102019866953234140091072037015537815158604893720752148107782780869184927313005413515129284216205016883705494902512403806086788137786802279349490877603230292862652308717374559260334182419192867207517356958135202626778927986770521636927559706264912026593877454052143143016835388771813312799245870439928736520592077312223710520931163642731693789821937730193373879185380500206942786806563218114921330073990534986610161358927120733992695498594402720068183639527433404836756748052317160867474156803297613928687836588753204318406668939042948403964398824204667342133744612877878244656566536713386468703429601060330880924862276324085324594709832049929043716288264860333655719131267489722458185993231139444252522409526646713620052458416548624713086075765113052051068613983998257293196575963203520186558140521343856109975904490375747379656053109638582447200719906947777264222935174272659425740981421401714926561926153360468364713887592592266798814292178189185154439633470197828494094892123725189893026818371720090420721624576998583141035794563649624607824543546491663738379033165006943658085083293491886617482570137954073315093787403874234065151080879775613312287106431113424972707519235442123555624011553029578602914069832024511931523400813083378079395064924769575677991626432169334488851414680833758845426375364376994951468133582593185645728765090614471377190285055718071133747807499969843885638844699584457238774503122852182602387598073908365131756529585737833739052292776990371734125549305368365829821839558768743609318285876514562299071187310274900560748915493678042143027416916451285573802402287186291445675827616472586953488704190564495562417802325195433000600815989001078098479139108312742297935540829934307216907401843059388817039993472276474753744105062639678065765244962029987312393996210903150197000459180655290156895230112332517557786929387488148781971799749678497719067922642799544557255943134425805290931077163342154391620253871706701384354261925835730382059516694068178415930641128532848846749049206278208178098500409604655661154949337974107219360759063378878339877950233411901233973175408858926895397856806778716669737765727304441199686798473866087825897742177539867847700339699873873752379301873444950561619051141357392201781067339583334626326856191651055420230824180958119531704451023696360764282472804886659687795169565968410367668112444412828054070869655089761456325947327049188137456269000282508952951013063242601615525544478000618968790287901934961143754283707098759521742904284127429574608048925294198073967743440104289548424154420429811560710737387592423384032790567536046914897162945769209784798386361419473018206015406482883997944757383665360973895898390936719754100374937716476901708992804101423710793452554702320097477963532502334467347667771241381276857930725425941109167439357020471430881690352723765355288376517367358265347455389639942762860061713512277730389055054913779709188654179196752347390787668083906455779049102910488739964426840812991151088227672285491242948363362646005046367960305571240921883293236706386566123974664125669487985166729628134635639101272904231897560331805373875221638341589894192494208157070232668762345435193796790909211170861599578855593160725740239349992074286184741230199552241353814896986404553095265459176022801337252206703330192202443536068139530389391177813955930490151263860908587970706303979980810816031471572423696375972377284686636852877416100184613543775555560892821918468563808217351396621489698465120225429274339325747114517612866504089646796339350756008361399938016085168499171957121335764257369554914576828338694455818624214896136604527730405930252999291958614567081511592598128360833954363225428963405135402396088615861052874583182008048660779988710828674808553362039234178122743481661038969918813738123373578134734143275197559502694469125776677144671511268976390901634539515507052167115775378020950222218242758965493896434402436563189437180409531441782307413207732046531234607536455760526712711048203792678434677338184166375112901044186818963596953878043650887214545475252608576964948709684024493290550386058495777739364294580981521003327769889107760443747819768911959396779558140609835346404530660486437785161783915668576270346444030662687493777636373560632178841573761351569631044862660778017876377025775535002439838638089057905261098718013516272591322944595642422418972477115177093391716936497274015875109133775879782556164380210635912945628693448389064309983530933245019861920005472815862272171561866454051484985500028852672170847836541722029010090640133040891720341256615974781429175858109791470112803642003430644320316934619748211580169265972947502080059705131360352802356559085129841820717399065826694636289562133057884663997976763363422191677606685647404011369427462275611375398186509179200766649669035088396161602111617224239201746331347376178234165317266688002343751218882024584522124840402361820610293125573439328585144750254019721986328037127099007204351630055779801961279365659869405089099933788569365120885572348755549509830899899934147224690560804112780669725456732819541604917398917148969557155562823002862159809875147300721993250965410201474960820995147300505782894020792685980036057159033685486372481390030653549379363593037502823877675197006538002951712332311951263187740287347810319406752454499104579144201526908513843962850628383148566986617825382846847565636096848129638845420703674847735701499572707916304302444031659690533261479184856136594840573900761629021450873707013982075630424198939607107780805815613856495576422299095933841311236881711014169363551323486561278109549507273530729701307499070937206440120556859117725291311067646735301067418273004427838134806792462084598706160402074708501179966075433782724575914479774462696945887702359855989520991022261322821966514439407782806420359820493270507255135397192337355307594010034771735926907532792994201158721259784239528209620573635958167124435444073483330841315648147766717338337041650832015471672647901969217889722405915283831047732271502496112074675840877224269986745242342276816667619325640527595449719072843064536012114221604460107750217769721038012266363895426576331023180104201682960405400173260336896038201331866342293672490107207502636360478529393915042120242025638325060264292068581706287723796865357895000548026614020385863265243630642770279437717355748913271256869679594124696785852481574487000215876441705933272280965176790745367163858346937598434610324006936348628089289420103858106535663815113192508352450396362576407710663488552034931753357003869392651858970343485226522382212625166366880831286579013359290900447663944629348692966356539062667670374669669489837104566205567394264331159122508219816161752687061803322775745525714905080855353292769482563300313224566294368203773028257883500957822038651193299180035190185981555781043564662745304918812103892146812147423965413568205612405890732827868508064264422635146615705015852211932305686241501504829835033927163807888888583510024229253498975215841200163470371330172880522796376781132505370387321726448561759954972450167573702351286196362970449612695425885198264598992501405069125247306051166999538396243534589374158974598489231632133364602190289946625220898229713793934930378004318347859630861780400506800549784635864321203599379719060141803201505201028921507780457412968646105107883473870384488955855752338425105452404466529436450540354961828889886657122135588703850532682623354997119532296069231076851922556865611060744318640381802827980668053814544994781778994249609324904142597662323932489718167453892927251042651920092092205895573033759047506330410138413704072118495501722361082696635778265219727113606036005153839252691923320798912518182612532023314783075007981768327535483686406991951598499003882890769841235911519473304833041668021948652619805915604312769938184354319683122858117798440101772662850816607325566844056800605604547817182204647156801679436324964103437841409715897458629607613678175572777801553964023372194891762785020863580964993925748914204951598217347782207303004674417362358482239192855491334917702621171935311752204889735947469308981982529584426226808566811093234048930463214864698888421760063347899512774610686730868014089935468774780834668441110681183934963224354298492748406636745547886746895388519554581785972966621412966685106146742021928344058396658303082592132663281292345989755137631196482187646371546407779294976023935169447944755311914723210826478077617441211374303064176393956957002997035081147999392322035557102013316993920184009418775688826052864226581465834299723338246268107536199701869453689306281920352645509779305128050239651881322115335086242083377943180870840434010419310293179447370786831819482738403078506910145156149896319738081320107694404911701849621195548748184308175355790630864466294601447138172039323650187572061697083131153684452995433863729946662882273640575088215617618058331122377007974489509838995473589650845368605782819217964240456975806197400637626378004031551830795834156272242246366664510230758453027547899796870621812487405266142516973746160138455795390820133139739421892477723812386881642586862152506081555670760029430250949441810295304326474363504805354515242802503805436443042697730469898281794699095296804115659445939479873695884094514926494438852452643859501128213659268950609342259172104415622958931774989036349243002998170280379235113283690429298875111014473088262348955871754333957200201330163610097938572850073150038175788583565019348435076894129668503329786883780323103198911194010674218964791065791106307868759802261119359163366309058388471459246971332557998246110318452589324960344857801732773991356512205779848218438907237218235923781140797113083734149230801225544658711564166819427054873809143943142429804273415657465374752746030406402055531556661397312674368094726377643106060939132233324950229008325217062881195673305426672374550676592143168862575759102572626409698391624714657571424283807015117779355218138328256509099783484703231440370000075010549160664811556031637391360695137140566641662938152173860417178763046865847701778518324213338166433977036014818844823558139792999191319304623876454436421750870037353627236129694083755023817070668811365208521601545431795184638581294466976835893857040517405048281193675714738139507692772070963127984232945621388797805916730751794371482290996630095683961979907812882036888591341307617015655220347376029367406541296454447447426421522480027062283388702651950347458861094559818744176389171250170765742283007717388612462495450775654553725332520750810852152123472234738456592252978344250353687623298615204330761379790440653043644638501236702940379780751822080749307083591040365455644094179736465522840515572839089850832796618058764150307332353672849329131902484017192979096782412254010934853007791570288907483235089092787160743022592910840771412029171020799936741283370982823214365613203533952146614043391858743140127658512402985505605521907800913735598061315808589486591562307804562119293974555306010627811761631270382573995075506743224875806865293092630008557940441546466115176982199197882896486312821551646976079947464191753089902337528339033133518949506358947140842314559242300500249770866048524765152633767907782688003065986335433989933238332272491859441700616162535501932762806197249210858191359778915771839648700250583416325927577371332977695067068484286677252823399646011101130433954958958985166892231422362464160880263454454376210842954601130501262942070205434716525165168900650777267308157633854669942153672005036590270902810023129909770547068798557773348353066134568328868476301051388578027364410476742881256179543858918349058837858958747826029844093542829259560059550962459349561844522465468967811903520929239242321684497088744386715652800690261930919425272709222730907506371386778867927289609986094598889394277944101572747337675121669321196671686464577825996864286971275078999684256450895776067319011732062225939013401045716039552052314917771163666021823853101003483549798099971794961188987538633852807147084445769497733122742465071859749804037520565986402918687207331043656414410268138556884621481595088618878298999950080794894306250291157948324573814822718186422350763716406255307784460251273813777904039238793654096485104112708588673360105377906409590961381151960299520255636951469101891466580767645819688035726702388240045114435411668695109350216044952546935177779805089354889306714507687992670840871837600254667285705388525395156277398032215707466496507707708605145880853837769410951791610337790590091340995234510239417679186046278011060855257457328773611240049707751022233801278277198688772892251454940308649634368838835182180920269558512351816130998054473978502310689183983547607909031165602099400387624159380849955094892355402306888343416399959302344886894017788899828663350224057203255475922814059456403067560509679441433794736612670058350299145970540461417093071848010146905090631386036565302737273149200512530209665174732289176278969647449695976185449187465947755575457995537364964559714187720582165112876735454206558200649310252531475134187945885933707245341149718732999804766636682604507332719322530526986695742689720684252162581852254827449253048611135928098095960981360349690530144517062361080383905520468541905795251672933404764659896641053657278954140655283732512779641110040330158749769266123828098988639707858603590583465166267688272489249112236021675751694148047554159629384055359100730834039316995029358775281349195727273592165217882721554455266658460603084158728265328920764417966568729491588271313459910768276275476041331063605613002220432630018140250145976888290500847911188204565251777478341165411613061884400656861534056773287954641630699857532226054990081981129547212132125404497562495630080377837790821821177080375853448211259753641570973059462009211935931980330316857527222185626346136866193630800263261916711741758725870385742949180521879251456647033496082794956935573547774145893664276309016379901580381163603037785118690777575798557854281008351967963363121180832273499359261404741994254258835533399785793312826488842441263000938767054833341234479307316720973927081092401321629668236824621256068780688678254757388439881572624037612910387908236757278608666743632522016670098532957456532524128504892733885377174712327740280859952251327572567885650843004654681482539563865273123035877127520523579603634530924897551570703288527793501163796275124602758245397018479291034620802150812957187592749559131616891055259093511291809836322078889742679179343216261308218606350487151343988909358583640302950127762374047856549090375158260069499228958906405950766385342152241402783705901193288464610625247769636436546062176854169654269171363632784030816976398839011571626136367000732217475693559067578663337105306993149764942037626353296949669755233736170814676871412498518296570859903781875380144930828727821161587185088268735578115297100369979321147644328930924371136432681368218778925728214127338951395256517580508938452441218968963004613154348352499568153825534758420865973119742923131126881403862576894282634623030550532395230641307983144979018305957456024083737855588734834989881020262887903474964835432139323494678546338417298148091429820651685889647148793383769589039117699760170484349310711439282640072554335577140427872789768112739347932620843849493752520482671632355395600570314782904606106771989216683832567289842047955295405692964403074016000256447136020220564390680495607303608463391799344214339553710668776658572960597907028144751537299729699948459074223324631143786157758532317760661328731636697535765024927462998041059071752035344620111666164699748902489127689419016512006463907408973730014603366920811823857262601432049173002323045835621163492727491131765454067443303280222960227738946558506318993154101847127898130228023937552553186136228609634391151777338735576959837020337301652401715097230754982831205532499221004820839739004997322833789450884295925971353329394164290542362698169709100075402412182928978140845617403067080435925130125939058504217208137592107372192769220895973397411495456316869905581304507323972649388537709832548145336058218584801633972164824543131886067550569184705201460638189951121843004040980398588573988575380701204122865944512526580658431674252252030632670043272287392824738462499763296665555804739314599865215546947021633436579657730129645957800107653523781534375795278014177270229790444725413755364612441552484844851402043827648767968926896445250100054223155012585244775363792306391253541589745532033852976128558154778822477017491667526454286534881076546071851523741665816222841030597105474950281664623802826616649324500395599985066445849741405609453958271497636311926245519389207232665640053298878781876556789512207567028075526584784186153850127241287070737500551857922343034013996140397626266429372623230481357760433266556445018578248618095522726254276649290227848212532045468455054657431706913779856450402011472874501570986221523917497282893159914030987082831377051071673101836225571197863546194865930033040736128936297382274115205067337776473455090244574445922902311963224493548081452996607309757980749949516598234870796903502326045666782508340716887648826037154533033147574326611332679233579903979689732777942564426046591192928457166424762330626025069464089458108928844370296725725929916302006031935852127695652319591723347427910051903644454818689199221866997409103072113557787723827928758898632079369465060352969355616475838729664781055388555536613234325847184824508276609214353346714600874879421456925941289104981072262535348124583571331105444453197362109299498949728290607040901807703332135473931971384211025020944785215275597930255062205202229222802302173802781746976078290264906751526925872670913224186221159572751952482502604668559893248243300148879484900264010350179262130075323411448916352089053217860292516616439770437516967690063797576604007220709649274722348970655925761310137507476675554524142809164242724679370753822787056754836704965410553337373180287937020911979167771905058304434353471389209226346314469067675526252243739552613824253329880874971545018322395667977167575764413233912810804081249183184174956082368228553650374506767959692510187795165705629727695534269303216258843094902225807889426943175495576936408978434794311911380371485182816115844651224666363959772653997552435479554000620643767745398568308040384576390998626153171591201543416303627772298887723064406207989049097087580475512347838316175075429359497767216019621197341149908836704758040881275215772471991326452006091073950270913779390413595198885360224938056992753695658905646045517816933404342424816164629182146747695456816860141473730491410460351727558031362944967780778965090266789370055765113664024128116610981493831999288435546742293686813937798891733911955604920460624145136129859909030964544541928757781101705244345438754270636735224489229019071738307898521894280681759462931871377928680360814641781326794653087118011565775027955248425631386903891925874302812536675828339927445489154162358029350900420979025967027694816796497400092485482955990949465043619742006081813803600746427391979146267661756938604249418166807833775198004279984022924785994552111911547639823822595756393748747090535382796321626190754487083904843894175477442879609399607139875242945175959144587829224421288564291140864346923800642693060472931328028559473457177048936356954167477696879491696375642290560366175216415290078470983563593900789150290663617644959487890329756000947810139540779478897352556743229055912652163936883086566864578650327563766378710620914044361127272457940833658368130626778400465365416297104084231607641214046200813578021456075340093355482243234745644902431277597953620314322783004254029158806299958858109944619386454098121319434831806524774063634667914465447328788333546457268016129965575893370030356779978617184918452450243133402250488779470834044392406133808214927406987823612202717577195035576995977917859665779545614773554369878431449954935347050362060965583153051374127856092471671637012311640828417827631373440227009241517604765783052002776411342644403342958912526230138962505188203204567529096552037807686341473056338722660959638558004701922244457225150718338666804185307824603424732378274116070923665406181332281689757570504893205158331562508124911995106791284285804547105841305403938643308198272107704209807614600086266602375661525344363126022859667602972512642149457932647444678632581515461696122326658754232750470891822398832074499226134706714406399818089789120341803932886914971646458519768934193228181435425956339902668798103146273061375326577135851233614083089191582414977974647569614287122596007244787736977705305587848507028455500095100936425755007198656815384929727980248035399797158006583111752049081054207416942271746175329142069752618851877449933365149608395515216479834585529343777158439133510388066883458562750514384449803870204310955120539777670044696529802772619182555258507622967691462086913802466840839469601057373990444196322646907157052686083531568740761551391235089035450882078988346093955766908754735426905959661019301552634388118499827790047905550028596000131856931570054033749344062772323628968492436455236687583463338968272799558921820375963494981031606662037029215139081321987678352577185699187384605649128383840282029738849787995522032114812062249297322683855876022316684566697376803025852664094408730788349415931634706209624497093440163213305692838607570687955598437021862403907840859368150482884063167844466116956147124605413613555041722851006621923584069177450391121516946870635053932856620259961607104850520551575341926466690310705362304177662939476688212002745569721800808211902094161516787286518553648511661432269532891121582381568559377853553089041381550300940498311577417181561032901672415056726939355299524937953435071420832203693946522994344412167175889489955851336956211149978401710624955444145002949019215105356481328412670200271755637245669400026204062128343926333315476157610143091801569776359486422814333120703251467692278914628759296208711464426781932035233376003351162006582614236065165973705193689708904445997338312824116181515192342092915295706673593720941990293743232347863172221551690665300623629860493614863109494794279150276250352626586479439095410573049377934563726781743440472755657927322365970617191509319669929257294403338953598029860696465015565177867355035424172337221199572501218539982837445974147336266575468254223795745668694051586866172379952116979280535305380626645031385432650351025594568040105164883263059582652979345690716318411076134856433723557648025645877812561339130074820657130483988354445400102967136382711653517085900018456116421217681067832458850008442991042781217905070788583193689857391279857124812548794510010745140151711961961141242941070283136218523087022286525016384587802920599373048782662022025683092118783502122308540132930634836448416493469481190756860658675051683261975849752664908147267071348721775666120811183410746734429496800761806562035886692031387297761027881303092387757677044345058683826488295548316448469546626069747736352282477576038185491629836259717466123352922233541257648312725244831246073749823305589481188587220717944952753291866863951412013935584829573179254071121134237183801266269588244171201548457510849402022617731314538657832761937686293203014858615344983335474189510819945690782993137444605321248120328902873177860267055951481170789251584368269699915595702773587626545041856131770443875377168738088909534236186556283037204479819970932067869874772643210263755264214367584761213212879881155646361535848380390453964426150217678720344278494352326908249044651755322826446104050037189319417941994017026647542172510361074856290897293066307523353037746890023944130095678641582284234569109551712861865566335692697839970861708528164045132772954616492622985948230471120994822632111278382818192801050945493025063047970952148035614763602175582659634229706699782306492502740457502412145552945181588067499258620076871521395262450486145786843773533876158286077531849028349074625769112763035065037374413310650142843955188110605993912160583458353763685256734624732220961360222645968808779921432952182043291964372512065905622869273630991878692138578782777148480900107763204415506535318267687643190810890055754135761914207908026274097710940589207523701021556325066935788835445506296647312819339052728553363905703010860019076232799571893588178881518154917881251764154229605310813740237083655872325957946691488796749353932777721788610670494207390377032313693978308881723993407918947413947867947000753605289615282490324829136820443967917646887745786789465421198409664409155251002880197322530078094361818797017042554162925226504149685040482980238247904478884611415184667973523581120489348612723843066057609246675507391046994569228430896114445942563586862445810704965975695018715501099628463176196997729672511190076023057480110812651983102268522853196026879080435447540953785906754984045179223367341221379233868430998999324737738990011232836351519791438985191470415915818124449588066599591258653057595648219887059063666916370960390830804223597858964706560147297050061779704858276598515796443951063445890596173885033885592733491823158253035811879888243975017782897464983931617092100708556836375484875183964852760599992618768067102401187248762562920924611582937063341346119582419749976049278516501437666591056721832546576682821122139722998305521059465525688930781155927969794846268788668234221011019950950087549672494083306085277912282501380365653811879017214487431224581402230708235769940963551068894285314135264344345274701530355504068575033465708858113723411329741927672880544461646025292105467164988360514495267084614494087264994402485266332034910480166167890895965696460602777600348506372207788433055698301452928401383284460567566726166352338895337266090204552255325837245633882948440861121417143186453711645372003118338173988528578110038322899317048925510190359089469866226751887919558637609045645359655205161517522326117670822395471705389226353626349804460445974907661266270980641545695374944618664451610413220254572147116600420393164929368308864771772251362791780897206802327161698220565699307948391678999557364103833785295585911908001023562921796412781072669770422605124787914692812681133739158165971067605655025149262933270612884487797772325730675748727694668254028409515567206785537389097152406240714460654056371928536449844387644762546899488263287058704331093044530491416087007100838497015543364195112869731636271532149210521912112169383182632125354469178693811998351586689443250690363240070335593804594410910585115660374657309692199227446688778063639799707533173970073077454196631777385960488835660748229035618440884899145438611674614830965656462008461781055464527143015720994273723071490493000239477704409711770431584695979029897380441790663610819071248808728749222777504184799330739493536617946962825022844907456320492346545372408842147779980242036636877268108445982425383135811935464944582652076605696794134074376354210898661399524320548979643917695744629945942905481400698839343764227916357886935016483201483699179938255012847262422210096594119749655805818071249243778411779452939644503108334071097743337280510097918354970793803405132926887533423459039916300506350068531646246345289150280409665858344390654050915383418596582288657441269152272453843427003316266534507819116358240115144846013761291116856657002299541862231496751943525472711419960217960907393331420406991876578596647620452520422930787916228329168607824444097058286169929969583766585033563161050770359559448938528988910003737684864800880610530000437780800955208186813032265294277831461004529213534490650924120568903445991214967628188905021759532076264356071343583899955243056064834392334858515938346559866384247810628165354731849042648871560752225613413296755450627422023105829311814204930427216983916846775234986579973173475639384899785535725798319982559237366944808366604740296386242260867044367526662183304077657105862722721690024823442097315142846494660887175130065294444888713151039329524187388067239946826257960830859095547912523183116388766676003782764006220296110035030686559232715335565026464487061171728570075639814970451940019382280368460477371547106135455952348667003146922636405265163576498772445101362960220510542615359416017691884877613119216486545700796424403563508709219882399832439072501695683289036762593908417254069529598949821555081689621625089736262120990513132775643421299544750326406348371311657597889432581566744247724940799430892107162296759067627089230383991970133051693677064693677885068302308955036390212073166202584150163518562048847641732498527808055544323934038917894325397030369182142885888578684766765472712382658974951557468862926727235330696600692814257820643761958252712970941238945273038980856379647091614423315027273882165366217559019766666503661736078041849783343792994642787796066749431518498950422576495667252807997112465685192951738123467364453540284258256429450154647430355864480784706045228643745537669241628796478673875817912339417772857825743977218253919070462038520293743979089379416843128826617825929042786085292404404709959891059054465578716882974236212836108888223766066678290676913763739906581175989434465603692567450886204323787487652806316881728783868857338277172158299027686262339702685202426475952889054464180320358026060410106159221223600691375817739509356391019561044871628280854383164864099983589577444056901257864017349044667532132408361440310177995858609287342315528835137327756446146640410802935148050507777325664662514495282045898117034058857572450909302274462096592182788160351830002850499015491718258325509570988097591141781949976203124998390159192773240688441259951888060839278897536524680933115465632918879219636858144260296047121446639286072084629300425688372776831262678743324628888942609565762950259764276720730697555436424256900329627019840821693464268815290102943980204989080715508224975703220612058841298969096247033848022428416819221197796957274261199855225940361565524798221423168806024387995637018162317748860507062081614660681449677311792793465631168793688584955583543739489307085359703876507524384437471415282577229394354474227993031414104863946373919438852210615031193937693256438006394416902585220301224897411650748819704332370832717624549075199384841104183180378991003148963728780676508250933977571322830762098625295011168790388901132364833529844040576979714193723275739240013745846083134898750691563676404123718723713317927756675349277814469128030311453538084322001204424684776798616462468423933819877099807681023116369400196278236689802393721099011794770694267205226718112471590419690526911764079415955167637348020877565080342782017982901349530435007895157306228767139595495338607807853979675265605740321354482821816808504256036035517102222640289688163305285277565226455641016870035786430447196094984239087143182626880955935687041168623516907692973978101478831069440580654167982086845278378096969651582482958357356595691195671996805886267314952398543191618521502513715128510567890990089827247602324651782402873168038507234762055490015777932537783079904082284311158436308828999252385479462767053606455065202168570091056063553929040450014585003659129657678880837424545787160939594963516232249399220688642519428065807523940084109790114214262438584969947824916389044974930422094993056135450881342743843849574866660500671717448530689239346624370789809905550614023954203931568975436205257232479236655548850467062807430908273145811628122591588924313889647518314170563377691366178634409873936910265972467833069684541487500517927391421111496762959505560938370958245737459610179739197708401609071122043519269938375352055273435485725257854890870494403967925210572796733105439878979872891777059133914600709789193088052773237350990528435370081691894511106413064023450480494119191005375762907463371472389430159234731692225897842329279309194320524274450868632537320401295836609598318047167868969119241644811484756365488032755059920359727007632371827865153431249735529989871307358646479077124786510747084885109956061279984120309611979837431375072509437155319324271200142083550116948051854720073814285496255806714622828304964384392680676897412051850311697445229536166319085856376774502441736374653933933379614171278961022960002116100070398354742442442100252950585384445950276085980814043070350584828357630563938694964008609610485007917934014368973932530212602254574165719125024235723845681801677052670053236037091351348697393250353553513291563998427567807996413627154923067887820402170697401411452975698384557273385093887063421555868711693647298368787709791412547917905313602806243207184299822834370167160741528097178697732851035606824884153497270221946358561741637446227967285377093886886766797083804644544892288255945312959606954312040935404020933564368128434359193851728857768291912992745751207492783350088358980249471829208686011920213455166465474276528117603719245460287153912715869458475387096260073949495963512754267482911676906031003767600759802627728821653336630393996610374552606313647526340512387922523885232483890530127747787360844620572984752745283882135385536320294750136087731911599031489496005336111014308952136245474434265040782204339327353067019668114089159993274544508786502474959986552047527521900677830280510308062344552528787525014081471862858046749614174073906065573111825552330518254889749934014437342203759936223092173885192524661911645696070667726386043537462369749433777582505854415699559621558690056324306793125258753475617109657892662220982460520765141798714791708330841937072877535003362243371712764862346601935570834432819704004450465240261946486764114805928316594188884536358749092414048978803753595738180410173093472890794948279041825340440715610856793006393897956627613833876769231865278570517465384168382621223998630264636113494762715545731064503302051514462274049718122464184813809543534897145771855648739355174830907215635565371914832777177449307049633367707276481944282950896523668660751354400258684729879754091575250111163398367662896117558668102681371805728147635146687854024307848641263735936818490420435616597165347519102626521357080005967796413676122307160952500810308185603628196440060389698404997467334604191809850638430460322209534235947818252215704799991772237712128581490911716655364267739308742362465772699165683252339393803815693838229457259198137049999179797454893117775192731653303304244715300548711336329708647848756069197277014896954578297171151587255503839989211908118284827685987279991240693757070896806340718923454927589550526557491178700040791257845644460538310048327605941376735269414330302395942475739075493670468263620197797356652355000478008888597443269620609200817734963762518413335323081766787322883083453929396626211704516424399277460374877597952905424721631479872340525613479750956339456282692414679989688247246262790813036800106127508348755914117258455639503678994988999233181019535225103009475892093852950468225210968490202279018891250631531088661685424775459102680098223618947771780983965172858182775437490070366586979858585327838740293305312067707486558233302091065804532729237391557021851880012835802404025568722821945155177856704803871844388465589045020181578448784467968503172956135571276190750645271563564640736918309169823882564866944295526966754717067683666189909761238960464101426905235350126595718064581441872515682614101686851151987787054009379857359791569997711160069722711416599493436797046279400361820569383041880384660232304481567549511495438483721614120976192994301778133744252200568654443332824561385491876526174246919434878197233412712456111491043073084715760240077517881192374284951578029089715888528505557874445596245338722044920783649913178885883628907029047093907601827656862280769438888700042935072159433828245985201276197283103551206526322816388613130857970430382569330289658673736751389315151299629582104337782123886522770443950718098158442909106241399194312064598077403228517814097938067579487690591571762047848695727978070691049821727983676118006700341267489216901200938834358114927703254604481976684967912446112325169217902533305042041067975678371607848116994682963706234726833292029105508962270986039607748760309827558829684776162417061970070979213807339798978446466876316865606798568628598225911284050805612895023213717565243027358217399772332099670266381955113254874205199080895222698853450287771207989594783324434816734876722534090225728339485803412731327292574717080416387456711635878584106376115439019288186716936491061476253320881156830615735959360894659297444595290140679050355618994628100732597651721125223880213028642049792334843481218109319948316600783015252711406652793452498676610460786333762777411617677489769952071030988739706305003747910964932579347846423506666901634818567708212379921730444592733261266320486389907710697791854480656115313195845718163832021365365839747459716882464604160846902443649603453859053060626393998855854252690280869904712463429408379759193995995799726456669364152715096875871213133923537368403531819767179835196694821541459207163959553387498371910795860154155217887477026052630838117431540335355063127917518567645878497512107219974704949345409598099320003420249756148240776551572865012961010556778260361606393128949615819853253208307663750392338056403126358216882783086228500956494127822639943940878751850363882874814610931913795440937010380961746666751429447524292012150424561328250253378541931866682609490610287154957529873526700887991757214141983255714207619254324564132491524661174007579922073192644564068713617886076206316794502242134820933677521866709725128274334558349021109151858162431575125405383264846824488372435885604341897703736827563342165679283774504848683046309100429674211389941241622053425804860324080863637085736817386074765517048625745469331186159602165863643636692645301737479494843637383139830355986386693515536165078612655737404721656470601472504141856663441385839242388040625546257148396240866073413814429426626341088767557961937706294117814592295371480696100732404356378629939452517456829649014959157334134094866886262595873707585454474046292434352312700578879850145329040310943665516915395197012748510136728162835522447272081657992134625508099119998987299338607539908296509387727042458394365463876838587071515044672090240764425494945805321755701399319516348996285881790027434232333905283420908526073048803019267560696367056701038844721929422274754065963893123225993481006465162361657084443651231913432880981721423997168011214820051439541144087124651922958205593113616675021182969112048715092619820504486876599159240357333073670009611239390446345396902314310215935375763868836287832270153795947851789156317603875290490359585248569499213559097030867893022117227258679258768142392950718319614502163934700366078332383078784352336046945475862041028069103405919556360393970089935492951153896998020171838284552761372476573515622495919804966066171322887350058146471956629834074908560136125912364134387192321222981190774593388170403794607573399254888973074276723465018307137463838756781787948881713536211967818328742031160688570269757674302150729709655832976847114493423865086445202429348464774345360070248680250803491653976239512713876216726335559437397346434147836964556217837950654931792121525655290349634516944787059028405789073236393334094086311375185700119170833611926319127321464566724476764236509928681679350907140479752205734661493875368092734794660136448478232353469253359480585437073325022024796110024213401828194371997742868366809572606054487348220393556331359531316462286572083745762936198013212445536297815189481789642251131621648866970136186815579994216761350693160050695663825289877217419586536137708675840192758540183341753520345143357484738012641125516085232546479024593496902748970904710684618146762666641188382284462962004801651401793103872924862909668733281434938030865033285427863718432869632788839237978714816403713181743645689265710273184178677553920053039371865679508283779730648964409515679053501401887085772645725095593041937203128941019991353698233269947496021815387964937981437699520988463037141065911990923300476862121244330158114886622167211742371458184270089969272286450522903429253722777343452338716864692641627488016121235426117922462694318707934374777002322601584615908679209995623470917515248358399163759469434127485199944489140553757197559390062835762647036359857775814450221593898471889204690726625400149579980790308616305852223724678259232469000522850275751464976159809736646716762836648772053277597193995787298472293366989151604383326171793252241336839603339646455334694359599717100814591996485725944789504823876267710351135719270616485445109068129568457082469596148994581265277656494876780567593665803018820593603608316634132389613576319323028028658349230193716332889544710134527472152416269315045931632937364594682170447128250944684646643769424271869011237332439435260683394735064430818740169163473184486964661264117722178192252012367767459316722554092501539489754324472287978835698143691653278819124989650633398199157673443408954294508892512948036816844151351564716933146340503542516037269739150609032453590395412636137036516570300368798792735012429456037589167317543433547698287844506827766077103299595152918749039382047931298213301686150188227385620934319012157454562297412185172662966754814607417062161131193016358748238420429319224458609396472403147909517270482445412477280664449090246492776754194947849450336137413398704281944460879403728549871844402515751177178646731305621456982135649865764598463693295219113139765853692909247806926743604502730978813187387324559204162170845392082594449557181055344141633756215444346576611160212899368032860021566854114004626850742605306899073824436370719811683100402732997787691471567798026831448967501467504599299953596660678757696893480281031261835590860684448125317475356117882476509156883530945576908250337741392065505900590901332549986763674156812528710311973347608079588167233770432563944811670570154114672841807970118917621819778290351167256861648395995225307601220027477381622515325370968412658606140046712751816361334591596173850030579622579112338793447924560583648033251241690272916720495531477066787737692408477318088380219919239635621077647033990765995650840114258300645552750071219623455743380399867107059605742795741545887131657655818207491273191357944005521030760990807840840816602794787575671327036823923795377532247691265741051409860854537937100456044613823362462128189738576408818756220866957088774301345893754716282481703644369760810539850041419799256716909780381242061566685118051367212648674690674496361707677878843159122511829481223820393870954856828633008535247693759934721598828397125076381200923079762237587218941090337728288126447288331552308797849920059980569042411641469416885760839100175570937738698877128959484409127553299504115938955985367018130015027002794068538916300352169051056618923072069399551194192991834131607278400684586129520505910821368586437617669457531213796604729964104983710688470667354617847008492965513605543759391556283999276694280968932892091056840576352036621471070277266707989809395726243470766921365901542644756762054438332465827635210263621503333096419658580813708617166747591620144389331464836615835067737216800077064621262679119677067434836166377842502098551036190725691072340219068518742383249998561362547237830990999713677907427017439716693316292395766682585874789313034398584277210034152022508809190198045499101102728335214810196641363192431274727332670522734391091155251993059047579087397641177044341121495671504914999260622273260998890142764868843377639287517394479746654498770076164564061895490192733494390614127781824283330111147136783035287292365608312095809879245894353381849130510172716983445776029875717794934551104327160886863301140390835658064257666528956874144613592595595372152366844360845691232535732380698418586955870476474366430930975410689163233211696692894718618212784959015680341090265607318885721059685185053273347147595143075257983635138257482411021537623125021918538431981893296074773127947359672507587873896048176237521940365207353589592201535345843248052861074702763810568439915410060519298320927615084612544214470529833030520722510961068641060594987050145636661311457329805320712034685980239348472370950575417694227506699076832119960322630021419664702245758106086094164768095395655449260214082912043447259263296623402746498403686529185615731002491218725869804324637918393193758128814920205972667537651609177936240188134091681131093945551642035306961593677325319029697898490922044476855828867862470572881139482455991494576348712091000908197403564334934914489897147283819785316508381428790086320919737955371300037868318004091876696959506022207334302800343493134442776323805786299859980004005833878580816553476825176232963981183305346741798276968796947584718562410689946615991204230044148480312254356492013137675332231504201704262359636480505541639773755192107005121101596051605240573392520226409602345081006302674042062051450726802593859580966937712735304996135260923663646694236653022852313406046041088176854982259958527358720777649846097638389553114863385250711009868678248106816347240380058218632850796638423296950204419740507833036507441728566942860129814297432774371102159804869247273039438099272707677486747126456151908103850285469034885084408475265903000248150663189783417410953240200444944952282558366564409390916361932099238267754605938616159500333468888960118171909882051560146485967219374819637878140558453040272018503565876121736383382003998474368623762024461050342228233697626094349211867983338949512811171611139076528996242821357106964015218201991623361998577129136322694690144250463507749287775985892684865200597324005662441480934223883208419415258902034226870896618809720424461132286496791554721463127617772303927819115908219748838172660930626651395149835990764592874306606340987791870810087991553411186580059617155423537278945852258898311564794234730830752077285738953232769541335282722634030494242948066161131745171280238999158490489566278524172950957133296151736525623195601544001541532342884120542113603451539872713903357602660349186872931012607526965894058565345380879640776889074155808753416942082311076109169205496308797977012898640808782744924713094322476243795270191117485544776570114182715320258990269266534892884554966007620520873015085221437734811747917095791998789652053164715942586072630208236025726468861553116735117640115504345536770266940728789014072970574852007791488192933518976257829168782498200528326352454469077102984274575444792621514404483146881875612894480363628065986704399084857500705075291412678596192809520398783705860700790051509975673419540014837261472792588618086285979386428649863996811726987031981718554338808444251816259582838330765478129519169255430198003156296072596545545566769001903030321640644827093000646338832998395829633351157361486356362811528444465723390097943397885798427759157310007819035589194410043606640974512187034202867966986430072524568924241049721651026593223631793514028460273774201789733343289526092577020718050416346279651916958777666102189076907428946769110370525511223854558554974536352293241390968127095729377305551875512657011356025422645079172820029413981214496958890017617698887717322631071701036331823107617271223199487362649206897093311408157860723177603437290902073032811287858185812240593444136941736968561794925118617027841570701859779009731759747379533629462941654470706112868227942584692166831907862351594140641272195176870422709483016514090465807078343087813192174469286712100986670584464319477572523801547715584173840136241087892245239648355561251309595233677162516774440619080722284698448348134893876749210919660982630786645368318682700125569777340060141368426420149452130032566553339364438112779353178013559733758039262084098122939244818141018810773339636153449302689719481485073804977149010668285278539930306473056491766803893912142955084307031288824666885187289526734925095568183804470418847720562081567380759329900789279493006171008887626461368701855537966158811762760478404151855687572152811367375941120461817631150273415884301798822616206769298907901838747445994084024150408621241040749828562702424316035484317219329872829441876035390061724056584026098450140723931098745970128904122763662105968267536546299712780684040593136922473613980501188897542205544353378942815804509464163612796172606159352884790637736576353466648598902369671830299192179322069331475394082078627569402434375373079652438972615531799484079562956919377627315297739082304983397877268552282852085009095495153014788238819214185450022679437971025355275414568694513213711738301282124629713816647888231797586177770128210383266340231762985977022556980738020318726302239173558863704304344132829015498827874387832779132671613019781269676673069073701772267635647952550401169225407732850574385479719199671107477423810895565711313967094030374453929847604177417389178934771134174595620260636745034298457951995046603821015214843996033720207357178343534296217410491593614631884176975729442673975317689616506559358405122076358789512749756103717204519577929731032417974650391656518443893815131948332633385355427159554245218457110190515505691012841141168710573956281306466440237640884833155890894132072315338056078357241315791163474324144601786249136480545687661878210320510159354380613033004305828528625440237556521496149750225798544245010937801418537027048797905859322230518559987950110273130045052028032602719234813330033138686230612842072288168085458094745495576190644015267709249542705642029108073104099856271846901194140038893836278978732241196670637198805456651923365716698576640241375169904212318164782443169590184541263415171086276313969628598882065238591662148580204940654489901531365665345729267194233653685098011749375571750742641668758120141590795683394841079027899804010995926072968143048515353456371553129554694470880621194186285211514422416826921698535850840744268801079355995866697953797508512236176049321694044573234740520782431696261982604857264113787200940983895790256960915471609462367577379054732563173097369144721882620333167097344512742749138226601217914713107327251927602989930249512300389792801264954161574750150401381784729547658707660065489808984227906776905477317271570383231659767270407736680351817409655938904177737672165050633226937443588336895688225074400351947844313794459345269974463622340214975516865433749856043649010500062854900573668900815405328047623318065312491036340627006947145661095397038806871931308616168425903126280733915605605418151530905553514127243278928854796570545832679581756430216265236884237538182342739923518264763395857739580202022356933356540925120347296963830905882833736581564384863580537248877567862933754135775442547688029316588500901101236062562349935273408503452219931662252138939962086894907295993037998566429501087547187487430337868636060726627439799417350292054450134253543093510588543032964962895390872273832627269826227020304399123444587197329097906726079230906128911764565235904678501345696292244781616928447984877568277872339386446249159941747727650418518325493987423073215845495061928375558838489993763002309413290601876326408921687769864260816615038534360400276856850026170225573857257413767956667009128487331149688999919862263876697659473636453914410603281698209981614883596457631502109392583597246008374261079383205772554195257475944055303869603341516027308985230664675068009493503266645315822848412868195609426249199120950938986340058023602505960523615638299252128768246320143886099978760661060268878874611662085259956035724068044599997952661648243887466716506803122868440135537817463042539620326147993277079476614813031210631946354196095132998359949330102162031230092860561841734257460872569971393133249179492055390624780614863768202642876590125509964459017680628270421438582451273819311347715062790358565019639724538170609293305262323134303420357618384136147790624599548781491707246472462169545834884396378398604604818288545037104870590173067743839338057954295594730471338314600617026071698672993565150990440316319072006625333494685323800624337629185612448433503081480548957093030973902060046055952622164738467965269694720388126006861947080866437279161803839141807372847168553554660656568990512468096467774181613359020963962714915038419710201721030208408129131755324261060433873076842355166909615437497835501416136583717612541267282963366217106397329199120040701716471611018654114972740541464044282579699210145776466344693949236287662012110693521888887335787825618445329960300466964360218696896603794680803481912803703981815847254661558658814272776807993829727504906725615988824170685765883609513360446986921959531085768355670529962109670617904653575802348275905803435591220594743125784233801196329810520519023631420899847666444087644262365593242575678140918091701946980560253956759341626805458289610295060929023811406944570077074966913586989664602084219665919653014788180371953777044776551577833763592698863600777837032210778787920471218687476175972058962514656156683025658576732449377762570574697470272722463091316832882430050638928072871375755406764397423581417708192230761151475744165450140591637931911386434098990366166932236747033812914518644419984722280266519862570975745578020273038927661722382509504514839110743660791130622359799683868835732638979618421991522856841455552240958490987738705733744013054995654631225486299275348267941779098071193614889947160557743782039678349251165352144991399178002665758346475466938272881597704338867330251883340862509418672154126868655244284384740735232624172684293914862766257514222212654297044488928333390459249983060920307323515109994822580524997089478428760068894858826988024543444678981788771694824112205628102727788131767251156743858167041015393945155048529199810968164256215910672993674086215182529997670789625281252040270896345752073530434168794077478415170243171709558520458167706535069209248292202868045402604500217069224920963204192101816961490127125442097610028430497031503331412816884127644910324219196246706350843597531410960787248725231677237440809485864829207945007422339456163144137131102537893500757102069539584793612989476316587443873172196152883775841920695370063864474409170483796196345197571406617693760068403467888692899923933203914062578383540327570268515319524571843256520599353593884451480399262304577433372035371232525801033236500917673302236181777359553007942320872029548047813314776700162053449741595685410985326726125167180272678115435442679871485447283003350474701483424533472868282661486365021529053554993552929179725566000467866706135139891621650268967937342864799048448790364371115155541092201261753331898216261460603494852458137460261577310300391830960621853975537639047653361544065269906190562306551177662025374750290304313830494944532115945911654240197725543123543453780107602517198748643348596811067454734049161980452648733265716439732582423451892418784296756235738828805844795798644408625292559383863952171014132267436450075393524454610902531014315105383240821171310439427335591880731323581919302515827319989764094531836708978639517347535370975594928738672226439915415482885113425944450866883821324538570522405277014802900257921500502471511469515766236827348036945759162500367871177341800782158947606818322653348879378432114481848094201783681234801865820718341631129726237537788068756058244999048839453445084184435075697322099861923128017964824969018195071457441132668871279682756589427358098210603434967950933370082630449947755812113652188386661001401708041732841710785675222238812669458818382177418496228886272802711824784087487259444334320238696990219348056604578562002406279776760407419615365779524122588378108423422784212981288214877568835141075145009995600614909102143576752073356100818734485826376941729777653075341427032613498909575456218299777275734617874101736942931916180642894030407473012126620462370841800366383948015625272873631408094305132023616879099124848407014214606067707660621112420567600638624527918408303324650745558805068982184463788826177066459240814155228814452373999943552653849916532297432582518806894223234578864240230501091315977421024651420850219012878669619768615487090532550309574853352661180051109383090417615911114219669834815511499083663792978597639987839993349306799677251079550581322868858375284009949292718021273823040565327586485983036541358488645954244072571174674169530344616563362611490765790809501661638977337279348017018482948991883917147178538612255557828840674276772925763138658843934455062874403335973236743673180015699521467757775635157769090969199026637236720279900754827122603847723643822810571875243474388449643888538282552407208574228464146714097354826391155224822545874460049285374817292744814795976397891068199911346921784988436557737999544591673529018535934736151745063799105648579068135186491118931458158435408460789312546221248527039256379201951840983808983560778946279974077306841895962372564659681840603555230235228001158597681552061275128734703135133659770131825433628222307359318814755127740615846716708551671085210384356205927867253999018487913947792042924165956345922810312338392155791360364550427556274307646283341358081190033922138700969718795959897737313905353545132186717308836245802849060795977028389933748548833150063007298774881247474003559500618311292170122852458357661136184182304667106962379143108027826306169790276935798481965976103170173283201547037276554964463340781145042010426345367713626381653310571224618620474829821517152180170538338555661247569542324556232286218814581776811501468035172867559485899455514130201092093983949624500372055485320764485556237347886156304424372746720685671393705522760552223801655836949603175221740984687539099038604958101946703268260150576075477349540710629221014295327500289711516661497683341597862291551303511211391720274752712557499496037860418115127097410171684406945081125313044875574978875328860134426973092448583237850409860925568975420809235925883829280268406543917120056074803114492934462722234044572195786271309220029399403309937827059328446043688178487764681795284736566216834691485661626025445697648197005954132012806388766306155575990354073301567047405713532936013662146805564512454762756709327584995262953219064940465290150319205735138659252452328826302512128731612907078980503703823010995921412674477260512311383347161864245385289506494359342036411786838185277541947147611795213344483419129270326570844792419298446339174097543027558927045149301214280999757595783219185449304760854464841396251231893549607356485141813144891276098435722309484740454180832407608627401906441602033984247100158629774098813196874235568267035117951719024750072224977103699835881869529728284943528151015106885055409774399502299640077329935876670641494968075564610456107611961790680780703564796422982856004812095662102151230287987673702532642246683223915586262971378437591548927456704948287368077271157676613598231301823498530072789337253591385426027960002137988969806483974327381112422019460464606831507691603640048169747614369687618600027847254819733466969858569589626249560109821321299832022353989454285917727403408774566861049775849158580397798023335974208949023000258326258276259521990630068603371008388848340692465547326512577435665290485919639123729954165617624847600272098177561240936009141567650352827207775172658702740374891272441415844689521012583769131314874263783459061979302388613381572113561327804606937580579902697858267772306291834213365786688343742129455314360720278187451879697410910157915130555413740056674916782907412360947469668355354254626932577732881248465288497390306088451160580853823544969629151599092484253663899646414862119655377843503371226714288396468509515560642446607216753269421640894190095124011268524900183483240023356353095305548624933971839419028084511315487242807485944111312451861019117924906422608493533997562346606850982996215678589789172257532073934863121487810597109129577754960144453817709490496688203258085577310721343747692997397891777177934113431548258679243196625598133041631056704222353570474800389360255773082643227759162892049123328787122237611984132242923082590836490718846501789264900035758138784038338500703393171173583417943321034160840965120077095519323600487780235297254470181316148594452067818814468900340931849551530828723037122982493687015430706324414703304540422838858431007614508708907687229834913371734231594618032823968908456872753182399690860100275529874902646963505898325418664472757114305860606464015764176960270600895935613765095430453975711586870696617911073747207499076137517980334351722373334021566348818766223657788067645374789812203906355307462744644093056728804816996981179202860262586770520435786451305917439034478910061540226262764307237631266346445183488928574650304712441075084726692671908998136582619463011416206505525985002953796387974351963925440189177116609823369412675520850760372784066907779486019640236454236237370811112663902509444127255150554339390753285774846282585239776713868239868520014374088425839141339484089648790948779175380239184504649091143478096087213335138546163877783463875471342897012231818638720670714931565482272139079557414624169467945167398870652651232093044211982161685547318525942981577136799983458675540623027653437789745419761750198420298007607879765603539457864001249257238067796091723103372411192832441545586381694964872758877081542396175700767640390646397904811335660950859200170121263817802070008012945118161208048085186320724945726482253100374055741498564132147058381651962326746030717407444099101908456393279873839142349213590665825067179347825784681897945519156748001598633704503150632357522652034070792736912411163737916039054374038555946648911802921950367548713141712850144675070565626902445782506979888455606770691043964551816914369399330366873395685232561612007392704359794774093425700541982157334636113507526067343570444996435456282710806744899176836055113111144923121829016053094218228098296164031127744803976758212840126425599552027782620658281711493784121992731093313843677768978635458069059232126321793574950210911703659161831677119218231495967071380238514585826951505522791906800911699147844573044957026933553791690661502897445114552194666460535741956328923391763196839331312090088951678570267571744466156636177030046702899653548233169664605165730387968047373804668824350466527803940384468534329493879109215901810716004394719333947387497286484796477630517392804424818735333527425833802163282889957384137785614291866515190598200661361043653923633809444612314082675547543638296856530277049584051569847409735808714110447643634356829374038633041835608538441177753970110060753424853691642818634439420321420990488759885008139232486150567276966936354599171743206508661886352926267994083507426691590938506608094501364435588987882880018287310751881129017383849107698036849936197009735227695634387978298120756285501276219416437880627802440455748628378684105938982870370076827281170546792366025854959224277015430233987874204076515808876003343299377930300079243520558937462134841305080252653341036612369305084510755782355554885634671341878397259893420590260950679809613613830794860132387484103616171023409829758063391351862170087663435205335896235208128602707939964446226082165140374826099345728132055167088364158286613095426673821332093759391960171178194506992893105235711423717398830408613794907643412972675497564541509788727250985050779868959253630788747939909180117603924577345645214945971630118752045966951478233462376113118299068201277656529623640254873897405678521739279200024895815052212029416727499927898684149184623367218682110108646382868846805113660914083603261026738978780436461685987255713581729061948010521112559431731877163253447090059903528886793335907518523738231274025890521332473755983231654172539972714810415115662192641064730308762137383367012811062733168477293218570988794512794596932062051964928526871684707825764310595296006315764683042399205574271914421741527579413558189763617548738546516512070245087206484876143343180757505438003339899282470798049872231515581152324044690123555689996218862251954400454973578981994069917974229351957958289710746711934378249792403737944519643939215413761934994835245092557933306064286227191601951175201748451859363248240694451199565019578307844859704667567618444590486534697769764313495731922586552320177779369289721305935348888303705814997573963639304412210900847331127085885444609198773925235475112676093547790888220038148637899368928577300418961337007197952901277590029800612558264988552051891898056842983474757456644646512411774827504003340743845556167783577700338775182273013411809160599576515694048346642424348807272712310937509400664308863742776432108963018019236942654450348578384195493878754749989860548554018084385965738925105675311747637943753507541427101401947666906882455926516304250025822569866329934987290915008095802475266823753171486432128764271247138400960806007901416870460842887253846755729594366166431791680248143761555023377397867763718163616512954095022657504934270252470383233853205376827390938086408543723984320517970049769469897282984901297563597728349892840519019109387725430192554426529553046221418925568574153941238941471876900114783853859024858164151085617578009101261110620537692819462149740497968052724783742273291594022503406014377128628100148392701327496591311038918166841434547863908593599245525087866606564724477273081200439489075950971925885435213143580742911517481642475026684481784403035770516405126426581159273284531897367788172031296883423827203144478512362545766450687532740977290747726197727745872706135801223603350326838564837246431061982593360668386891515711523956969000306592045351996024010110868058928189125792287151998164434541987840513410265561536575750467371985571281745910768253522384689906360342398197866815626527087597691255723390642123910044390086687133211139095284198751133812543664976342384892785549288053200022240768006524927650466619228790661049975819004690906004299174072308006640143188968620465776892564401945325337493121698759183976249151511527939093251425826953266083476740241368743767760044287197290991369369309337247683718240734241664757716995915585893514501819370034500075942803000724312070375274729474473099757648447365058388026755813217108092334662501253481134121269662991068224892328294301127747478414262505272784388905092915078472685699271919350323442268081855465211690726868017956951640191189813159465447607933740082257744102152031005729192210674981983464418244551525525967606658068526591453916231774996799707301809108862095760582092951520509980071679378994065906031737156188354050053491260909701460500441365088628490077133677269734620052944118708159652953191218809449379358901597513976693798109728380548630845853910859105348705019433884357262940557557013507378547124290266312768113481390296456999805414197674987845622193796747209307417284341270241125454766379673686469647240206983361183386446070772543111927363855723500526655080800574512060932892367783552837306136122607675689938260319277053809298427272082405198648751201758766484406483830624491403905497956284829695931541611712022242673828792912626773766586589531296308237410997497272002610265334963455245556284314198175891027076835943271932011851573490315729225762073829103567720626313783894330499862907666536991562480097192667643322654945940466085458126704933524591541434636882700506979376042348675649869699579732545161520121062644322988035013906015668912730021303786390023628219266701800726634840027604770887526530734918823944901811941574219415986485301445511629312073991378374085080050561124636797881474941472242972645221808103118451592948299987005222225208240309837815137727322385522173712551337131849817018741436770060510062633379388799424451946250933201146223549140561765917263979750420125699199695459039232427646241813036922492419643063795116336627424924081057705529242128546284497075055054206322189792898499245850633149950507837196449476330822467895007550726582065723230178146974410552674046957936524402595095725713570425937923743589002230760936641302328716337665484020530216094826861115113467109798384327136241952255429449595475460860553219928852973654004290968757732119414126734604676359418067224898750712261433892803223281387088509442455018850962832423550068976736554985858107155668745233422520255444895708971483078114891298417970891536041172604162828364546151409098601466642448565658777323845278640253582270184351668944886611292352245538983874853726912383795136495805772285730221723946240970784493149105428221607675565362359782581091305370482255662310171809185015587990867485919632986099226993721768013039334592321564683922645095278415858918350189891289782347156979841319993154562529181944514201713856497739761179467991911124941967601456433469584792502304924727605148009852776599387248381509237968136099155405454258915535130364599439120464066750301995199901219510613212168290874509234629126902331405438742598887612501549513632285512137518360384506822577157811690250051598893165615901926663789427054236526538769382774946851328836903684266603996623984372857287578741721807575956677653606466273730289739647024139435112735472979859224194009814639111298138681427958608403862457585298890905096175468964905903939582756797865242117414737210942728523151676086424167151509590375566567994325365770607593038824499683701428999236641038770855624232163385074703810239404547778511911265695461919512033233280708209306915607459060198776548680556558856271010186078615286229890929951115776360570253128931231385094034453545226537344947605814704617754536958751366049456601799213096817158478571928460418357355955232171181557102303045724153718463981109765306096472669494723257449550905328390897507448573636977004024055191355516755405840055854456881972111818438624624011348803454253563708917813097169423694593760565200590273070472787061795272197856708870343895253735614374997290972046986183633830070099874236470788263034719334332904131434161365639054253818509847171067361404911989306070214812461268823573277698502682169690801348992582275358273077452925183083851510756068990944890089625717230089236328642183434516059257577400121837415846670326922018715058954907277341556176973102185006941848823450096373939115417099191551728338326923473980716108360528374081330454177019723115489542790503558264753092702502291129186664412656659879327927227435040866196074569043525153808071517491842999864142313473743304951460160803775671232403228434629790659985459400750300102827702082603045204756180186041356046672977890521322630753419136260197691561815850739231119601293545421826069699910534080718815849867070890899030766674613129574211118358358892504279867133915411503237164510751508626871843511992550308982538890080441991734062789713181014792629369064983378418683655102483077733686130756254892244013695108369066280526716988712836780230500520340691965928736580695514883103884558776728229487021808135202856189732992845861396423875304679742592552681985830875536484260495203186694190612116652342191338404384304446007674819999833461920085093692508586950664157237365251113112169186823600228218621567530058938662277918003932518028439730971210314580059444457586104578019316779734745071304492394739853073191207833946714108497609108951564567025460404289549903738769094989102959831570230430781669871858446766830654527721270862682872389591258923796417956645512149237004834362242984803083781577756336107109428831517406914373974448189768530891559718604889669004150828228166198460544015341761794819488152213690650098159270258010010194494206175733353780510062982904423083549435334549537058675986255091514221856926360212390260461716942023661222032891137828867461794742843234281256240188363177142941885809940320596368038716659890725737174148860026796839575595307840992909993572100894306538980695990001130678009300343163672378912380025409582835843149927945007340362852858930005998607502486512524342551553636049578415435599237451833426616541898699285967079382247083176000345525257195276440755788589536486263343267300125734306819152858139941007473291311814122697781941683671239604925008252954511727273526649825127464819621232676971187233588347509705683685657524397380307883352529840848263802388748435673746328348073140964467284585834683232220001173359402585512048156381650573618627101379053124613683765258915600449179818204938606530009501605356274792709414145773949856875431691976879281160088148414680258976686258013658740399554307762341175625508480242829489444140967552075529713126252179658425775219777082108151655725831731763443704162146895619447842342269123018112726173357497549624934690547559158693581020059011160581013350622824358301665993063768239748837692482881562752450540993918371599578068229506367100353810889771315769909767188955971446005779434818622138405122560946167474873713010362670013780648492616665058693347418886654389581961531131833051960579169183020771203344433383575283706718319821573317622096557198690560530280434298078863109971767747499276334181419771458717872379087183704308410876218908847264888607189072911575053494479132112855016534706138950953739509456715890522942009746756172463379196497965932294611827939003808198654724443110761248646215473690540896127887990994286014349017151100352114906258486113357426695032282647772482406136485448374779173443539318145575384552967129702789706244793364318928427993032858499148981215949950674338443445838800972843620645263039339125277794285701037294379414733067041770664441082133554974210793426702415283443386684129506438506825961688076858011148351411918669305736291968728832670558639271841816360216287249878896786845347430098075697919667184499669835578337836676087073978602177331643781658696101928339177285830637199883653174603538453341397621081318781492030560163897309254263366050648962582358149136218530547951583803866503652099472605517098583564787572891474998771288431058888736841420274274444301775488722687027385769602153971237671945906353026002204657786233174281744734393738810573558334818296101949973494941630237904269755958307148757551985618582523986157154509382966544283378728811541933500504870224190924807516791079533357554198071134395793342861421280991268429594373309930953903595946835602846375284582849172104324421708951080712096566708519771100309313711883584204425827478162194794132718587139811708665318303407308715635640287918168264657736941552428283425161796229266002516177197635524197281616789836136621039478764787703603690091643587793457031992426798009093029469226660493382144009752534598656320550034979696679800019878389677205527983780317882014774096765519714671976668349840759409560294603956094935174390905147392728821317137061750697785586767614736739909173420195119485991771406247977697571977958643073067308807980195948581546108133494442219792166818715661554379396633879236848305228462341874555915859075441069608024167607812048484678251590313805985605829746148538143687653800524224977756152799359712750532614375339113228317225932362731642569262982471051825012170267111954983329363327048503702469180060656106636651717766660785828666865098816234076490576762817110522263304569188767347632111191580212120548645393928712271848224501806994069099133678488629207473042626004851242997841614123555613174552321826058685772622859412834855780282894666554367692336629376000461409053285028536433543733156890135978562188683641986967354709918521936197008491199885561446649755072813508120752325436073861868518209928611311117511558131008250558292774344422824553868514486703131204755981147118511633588026436512766722314259346785370129817308734093955896271607612587133116209075037386623326642614298948158070214371944282821581781280505754211951643658693622364587758302524197525927534135409231634646456733920401932799109679488633804378595968902482177415588101861294277517120249376329222505032311352865681604161475347866488033196967344209396677753163049269018753351738816677811639440207446839239195606832145258579938743421707243607202901356359522945935049996831554862834841007962115004337095122052878891933674814016619125614725214638759215726670707776414702386811753082350720438884980649638136274326435220513815260442797892782916600251636462836189796198042766174044586576205292675504056760565551354583827859568317352917391018654974257986519947190383916790944313298985296135561114609355150662802489790165824284813660471428238836923360395278248339360158079134142498832569850396024290036748720080306133869511555829891021747438383188558277607299562449444406508695712155048225505403784640827759684539407369009563231540395426369476304102378220229994840450582947567389753094123453920156560651316269217118562038631963574184699594580297445966067205962911469111102558612306691206731503281180126437877915133991341669397935400855689322001196874136194358699924310897529841771127992607869398224691960933399080151593498253044804809993160219324226405132882765233249409910274046266130377924245009208203766217227969831365537642277215535722559217664343556998392154575174180165729177174628802309153158322797221472268224452406621574829600735702979207315660311121429248990728315344551943984413614793236402240683918843021221224973753791023892906702242326255500773082771075263701364595641391648863580104658087516903972318133019681032515003630568789895296453854355948790321172472211460046642218612595544397247203829103378524765574484554596038150237547269396767417485959714286048627361065822672110812978742840406273690662784190047484309935155717008122738500139067006186792490275470342152626746107226102811480093903629034344824433359739937678889548374437264434281997342163088731544629466345110976096070958542616706585236714719964278216295293172723559558141769498348049988703240976121057211045934263677446101072056632753011016397048401793014492253625321605528660065251102685376457519451853832597731860741124218258477542998788574276222461263807536308874037156532387520276571169451319376565200098678692340975224008242908815628909684016514638314211294637835986931422234262249940839756825090597885772765808100969212470056292202084454561866962696665731753771278855380522309399119402420419720357087614426392926374992337130635144300887011608898159966008270973489683731658528119338542528197523623084413521577757689396964896906313656666748807664070667714458679127788129980152850949713536284066813251149179683496402278594661344822416046373821308823379720436290130655980012316900917277733763913328007127268622429797618432780123792675801119782418243650441457631716759093474424762323209276105660223052808508743580687055601143469471909848857233547019967632782250199250039565652950882938005429974183245526763114107672392481750858452336213827955876571824513102094520010235775530234608363200142086966692141300067917156602520270145705445393425679275241360296833294845811633811115993928220755633242974425419802726590533638663336858361285317815869448787298780928340743479431867317631103351643405850910104313165544167487796871888856493350135910383264421341022544112739554504764969344167480903591411597846865252009581210153201724499310153350035555353879069921739741900112656781835853607575354317059413402331074155241659270088376476814899653400792232133505753210765534067501751823895763511736416776956461390346136008731183743443174119135039723597219542556182068593236241768287562349527549137187596659147043165234789842524042478571842108086467440178688280847760118975809382120942816675284077144801048379948421846068998581404328325557548895080010022362066055247964614598641891455168454595021905882651788029017789337151679232750361222464545907648278263563518032837930938104399400227821464307967097819905379811232960545195347729078364746220636380225545094458077793083057507566578505614573912122291844674385884578410319522122347581765604959360307572778225340395861572753084318336924897022685345675087455788606106845307199344221311772939721267341331745518678677941242935868060645445441879011672669318127771342404417382173860789878280310567931909255525288043927215566523746476204899131665822196091569244344423829572999266470541384822434335789822763466298919418947313956909748100745422353546036639405059330842594559865712205436507507320148374105868534793420120542533359216471726530297609425058163129069989263884082792854733396318397739051134528772808735088073052012867706982618319659674941342309163717388231421867449709876832842505649694080592848897594579805283914056964979138814928543524075814337522709320538096042039450723409641890810598619819334508342423119615403475341678665513000041514785627884021423182098767071044709284760622462685136193563272019178372411249695475526468228639265916148416590253403550362294431677029696197873787821953161361984725249518305877767774648572765857068032284550490612961203223587628382934413543937294449374744600870877932131282376883084260770057153300627856619956178660539374251106873871854487732516964909200511179927492556614385120149719750084881899026544643313980622833101763107485184054072536876058572386095221626291354136698527334283239093424689329072255287928324106621553842408197122486517390727084079060537572003582892355376907978758340451260033718678266335327213476644054853853264340141606390108048556123590349000564184666270286302499082316505899229527903840841177837336708830971050316009537413021046799808495730743195497408572766405495520195693932986367669657436233107469520059201318902049417537641644014635978213556926627308116015736431480118482214533375764606544694208193166647688649976961379395643953087415357003748001906879688637027260821175171522159747495308341051086366171838618316273458482874943255453200668197121816755104755816169279066607792429371441526363796085452441805266733520693941176245025790352532020846164921139800550723932493241210071888257147415913632791431015518095941828396512959748556762590586165530843700961049407437784902076361787695798331542410932574642366062010449920400970471189684386616490380494159349415728165720031726855747577721334311134643801763552304533212063026829605424074540183585137166258216114530982225705037047552805760806773589821872393319096610120688758255467705505954441310037713544055759913586247641925596595097587761663552905686392253505585933406069958478335177563284473024943868922741983701390501641334284724720850376146321018562233667921706335379551810104667329287424741525850473773700762770211698515840418954377025031725703420480399317563621159768741522361731345572034517936442605430872275014039827091870234070720152740414856141374787408839181579957653442456653170129149063269338901946181453123768748392904740354801051224830601926605226155074094209915125996157238502283067966642335333630273156873234637297548247899296289064081548571897882164829338453537538752479170865202925984360484066979589307537904278320115611363873340686894122135666073043632701463786745656179851821760653841195427511546716135883115447352422282928014136952087723076855245459111504486435926328670970958801166552523359956500447579440475238504700449393247203718066399317725469121562622674482671495125453678078905298134619305402797492951745261684457820602503458891322364523142551082387651112148821850556049061449043152613318413298697561058316555989220204815043702236914576606650214386117934923272022458911090312965437620348315116311578797609101372765782666103189900773967164840186183174247167814682126897687271269848105598089077485857596171532170121046786737449127555110604452265593764026358153088706711693299361062722813231287518478398518812208365700841274736683008371107817780853687458581413175712494917447794823575850778205744297848017691623437738140777679731776542871909354859888959822096384436272553862956483038271903932633712208055767051180834744608447082999452344190285573160479797403724719537653281047776586954492449864341718448862455332605105713058593255897561880024200280473267771854250644491120714100937523311257859841518289761527128852709333633301051974335902280603338186529917596037616468343003381095325096613966410181773374339130596788477914075100455160420861561727668285224239989738758727969944488919021304924321402071809546428845678942895911560870243700013089771550024783423839596436529814293898948331910315841596279085737401537703827718607520536522544238095389145899950088389994178881159788327373431048842168721200383851036589059688115323747992067292306958505103888857903291293703829793974371895704769139249131579546946821922691880101133641031857061721639531217498023238263085904210344385373326604669459665464533351875250117171792357905948170046050690328371047697267427954417883557053457924499471061803156178505202107544637940437328246388674009090754335004262888798019242940876480309740136348842642320408988163230846236837260034715624221192533511014454515043527119255084370896181313072496479190519282691225779922537589225196755719772243863607040747916825188603194903676260468845832997655299391521397721806308018250235977352216399530024612431683611900242043560114906241919724636006770097031288258047954040700163527169994829550153677993289083672345597785506096705227483964003750588127519562832978975078453139188677679183540996783149605049381110565701867268484881617349505889914837961238636423713403354399223869752328517808215941516886666546410153917805416748404992520050774802696977780617194539671000574272106431114576550318001662055991671712849754786015068694150908998188169829142247818262469064744027447335050051490394842458551248050540258133014289724318292260654311211711270958141444978613847086787091376466501657848863057054836291420372644539380995575403915774148617796575464141413136428897289318649636729337563026688779469377285462088342757628064961048077153715127632180771449443384447154437544661314148563745078880651056552706977856964364299565633676852924997889573717666043009934465588504201575953434517644380113637592640942814064376446729243619073859101453700483584064848620258102457127045049846676517429543810525724592764712458745247884292299362807674929596448108691971550509471570512219072353384774789963578704433582514695245036882729923338168157404547436236160938370355359675152557500126648530882791905693199499714201187112504466954561878240365134381549598028386509665200694048178213960148858995867188899384009474614895118693146230018022653376564447112392081885230623619839355582263295457743442736348191240930870171198646597543737871660642101203594551694300138925399900137564433806735683276258959068831753263706030022436438786646334328684556666359605498091746388712951902821015033122399334227821334011273259678666050404790057079346075025012024908870275323377553885272763280052397584895528630587954293075071295679024492902026937978858872463902516130750045469095327525413334239829615282867527215698193674463039433541902576622162248565843498722895400742143544419506783480331603521868892073646607643481597695173257323167467631847011818916144506515832121015027184341009836400793980183058331259006785724255819837399009178970560147025786654473628288368413881916336616244155642892249944731961692209294358543009808237465621736694534856717672414750079750746487076288904942323717511970706819721902144836217846387649185787327009384382582864111944251498665634095026859679624094699540465201288054442353417717272284038654080035028509802888626201378975874340307560398089770734812228606906896080903696670384148291754747689934599554856248456811516703094073549714983425240619068779447767038088611821774285496129307474516527117968115185088157428737417445368986197485554345710832061959777583695633550429741049439065076416179316808727389537988998521153980654498797862836478615355484720802585290976812804616423345092799573742420823069398734781378715902671601021362638139055308821982108636793273263349781593768875497334028785905708462358230477268837558874328944188069766560925082551164835776602025570797536944491222309067508575078008224237368226861704564542802231420308267715847443351965237694181019385389260427576702662601763443642817502760049318825857430941786600462056722354387898602887396234920492050883696935749644064162726206245210337952805074890889445773943961357800575294609212264598114556851942381630892443819866940761290980477188766452880450189124863898555338018252630872398958257401494130341062247352366399298956590266062581155996708148886560151715447030431906707763663521276108571000515541991258910059931364302574780648570090202486150547253003253570923463835460568390250528157756410896811694873388168906627852851709766643831553744007856142802787374795343954735580722638133347892754382457547433152348236219592143750251633890122521858563898089993028780025144850863135236833433496325251753001750825650128484559731348181021409412097000773108934966893165050056753972517577844077031258555656057500385655390055916286825212724798493623484607634136305126273730833986609921174158264827451014123343491522359399414233805015711793539010704254689345158577664503395075468625260065886501237741839392029576770971682476831849000548785581120687753002955182654311394551617546314189145801001608015912944927686841456297964014015257629587761287361994149544183262866803845138774618651799845162039561164752703835236679049244158360738131172570182035798292877070777657382017713118477251177366523459517207374641204963778442872947251093431055997008856721058412452202456072024849561076492493998105009418669534615943671335328162728100551098707720667467432885923553694925524977751690181665776257607514019829689573201652440604407296909852911100781455240099255765771459386649666728381686251211728676299511901003957228573245367199416580625854981685074881479082264856047166845865128296465554416596153267920580413336707851954744477902235792202444303120004757301056572720964684196090053450519612363880326809169982995037842297921162185025934913520274544412828667190559857633311195356930471844820912037862090469456850845080934019866360968861631236451377973051859212889257221193138175412918550864227594753187774136807122914223260374991391061806420016369709794032411883808950017725517197949235748858202156211914046630881479120359415542250739886619220112836641489628230375157126762181177510515174299897501752775020924307622464416190815373673746228598031707116514260493051643376551006452769139668765807443745153261329574170350731393870466312600757579336484179561909213485987002217980050777107374161971577729726170391753285684354893219225312906386634747533195413204167529881483788819550636210256285033400378643011966369951803033955611765304530122657845372751165748860553098062333513170285426068583388949151941974390302971007226118745702663487973714575534554981396129615881956417510284961833609711215230804976711841209885151672298072210729390514091790163140640153491074863217467728569767570577647972315249892123399830811493867731946250860268508882101443859642322738610684926094844351084957546482637351351277423153716990691992275392684828704597589552913951044195048644363939963383112659665419496504932293285108218946705232433622826210071769306243389006671634734340312885879617978589715971016359867831399184779381203568422303998938409957535106394629648358921997895869340679499119548713538102754834424419395862313551470940374394295763906819970896669236012550837583970285906945655707157984648520338729713150476509654387468415761094109114703379967012008649640812659292640706966599046487211043930806296389926295271388144801489330942067382194882420095590132365498254602649530723033338537520822159475397883780285282530365776153279502809787395041971111582151203156076911340960220180014778008169835725612639925560884546987334824562722453726253515667767702320951096353523595543245439864669862161695678444831200569717137137528400856059408035692121253731066447362616247278324207312468754884287650792303608135915864507891847727946618029779642833554800009432681401271284876657109616086098940576275844896914595275998004619012216738746817501647986282890636508591278576556545437158572978676897229153659966759132649700627934580356384291644910970505015817894320030886866926352207749357068718375714212059470201594241072598925745202476032522423304004073212932479584269525082800266182824320695600805717827229227939792713890205430084749350561491358163092368970623814436487776735204381181571368666758678830831333135950787924188225015962780190011755713693214060248292637899547970142793382443973289246704591102864312412644220277986035623077034995580341951248171358790914962012001695495243820635731750841474957940534922227879854809008786761144093782667245991184995547446282361818887240292768523278991081252824306639599060424222685819960558353309897395044514914525030967876993295948939452312893031116647682540714906045318077280159302597036587721149125691958491641853684194035536008344254950885712125935176242765760610274648000673854568782476048769311133563333391494512981176266020877921414505408117863869429912132873957284147642201366563976092817912747711197210520268091422368593011717163150102873097194711128465691782413196028921506802501641699411246196551256383635551055767541236646172759394234850611522643344006107208454706437085564774971334327416666637637310698586535086850523814551149673773955839990490165840617228333920378810105241956475603681011882074482892651285627496089975378257951730935525758487903922104247324421600289806459709061821484024032484781123056581084243540097598453146995612650881952359651040419193207958813375663298335253594396605960593199366059505683406933701820163893646408728077377191732995487164708961376557070547499620565645852202861465989794058099307508023815234534278512931499319901188821609316671075569952364954778483430114668682122757230325798066598379212254480993322792626289688180144329047106794296163156359140746067393609600292170345019521439047245579636089480834123507172002187782623698782910651573933061773314670049492689055534333711111260553683184625139664938186869389898001934853094328417479207330136857090563505870162511406949812399628142601578031978804436833810976356367150152827243030960854597862634556231724866484198445216551564860145949602028812650826965829130234057198385258508008679533743158488902755335415605366090054023927290402544276405994820260435117220923253315040460570378432864696317800342388556016605719244025104986610747278562124001451055276062342823974625817561402901187014743981691939526898427033960856841922863568463909501663911400865091788846969205396650615647628867225753370298883157375048565383557478036101527065823823512012394323081301804990529292701875008516132069777618811849716395946217078624559348650194009681268401548002938957728744644449109899270123956883929051521978276071953172270054323024235756819749821792349571030818703268319960376551974000162781756013412014005535140080085628348831788852748482030854285256093964570561462278881125745046186226255148117460873251148015352509424205067102195411510656832089547698591571673939919100590065632899600781165309468384563067351959424123988040314136485113380690671486024205173923150553975624101267457920020053550334321899091271143316555306502395958408547125338507267538803805494650660996374415244128783378784373252291884340651976955405542508855618811277530194889999318418444347908146905531290893448016442837867744520270921982193123387916738492771977230312241999667275909908460958185011816380633680282608775770779137406563342105914265027043974370336799563183469460972198680406465128509008981388149113646850139245338032219762503440924136496288818304331266573170005095069471732996179327476716787186809260339500969752562287554246905768531582866420264350065405064903662938492771057584207681436085922400371524708253509387426028924693946051761888622840081019921116188522099548036239429087399029160740049426562813909995136392668667466766741575595195607877175312741087000928332422132052901680388999782993005127953696754339676839584711424291520280045750877111300746962409836956391886890706587734861645609490131564412742482846551164531960062582741852641327685339301311247612549232755728379755709532028227084925751974365644693928615742864681623642337121139973866056390272752410058768725431843285685873151817268385455672708414957160145578634277638412481929910593844991449390570480770883310281439255709355972650656336390225390858102998368353449869852994601020147005532288614120462217064080049435829865654241289997873674434748764241266167946642295945082678478476646975938516255084767791893258742636817048926935327369788432472073277318910532917009589825467935814423183205369720006985937418480744667541136709468243046967498163069542711312911698494147782290140487706717947079072631853607151479830343913684078866005375155293343478785238693955084717029568477949657099960736995634511372813460701498188348024319947370494174563025094838616226409088181030291073430898067071698074994350002153923949713807338039389582830990299049027087928828027940511247512151263774492246654270673502597468735936210715584648790403668314057876784374916519972786988630734705929742397263272194674443303348115535636397163642902981177100767317806193292905155976874748327811197539076221122728013875443306791666168885115106292501859673409467377938377380550903998262740676439831841864262917687691103621177371486633705198089502576544079698945903945913688949242729538634546925777899646403683308078789531472221895788479206361908272242272482499422059960514580249371567405652150437809848428654691214670217513041958581466231853672598218078185396649295520982262253770417995584707516024037752275105686407155824948017472698042627765735485582093298543921189192681385772102340287357790666968375432988725362531369000690982539419979295655079235072896763807070221927144774101634628181347905539030675821620453208418584517676125648329950858700770680763850058109600780692697934976547203345824484046371834398155438119223112968217263427905409923100580294412137718786748871448791052091777625644621161165507911453203069306063372010345633555891435759444177251522425531753141853067229522822940122262007660481074838432237769581348209581269003653752602662353305950760945749030978468966785581594395741235663390980342734098031987352078058167336862141906986502513368947046420016065978838919388335906290948865395837916778900588990284695682506158320974661446395510138892772690629048729104562856025515303679972356714268781633976844408528528483539554753109435298085191654297589207169985139108191348788924462456433192543811575998856276865649836866015282890305509823479687608260652574680788587124648808199271113679224855119919633614045442904784688912468252782479457091209133651526693932360532639814893472387231352137286426982040800609011262869117705158905135356431894439454078178315038740083623564842146999060323754050212163833113206981918355743884797569307528625991975586279732124022651244530637794331075373721122175981222349148792650099708577106769687360906565617940187181103592892282813381113866954113540041536242213331637383381397149945289936450568398291621655926376696767419867119170934696378742115355161053605056730426529098433697315051407347113966686790213304659856974536476286830464724548592659202097483028465625163300922414410508617292504067288642478280546856951012108567937483682384519024651992904225855141267440317786851757965193075109993803114117535699648605912725392638509662147230430715283385454703884845332688980102318605161616215377208716323562301887831250979782528547722818353859607081031739527257433055993461149831494760360816884866707276962368305822103248526060720926343239427178835772239457593121385053058109607996028083207879537243837608930802974727441542807611660926988193023125425789771359332590924643235304756773996151835994767074498229213054104323332187781949597071058568365469929006615337335204739219329646764125047183548853841508444477545690327744248849965910634876152131243138874296137931040926827341412599654681221696320427484019216068448065546627968726477046518362910384876802657022660731562240833335986213963385524913639050438391634672944958314533477206601127519715326734576719758097360636488854158237293534391984324958864252840506926833954535314113487652146196088824691792583653205516900051975643059089278702782943261241599570678432697843580010757662673464254831848375349694561502332594301673482122918848771198808791089553568763462232302743436916066612150906173030226190724693388243153619868505464415104669591547958003630597052124826364050392752620263408425030508581878533174998379172614809010782289833891370227116124781939300623375431740129749324609868881664564442994173786662687518191424260644178770628847227884642692607120382693830656906519860161976255843047106047986310148006977431503743672022374989856399033817454421694554631682547837531568325664564469492535487079697924932948287028052546416212186954550021736084776647172961225839741626078975488628614506458088820409812837137064390319669397904681013212887730554625606411849602481656506784486456773969598876930966331801964551237564913811422795870117488670385769312898051626925713987323618051136009411679519910510771546210980767675849010556062347011278432504727496211381293962338137792914536199163400174295948825533276864246242146776884775230772241957157497341779008505441791895631958006301751581534471664484487189176664514856322710267414914530480921069015875111055527764182375695107142482581891024123678987023622650125088058015590262498373570757135029140335057654087295227506537487753043209937563966340427957623708390294944069978501256246779405424607149872645112020208668340487721885652994799636688445426432989565003244497696521840630456333967715103505453720265260949495714755686857606535260797962011858683648014030231467922868729422446046500856385493316700200025735316128294754078289227360160922047239150112738006136273632863587785907317168811022503177750547756595803827457204272314258943829127360722239577637445924358386552542856785970236673847568382423183870491585372414294048880348893425518749607601940771489343242943326585043803668862287230257947979141952912814110668790953129392261633645303760306483794278071895690504862517502615540542493693639797921643209233255779283403316808513016226985485761135425280943784229309876553156014809677749012544210096732801437660103271092742065718496969270802785328547724127577998445359681319932894177976805543834180633931315857415300366512398743346514213426892169660717610443609038573956274060585832264352358975965226798685952441178703669560092615998811391686801382232931749813173104254059540571898944358135180562036294223259934410427571964755705953423624007860918529098699294297716991436071699176484296535620467747733477275803435676152372951091695190500698274552584730587689263767228286635142899098198859201104595812104307063031014695099036122328444882832075228726438128637998460165717809601123909055602137102949261231289035482557271897138337502795608708365202323220246593444848851229765591473887725461631083656719653469130100158365119089762135776392925254783287676910664171917477845617739473383381368616496107853988166057174967344613137476463000899597236240312989631025284374667378831619322427860199344665974180446722033277073788397760389299829621042002082135616872207924959944080596896092226470258818247333868436643742944946935002770350374740354886726611950281819594499146605788169493586424576902609463259759658583384115081445423128284572389627683714224910961680514061485471668711602642478144031165722590436816910307450742940566034548757105410037088816795024637448590362404942830628635673441422185261876547253689417360144048373235777588921112435220686589020578980725931907246580070982543551524848959265694250410504076606638080711846740178197542278250575787238271554020830302656726244085655277597322703370138198498531343431500475126530122792885301317713681807108717134230592880804073478172343571701068856685931735095988353008163249875824883368141082635140349870738009561632621568045719705270929813804588022492329357361478993459182201164620188157775508390598699347015244890419910255789015390394709589800841891450581890386695839609982568774953385847479889956573553832381430390935533089492829380571490328935061513968554983869067364514013827436464008119813153195868880203150821407542202254822474517429147971195402556794047098728207695604001565383488659453297823420588340238628692695785109722167129515660565559802225983749172074631823034823492752626077711271538886515602841286158800127243678930636994425831896835360281161435882475671883462100424412015446130029055372072879339335910112947582963092069242531858210247017305712165472682415638124351620525358984210589937644763442985146364475074009664280102470424646122489788373999472940372006544387370230609184121533153978544521758355019853953517935644061490354842395939656744697761687831011319973788571838147332803298902019224660775832296395417318832043024983181285530550566351962881493198643970168719379827149108041501454571322345079081399133914025269214704797313794372966011943072218897639968609140551959359354660590460593784432804441232383699390792272540415358193391849393688494738629115062901879734183482005022600907321636690955026740467992918003165007260540697396953259328112283863479717850346169136970998314302339273479437354449270211448763294411387808762466615460871250718332911573924782434112474370514531072892377749017950188739673732690918716839007547208174796231604852288890216606793275271953205231661968586140273956097844273543840030143851429693067463119504374855362255245965288350031658619044202551712624418283774283059643012120822314263231674649593945025387192500416084671169293645785509300918912069624723257299938072138871446119776079807102452308302800781972133164846700183266755267903602698448354403346106830340079531137078143554257136721671778742241499587299815125849727249694946038382129207707689464473135339843228432982744379453911255191788420895331296890005970478876022320273590932160747835910402427728762803254607260302887156868110735569526922733101158367049124968224247850592406047038724373246997965894382843585133570250753567896133797697651036402542302318913127701931289261683162272883354968880159744209116768403666643240572691612986734435575228179302475003428942068250251917288919466392781424459768719211641703668554947575528765561566896748005102629328021020392700593434843660897354704911938112675794423438404634236807590386688801618466520389720925271365221599742688311557341608286391700238133562989538163118677208034802335885926319542900527363864675213227299412962529141218294124467664966511838540683037747400901491995748770764441247913794867711293147913081988198912215373779366175631873405877591303668098994895557677353189742939456269341749873510383262093822977172814658548962657726981858120724255359083635030002251974606320728533519474987281063973502606464474906622506163286733980324340218620007457967356529637284631219903747942893305411751671017018943128838033499005496801323749995204294993570961950738818233822982579126236474447317056389900332161442681329638740705108274395861462235983690292100151077224028531114935768144859666598166006373143123620090001853673896467681715692445497720793571079032735609114743636553511138453258967767203228350389833606399273164699858652766767599316778186798498716835747907751518065746663543613676967903255307691194474300049377726088291268743620673507474794384715845475325934747876783955346537092434430105663865012696445044873672245197023712169721351643740621398302611529809880082915530695523749290177358889023275601432742344897803539341230795519370235400655865633318432202283349177860714431799761304226002327065488082237898884068294948806786209729733992998525367033251559761175538528090578137004780035653460473942504876192419362576149885107951557271383336362390289324018494771781283011443464609979432068740702413033454912702648355653885125978427780145148547980456647735827082526989222806571315031272850900113804817114745560785309113605985626348927634181508437024675155975988070825316183978221770410250255981600703359311144108325817497064338592547589831096808794952175272024224729334144923107011975355045931294259513038611828475701020499789759650065738201672305426328063791407426392892024245155997411654588418567233090845763881865986877162698626324219881313442919181448755149657936374381589904893546313286082523647579230305450245256679228490436741851245502706312108700994186753113241687719574973647743653327391049503240678101109450891410065999970192601472770012131110368131549700220502684006975617029367786119010581206764328044171141027122467208141095339963362898206785030733973382358367314525760745931695000102618336935606337268567504332111337238283502859249146647490318947484960064789852343064800870074419428581273505939832057502782719519706172358233885062175182782716377752169056991141238676087186833522857347232389865617375524791061783794406234173962626426726704277848315711532132380709659356124193525186094304321593515070090566229831994282374404243867895643109830108295617509492599559559349736515442356224769924598915513386880865493001486953402541068148414172808721165808567704017246592434023848261935039614184166976857961010919805904765564724238172142279266292964318712410527240636178080525715874503228188741100670781580770362534663009986588239798713721324454488141236124679375573340851680059413459203478984454671290140186420095062383715213801994994581309093420459090211826721543789076652313956011694079016438597268613252917796576186649195307737707116352796638418922528278574067720551083291390621052605496677897074122895820909055128105307034972828968977353758998645252223669378417144742758113139495841599014394190299820557332826354949028067393227800578678175692985314584053928713605655933423725328966472489234948164853666661555203964854988105091403027204874189613426956880058805472520776538714140863390987766179161070815362600387820307611311447428603331412362068669531611121312738823562363630377489457391733174325780877200663785722635548812535176773350171772738837315798181233795662758948686980223542279844037667216769654741233567892618248151744946961803460820449241375895457346289193708981677553724002691238160756019016537476226517023878573905168451516330466881200982908467875872636890336387671207171101587563908716075207656921457388179050764997852076197596783902596686798065093184605314779317528822389687986759207776148604549147977790821848556465035870017364339365530385300231426475774704117870689413340814042028770724262876391537691203185046481783968107698630188878539096763951346482205228089378572085146978141936483120343918209510622637799570500525870540510720620184424136557739355970232977450733121979674869234542793083811214479956593831945771418323683523553035409740160963148477669221431292908594413402195098192398720713123991155408452600672581098466557742200629030491885985403576328050180857107870797181058960017085825976176686198275121484247818965567365217441355770907500506004941172679254393386579679596949660829728946940681054591955993431968284254605554180189172128661121546497752537223920132351507381252825163897564996416651675448361179841892128581051443095912523649482229734952345608033421810460370049258850869021926083106725939128130170172673140635030015487986872821924969298821727688881850007759520302236688000697181340874877689709966857477710775573142382634431560914198344101295647580325860286024295350549859100931842459602117462076031635936994496004060535428764867840849161999760637395359892463347661868153568833514213320287991235677529773635586835912994372793352350603463684235433985041649093067059640662394496619023301255507843080967809030478459570541267846211341489668769764300673075725607880392561167720944108430807279814535342046767370753010010404409672747618877009807504343928757960438737902985606291133825329587493079033168830361017019684407411557961802385128450124547202160442412918393469458480008552125792932302373448243655696558471436928736388693472857229615351245947646699714151894237765359840043625932706488370658688832046007103450543353710744171582266965968350997294590802361873442577433653304821788080490837807057777153686038790400998101059662319657229385904651216683759291043398877211921104874872568372283381302273338435999109874557003963856442392678890121046800746761275194827984828702429439755102692533277720939934014394597789725727527139501622213180100885597431305900246818685504565592737518304721886288329239325650869875692571477144464484139118872102575296565602046465107637990861534235054491021322439724059906711830161922557810357817815811172494418444261800725794882057724587927468579622663355345606089892985153510347233463056387689288351937652439347991219772371918944769845542296013309646109455844280535510809574660945982790337779119925129472119687519313572389859840531391828205521515243995679031030975090296445324017395114166792724124150614828561273458677903505508566662995799060033003990565203618108061694291467804723675769765359149455559815533209227220289308866686535940606653171160123876115821019441683568335366109955030697452329978489359435078886054397014738383047755051680951739579988427137005373334124599453561256323239307862938899482102281035581096623778981051642515050223988723505200775872398937631296987094870762323375154951163824163435505494376855870654780276499451504479484885206644107513017922142913949571311937187761101113542847255925283462097192091664517025655287668883844075287445878577570284579261895844391486050592451697700691921607043898042135672184821721089944736008691372395389566528344575447108699241022161215961179351660316216367906773441377498960482465516326497816349288864200103635396106561848938055376061063566669910926779241716035405250518510509203067618849605910691861950630126702991033763449352407222665630944498807363179885919373860535847765532198790303860301816513851752933628641697132999810204148258599225558794769400187215905998995283219350814008934840536922960483121911492294022817492404189189779316983757397967068218266910438826353645776422911536832570988209125533993095766276523994968745436527206541729881190844738539403807493973100773256827739275581084366655329309512771807781479778117440472942817506816440878171016524174009818041428618427863419239293978649592847006946310136556108549145258691899509802815923503409814684026266333258371873213444533420940948235458418163574665513883007062129573210043789231596612084393477213258875303527108322913540868546465598073822563284369650963438551443689626413067559118440372530388361759162594525050786978820426776514539818923416294518289587444953482950966644123686266531801067631246962433434353735434253921814788126576481725807694261545520838261709554703857469253336461300565337016310322050590170201228315440309922989038308886144982609752580729039812567680533091393764730386845985394206532059984070083840554688648869931722062501118192084410888884940381429070225295968688129807191651919991397419073652532697510555378584817904220726083008368921885911931668373880965057909921290808995149910759077900897494376556288462244161816900420413907853861741514543998259321070802314690785601908717761190394921187508543182212952699522154654767473870733233546177179835385107845491194022117052926504643178740183468985591215196215561674824779022083869580208958618982345192017807268042263691377775686949097701534280223777198787199173417160652436429085428660839500819868018855174668070712797739690381482062103324815138324123358522126530170919774121260707808991415800566998479233821594368439082956336334431880432527440561683622033335457258121125363088137921372722848308119658866056116497991436790001415812214150445286904628936941966344845820951331682565597500559166591795700370042821398812584896219260039724935095787274012159474037053223332923044786760194655227368266186572685347796997940630285836846421958701421773298916576838728727978201937860800339871578525306958529990765693714620429919054459831542357257948093373475862011820953715076246227959156380223261625587797357088826005583525006685680337935192595490466426377528703086972617380833288744952522739711129585875146613925190212598958234104690128218857611991400883197990835137679520054681512791775800844259327040604365384761901676407994106486444849242196627734607377924159998950050258565468034010988094911695132322606505788126073724638329749524001632392247894849045875475872713077985792775628005203780997990808724763540531558679596874997204502065010379901655671360026929784049776928448673993461783832376292988275242781482723548970747602702353839135072237124709629673497729598648696907157676929411435084997254042043265837508131374115997769475015969676397921961451781437543326018206682978824500526009306130807833919480647519255922542830211251681760901265429928257293041894325432750929260864672454650855531242754595580153865903729176865423972454729779119084774013019370730816861050892605563170697429574004523684040985300201495844539206998164288254432541420917681891094048337105032529157918339096768781956932457900322287033365584433576834402925131798097275592868611237712472356512180427130954811044292614081628893085437629875435937545000230792110888434152931588949638220356591982193023203117761873997132388021620295642415163404885884441341951228393113350988930732073993296986009991454238300342743204723513339109736177992482507414150204262810010921988678052934896589104652925284181743373397540056897085864293108273507454230362105217150931722560355271182047141204834978801524000305434250252599809080948856683905621085138589878873526347936683342643089176117698985048133589273168213634113264918844285041945023317185946340572037794610044502103110702020100866824673349109906410425237196443206007185718787103324378438090506620102918555700331747583161284794238762116265378012712764846828201089926716347373153765033965978991444296248699153588604703234598175889423131446184283274374624702974241354162069376427952124744824103594370385904929308505891477113390123924097680920004689978374202996136735762645693182262907041176955967090267253424293071495048123264212009256296033686000033875754612276698571387912818434113428503634787052368845990077908706090758816843374996431820020704198773935580914317617064905591789119661765900962852012419136178882549406929374802815997994663369749475343132802800067646691851928269527549987537934343336768719697097123466697062411636998072562448850198437430430406274340691326459187121085526754323265774467659563036978639916383557380251078618179960162057574185096305863903164604753528836070201341038173944195351009638074886722080387608774228141273473558364866680755924901494711678129176419637188698579352325381943892196947435428147533548899527998619804461128425231239038245888261836877800947297068628489426780474427089628443382393262928057078612273216743287985981369138049829968334895329238124624840017886368191883418956270863005897507028061684507062676825687595765467134231247905853332538899414660317422207774330642030756178559636780750760456263097260422359436820645564572307675154105559104764107969437330185685638543824560005123652891336430214358626962399198347702540904750573450850661768986578192820554492585064027137004595087763517020591942660972904354657860516550030237267535271681638201001417279831556111838046542102347500367473480146405432264846875239937597951425790738694146007398895908456923572394296456582902380861570385354108516966936429717051332190121585098586007321181745669706469102501479148623647665904792868755683175755110748957056479396088818475245548314373536510922643447750238951394663148427128065042151954365685133542669080965151516103434008132763301109831911077534620807123482859525980513713325783815805440135962222454068872493285708835258475344118952192639266401473551407315323754270524587027154963766451537414353384600137115449462819192856243959833374111792045344551493634597546530416764744872819076766744020779212608092260637586577099459038367750427020734072157308452006963592049495717137482217350981260647474574429670877494004203410382331853064074034844691598666314266477906884033924631914207411448134223032762435206707089338064635654805288170114726226722132757237397462899879555804341922233080335604337673184659577435660804212338256520014318189760846126209842983891307736876436563017062530077578328913005790673845307419289362807828576795344503518691751745166178854751942189526933306359328519038640833977579355603116816682018880360974367738492973174896967185467809955543707306619503223776265723169756885858042692673102127388312406889177689794651598828257667467377841016002388331518331117880241918776377234893000696658057078052790800069559797511144683419649087706485897167423590147364533064189186067268769548714004948938028162260549658450059872318423058479455823104814178621017650909264126567351227696487679411743549168652934261810882733432092406903324647681831063893321217916394437074975080407293142019229101924818614983805461470529352659894693546218856428558088095978953654663559704961287936223092916934719520104720339215523597480384265597709599455906703170236458862887671560979639657737723387236122589258585133258540151279831719676503697535508508147026768200282879888334433353530148783896458904227713125104607364008703282205852665641902923680454466928983011847692838670859157759837148717820586400265847195648320500514391824089718488137062809550006214641880064899667919670888466141494867526746167318865453565399529339122932501779965113758961636484374908395770357195551162276569225425863612369441341071621472607582078164899867365904244627291597357293792717350484989515783747462016754549283143135864956338334601589831997969544646679155714382116249599201360238750990389661898779581711657473799259451521530977203933150635621882039474579584875455626793771212894314537684646079742029874457015259940275269576706922870585672525766399298484124525343206071484723301938028523583308711788035145005260311442242723445992670274260294331153479818552559862229333428648369480211538364487690204959570820527575071274430573981467655583365786654634110052561078245121034387818566223803032145116815815706340529523686408473542165073365142882329450160821097925780261929792372539099268345567640891382391007973534085677365500567108061245494489657771182303116646920717329498860203738868082487292867878404694261507939478009446270874751062501111354347751377792814383477424408768431090693660738531801725304495179532082522636129716167849345922973993786472510272301842075055341736906588670368790373357500307367371875472424589766353372335034952911871092402480455858759281331775187442836532980296012393035612929389770532486101480637459208714689775750630222447527945124400394621820475833769976493876080725986594079176839506733723571088026781840532483411275835259239467701660530476950115477659264965773178660299917429068082264990936400283808488942948659111037921449709933285505613126119533506960997878007120216617530102724716968931788243190923725663215500126910202651246536856893144204487693154457277520802886871551428908716918551142018579465166196828479264369166739054091401421644739284968227835315388103169993481712128591862150452911556842271697134981419589725681462736085497434496825017428062647854652680374654123657701312395835243962364767790437546831159308382722791137789245238120726489658691036977454049106844870102032411784244728104483942131034125876528710293571223600593477165446548377492403532028027024005702053249992702195278039469744787135657624743098042534125718438989151475203442078671538694685333286746666234753106720943975271133673513953391348484358022230383859165236669993011279659689963111513590251528699364352515695985405881378341321604409186071351261322583367849358151786691050188184148860817553323447967323701274577460074836302874182939843924167729369181132830981351125212358049004400634361100731492069671716756992726951734382542857415033533113140691113265955294571390045369622007630362873501886571851527047967777046666713727420864757160625134308468444772809726784548901524197417731174827523687169326511452819872322802144212111882465645156748237981971188508859883110465725502908495694995963179068206141021491728882690563140202941355421377893624425929902988203446139287793775556474434284715569639039880988189962522088906164670560719655638960163975872750360522797473196620914726883475911525688966634965451885528860342378609741279063362160512201327368933152374149437940874263071495006599530879194758572873486336809340921528120714952512848498253578875253164754216261967540172415643433626603913868689431581750993949754075771420703648020552454253757272895501831167002400605920901953746684863094135125881105803114109914678563961898116382333508608085176882191656858837973027032522243093325942284010205590002979865503491620134402204808006987214869953418610684386392537542961234031567954760893199718440874206388727160465682549099875838499288652967036030154359236737732319345550186811452690850096177760661861436466716492971791664373397970334819499690315805536994218486943590790283784760174992046912409637168365887346692742547702373758894764032549501223473412433448050389962683012952817812610705308216060354665218027239946815399843583352024929735561693803337251056758688884332738354236265844516552596854938474993010106944284714589805090870740220541085899882161278728311354072595118847483739140109216984574987393438976848996007624380296351994777517569685565541340750044533895759471630093869001238712658565430356723415385517466541269346469754747030500525128423908620458182267861870929336090044044804906697762834322254917268142202570768457501443444197583118139534820675047037593077661504116403790510490774131654942806308900809272063242518350646735293816362733594208310558093989146864052785086820305743717911603314777783813953670510531979192989685188846379370681150179319227703567770485278150722405756337116178886094885684940332208323373066068888803106371394433530688303789810863866815164660724402227108618008204255322687179644145097742880603828716413309599634604453624672935233542104819148528255113391293626761362576131080324675025797744481692106777260867026944269246339628023308612125868490353968026461751828903803579917827049431084233698277027881103716864784164394696855550895438386248867419882548744053141714816423539942102622864009877443576730341305594482352349900137226322730597343011947480613137130483711556178781696128106306533947878530536439025071415338437588203656850481840592590153927140940431372946606348688518601008794638093004583443110412179692983245150994184831930371863888871197389720167320094075812696010408975235211177436455798276288270794297474485733086568261003379460224128815115040685572551543895317643366609143378958081001527741432471451767909296043889522747427869412233929973770636384486600765929354591194495388088224211263458980646665819722492995768318220862506852970095594231159703391143277034370443257411147184841686726122958246457216241661555928416314830659620067611247443295216698441506970908338855065553398893380829141558245425578089477982835594468699439121742635695951997830266026198873723791128403628612050162162683006360274525899540139416742464122741185104593566979473707270409960028833049269673017085706894945581351555700408493484139622574365496231589561634321341754550861429952735165872301575938713463179009094223259297892460659790326004815369016747655622106198572853970890091413803711965219999622444645722706812273295050500013824604472974401235827214459325139214623289580189089148818327880823384467476797075561804332160164138860560601996057920246911167611534664517596264942029150244514279480959391643080372421042150579412286242530351691927282392209016386424600485192973204166268557316468734308437671117361733793810102240931170011811255550366869786165165186468226274484485281178722732478877919732289239338291008003118825075801950811032457437924395267079690740825201494306460686167720988272311762412317060701294322564859209934213802850299760953889646381423014851789691753834191183074494193415063885013167602241880958439392236365794067838934301476278785940494107251860727355277177466801566850066752989817657492222499329441324884629676776156342771799679155556912480294712832466134163964917044894516319622419655968112794436835713249482478976314216685642045759049716332313139287380818957808633167389202436018263191476151271172100633442944879291010290150257541419282921056243346618479357493176551617600807271061456761815018767757931148207841076322814806695183338271727125788428471723605736970165334396222553170387508271681600873256372092356481959162911874713972606551870787115031217596174038783316454223176649419138581572397325949293546812876744894530350588691740179418903288951245017378487938945106252649988623944525822546125845424427172357803102110229559889414477835166198484909754727303963565688668740582464391320742625850618902840536561459821712372036782530068770665326507527745507856672761842743094707457066476039184439756207782017948759170038293781362728683931480654833737391165479771474177704549897728445579315505869449553476513930149528086430224338551702062915928999061097918523797898131544769553602411352057833315428789161826255967544513503346561475424991592744340658536491929327738734028053972932255064314327304039777861369542636628759683664882183923278993190095627585512197487722789911588187473052385954862406293984948556005391537509011114469492417190250114434512411556084188027876713389824113220809412226943358182959924323106726857305737958247334611645184134000991845116787553496607095879848522570721273671276971754982161941498041982866027971844927677117843340613691742228499493177706136245262425167091013179663225043811686442041329745867885233864252317524548057438289052714464304032558086607207652777473782308943141578210479153868427781774800455052294901387517628285319911977794461544774332602460549972246461222699911402171132091525207858460499910426107713595236763181461593180025576706822522113215781425532521936420694469736122978854260298515200658252406700802290821652303499825236797070608741215504841819798328524771124480289630620311835079256462981962607781475021963914059469848097081779642222347139819042698845925017532644036136268753640335372391343580718120152009790934602925408953645151525189473349837973861333662057414299631580971044986632917968683547210073421755755651851231019810859112656949515837849081249960963104682524462555533428904428858044126867307053589304526415740371818538557224847261075739144121874274172216862472028091180902501381189415967760156924028199913340294402144214099339204569606128795296224636335818987452414002574266326031266930825265089271197042696965980785206321952048992171713595643742979318312997815599902624665065831203562253109941525613375327200211477098030627264778644022626269322975998226529114621799000556487529141274530528706993966078696130167783094912231516713018142034339060181233999875896855514510327838642595486264332446814248980611897629510097536502087693550489161912122521061901910933199226423423021379353046442215244161416597290616788595638654486861232509089569593283658191158681258540559691502843275770409012261956646216938853469672943442847705400291305110454094787200253535620793060431881073177489911178823180871556310600489372616729824123918361143066939317445434230631852395159298730146437368763131364837462434392666234063053964659473841278937499378513281353752772610779720423619662968088775112592104880865485251273677563055027384865312044281249824269245534742832758314683564053963590162476310515706625448651766950266391917392828119950431340786447378014057273394817941309261484830568403683614765537898469744899939187981379542622152763892314915946546111556570602088065626000853682867413223839143363048024226330420253101231149532597338161131058560070877514474252351818806603904693459602895415478675356500082569453071489487678076871821718324459941977792592104228571666539721786829031632743049330403873712076541910474491949685619893573770320603389602555715789329459488185826253840885104214710704181570563790056505656818147607112886924628882763515124763610941141492843071363948613549016052648875388196472137361453515759418445879370146191403051521412225054499762062759936381198393045426533656420518909334739203780209760064465608247464203756333747263513657703296814718026538593736016180708370686821153202039601269696551694287034898674938132578795956613668580382846439781455864333376823839735471258049356291723661022442517366387751895932755931144294480388600555619360129542401202860348016245941942152705034974691593387298139296695490240103391128650973904892405213659293438587338007529603521803426765751769519724203281143775678135154672246717534485606502454810417744871279480848221130723899740826471100337551648055899494021991236557502721976516030451526990939969642226965296679718750264946395220371956767230276080725513422310086676968858742406326751186585130904546056864185121372739788260313491428133297744477012252865857579926653772067944021907776382190569915725705042195543901454494413695044836472060959011938679519036259039601159476273241200066229358080469917635717371011030779291922526590009672557191013541995008374159187601764497540553825199466949504603538602591799635372870327841189165757237691352272658188425736566845967330531785241131855860904038281988135474710035361174549911631921572200313089478931948565414650632504815209595693416119015318442928043221910298267690589958248373768055770073023115344881313376463397498557040181721776146174155972836841516864370998011595601792080638572255366354857398680075670270373436721222247546514983362001907593015292150039990149421684580089458990104982999826588220364325898959444890553172487825367131979699455547111813036494645597787010216306434019604458219014303958740059385381539132028325134006771961357165128190980137195657538090111750806451282412932881163688203036519115696042058354046044088308416353197525203172416064931778901183061788786504296975200536290039880741499930330021196002673602790535903662080895940222504616279613630162576753489694318480746333038874826816625026566252721686190744386888146384550231069344488662261622800872258743187258182910090424730612269880639806613876266475930611041024303377730946752463516792393815623549156889347647093013078485251472004594793761489187000027987214614673326119567262269377607907090803894318672334451094186871363770170296619548362337358799303595936253766072834488407237569928216415414552223164324468393007164390176304090786686182987825087744508768036264347224169529734725422480942289129116436958566180942085902607187988090490912815615400618496796493525350288041428363494897994039013707010803374499008167519049116957680018136976102374698496222684443707419350155824995156307529447831921001423636193039442735365454694750338327505290873296513304343960616662470225184485067528894368388053281831779027906487820728811343724158449410367791331993316084337435228869062690781530255116027376583605900500850470164914271293853621849195309450552989747251892785628493560883115940626154613353888431491798380571413854004122095863729207861995998042219028260130522082786810527388349673413089507740019384486979569206900934007833689048292154559309501005788765340400391371249156588294411484101723080005548701655829226346201279959361278145507560502082143775870317423606451162182165894918157323265863771505467753009908221169308227591054637462516062200516603558132846684573608516827671267251655115034328595315999977406759954214199567931168202175142767665944805946893215104974174733480946406169663755678581407229505022567015642089983150440758040977498469924738878486329967016970165964153509587277198670687490481129249213408220259310518518253445707235574613019016880374308552352949906827084329166750396825656995352645731860598846151384682490104172220639685834275086170014651858760704056690560074804384281753199438199495141906870886382195055616903239010795153007233421317309348942277135714148154394501304223534568779492236271790899164693062074687269131375111006352559144917416438588725100863597204416210948508227144609320247041882588944864864051778653064399054544089273605433336291361792814834652604364655715268239105040270115661622792312106770167724528082388226423668655687636427960932901140162108576611307729127375027005733334807484222648753350438390019589132020902845922376985567554270825038567925460819794176022757493422362245543793429825889741797259641877209219385790843007070273259796553211501285913016349536820221045163113006013665225424845084268646397053574870335737403852141449437420661523569151260030082729377026427220852542752582603195962901145930299930022685083172347329542044107462744309216247959625088950790551697711519528724916786745319387150954253922817251583693150959377376684292956617468103871161565177142933687184066407224504589722502768273115427473168655523379375789767790015030679884056222169001524416954978958213075133465135047912992882493960034766055528034703570083100385577394469495125032749676812907960910226680014169867441766975182140110778033791471062194766130271450634718288242929792319140525525449643102691197580035397842752275313213844589371347416071303033037676153896915083526383224508070875513951187736756821291293877035919931076229149971157829999448296522540771587259893998881353448792629149339617896403216722513278191296678271220226774415631818835741562832532140370178147423542899717889228867000385414138504810357211692306435275900633015779519409318724233004174618523363412974771752263111404720944430730850715422258879553319525979635317790431246748388778164395994588118915124447344601820831637932021525274006049666316889713610308092280759100406760304781503716286383238661079927558882487390590517894160319554695489998593151335540807660622982320626140549925063987206914214726871548791721858141463664732633357945351303351718475418893607875274164180147840993654948915005969588581380611311428895498080049818836316370412069494493240275134083107168033820837391133193025434221386922258911048420321939313704766232522856710604444353956371758387637516224922801868297261382100857136763784268065113187306794618270076192345040186669984219314614652090030606958633594943147398894076114989772302386476052871148124299187288249850023260187116713363763074907467875064760025418624686352489846155886527775080831897656543143094536754715848355496648578644855818421018057632351435854691200175245718809924410075150018956131696765158778040866930432801329220357212394058305237485186864222720792262315828733770307266368933282550017917795516957211667886095827699853995527300142630372050817883223834216927472756857557226715372912071599591441348397221254425073858000172814802474711208223644960167195410546584315108162387663759697518650334480147869281095207305250380436313311322643127158262138959415297875260724536782839973885908392777988619665687648426938664911094428044714533209977887615459560619409897772240141416888836099145154705238580742420506530135087922187861867544606338777638947602863818290095549289800667315432938829624100696310872127531800910572913461625825983130555766202889719770115819001547004499876748515343219946332609278963675432412386180619546890257192752968646570994871345527998414377224361316797083454545773317932531104207621939257721608830159860057873724125217300607262513739723939963613123290516738474790345657014214264431821149505144465446415791889788366918111635514513872791764959157440132974042721223998338566438051386238575062769890980120449496144884808344094859128452014439973812188572663323568869814441976888941600493423289436417944831430258334710230893945856611664536693005031027434991301403140573593249430828233570384812520101985122400658044629102385497033769225240845065183787393105823991451413109046218303027360947446614702915403680373901533005688052546673956298641614810889224733704484470973293370074537047432510687920689384459477756425111424034363495968001579320560287179267563006756206971832490002104818566688889919072579961522386023018139619487503766322879008652822756726270478004082796313722614726721659496003813911100849644269330307925402035498922433000163464552753563938416129844649321091719995362780973878324422923101964678413014289608609082954536770295264225140317884985000723995931509870158475223084816611252382242903954895526602328625387180826122931912634610820229458335414663985214614204292925245370457408524721653094080463187153809848587033410335931981566449174420144844303198120456958812362794672574210682277340104312726311296380648859401698652984877680609159217558768409193614857090985602926721727330236425903441860618170638700313496351634050240651684065311494926590736336054904462538173643987519048973811018882453523928539670104535690900292543351479289904174905660446313330089253889551659040510629652441820569954871662994779853221743166598821314063662042528118784077021687948155887796425278327168472137894948969650438137876537596617808454700375755670418477536963475634277974698926402563828257200781023837170796239273222514388844829322954987907324245801137343841526569447527369965617435532861679826053226168759402439460649474404727554682433614148918312741238143510719030324336304811245735859654675642810284139833899981330361428468282787353568811226187950605865154317214559927019425789138957496634830420671168636397765157740350945180747788871389432068781924284586243906050375568835872174334868426471033801724705182937597087537483672182862346311934594993488164529198659286078005697737855740257065039513228307921560475323001047259744020668109720448048715765082214395952802250521514357183326283204358507024502851087921266760897491071212923054406274011850995989658073976840422349688206844166907864888256129541649957079770921584936086599196251731742932195698247226528232274372173031348402702894937149588270576257760593120475472776936244115093776589638005410700751969395243427203083358554264216695214057554163395222118315650423886738724127710274675652052785361060540786245989737810327593072668976579442217046019406127052573236712557602264929887919271655659909643164026480075144675488398759148596507843359732262125211082697715272559139430720153794380245847880706810381957380376873593659108881364033848162699383861130416907409885624124844306165627048896292388742208092776168511741016707552518986694781227321527988775507613743990671647443594110601219186930455137948047179167027136728903274621811892998138720223174555802252562263111956326498955611582882155755810753031605947062372095454269317154780111574288505404303384101991180153266735527987174274954100925992685468496358132088337153884818894485285468496124957179365886178169805807308591012454992575380204962875532182020669998088748741057357235731777249270291479154365153369747247502006287618930361102194667484449654699018551530802007697336150894455223389005482355314402327293055383514459110756750272084206760809814574992011771062804359638443104602014102642208935760319803425095615877906466902377455295082208535844892624626423201246379898386494699172208378167863707460967416052726463210785237265493762279828516848138883461288228013835218346035208802622649693461999179430374826054002768732473896392387771654234219473383762496804948583255715657345150233343367958238575284270837856039272749265890723182076355474967567322191966422846038125743475338377736971329825665486925610646331518039504638442550421581035246770939091519596072869926961901674439822757081822211945837336085085016365008008723798911910627038393444044855107444375343767920823026296003368207777520674198823330740321901891020917227085989887947499741956573203792956974973380011115489621563272148355346483339324126696435234460011675414873908950775163972583560241234577768296516540315095970038762940812351982086612830351413573946830473805561950729248443512439433403291015573695959190545347573762821279629325555759184068330190620385728940854565116368422691870950741277591859914092624666349244361802962069023539626185913842686930686028696752579009750784610226503368339637175614540842888086315135327103837663220320762026326189418296255582361573000430080087608899502745686241231652668759889955499356287535916664146143852169742721184914186465266852903107995104342901865054250092491378878133853573164810773359899854911991908597357229627284055136902606346737664773691569771070567811027640879684753569646878868959628649213012600097053752229417043795370693528048114794991366084122659334347766283603431046303831360962651575942879931990141605686303803631194947973988588127017068570890814171208098691816722790906620453948431971733220210111531898597124722472262163610914642391186203325514897295556348222358083888026528771106009309537083090728799132848761184531042445164307897553155713027098395109906713105805436004995007312701271911073700546859181597509034643536293453674009124180509044550136726232108744837891943967138043654604018825570873390010478026047423881165000155742617878367958795668283896355709276071918968143765043283876107471491559302049440847676366483325657437218676453183936684974193226335526517201813350876240338059420934314753601635794668452435475219019693535509813058841671000451723741603229367712362092530154246083210113349039048608118372051551128783538799725781791540569833182521813856699738804296637796921677464620895424599436328884875780055623697671079664579067351311657678217082945338564761622212172735770585515386461035066219590055362340087798693178420348556152852759954781720436480344695923678622043232840735774659268132613059965608106108513953395942089428520670789404795113073927776793628125118721260280795443820406881518084092887605901278027601340146803500094519290259598296758799189863361007860929419625729619666364332601927882559270976646874483043345731013335983732496486835921707143757082212329899574294486269135755649610850740018403863060772022969302624195686143748808484542508806241187023016343495492618091549311929267248097079883734694875726959783044156104895461647967191563879512161069289045419598710453760815615189217382966758863603052265451053800640819813513293685944375232551636632535400144559156850293695650430433522610727343862409952188282156464319752480442760655127281100894616082357587394505306406182755037850064755751699516039228550425642525925830587293374004013514110216845933116180157626524524956098722620232076368142991375641667967800333518174164559626118257731486888238773149053512598675831050545499211938666931525312968925332973002396931791444502010938232974361157110296915273351504645444988118565593692845982351345840443800179033355039790604716220297710057686133471937848605345674028158266536128895057194659171182672087987212853000433850536739284704978523822653331604077102691721309154056279860227404427558953301688892364911881578575259998315661967790469431185490807918036481040642164582964881709863103857256500525265850817136749218912903362771728559299014718098005438267067120191345593102113896135494795232277794864718145909148599146021928697461211858205515010297322712966768253896641608664480916964373937503482926267335916597169159939895141472149453007507525641796885092077715459750194904419377906904931166489999314538136874191140835352949805944002612034436405663518220198667002921964232811183745933705853906529983897267853686833281912494774812587950877604852802129476285702616552050495989372523191318746702626299722600467420007813390011844416917802834315727587585403147840150473087948220245602262205538347667235170345742560549222914423842154637572292887863931401171350226178227302317655313228128514212724570939172389866209423510429014202949642987141584333460119141318276414049317346562974540777885412783712077871131106822380805031368729334274110410357665524382493294725218905850433541179607918932806727885479793491620896053295166627269762179641698156955436413490372828849691548559261314762939347550530426815734950531989638043241186300220710900128133682788548187325389878742221045583603102628712565248175819557927457017954440124446072561125298255198990666046334951552264235802803681118283064326850255719355043335910622205608024424021118167858418711853700533745082225922767860571651698779266471654548134625902707790369761413076723935620209278675457299259172386078490142547345957017545587520123307293099500234262377474401335023041147002706842194326919088450187964469632561240746494267159245510478535867469413874878557109645463366426081678082105629844296880581153025684037472794184301060427370530422396570325253586736737620410231415467273281904349775260188332645926308772607525989869264213999284460889318431633106668811543285846638770813998242467077799576370662195852122992512157991696842067056658221386675987601014923727779458893166041688732676769772004668982047458919571081452630989265797152070274639696780763330745869627193489469930473801891847222842819933654129178396060297702121319593919925291747721514736493813348798747023800872119570317021845632670350571901667897197753090542527380593793151753660770716390669894839925293730378090557821099314346260585416604416334434083259569031447848334204746313977749439665513548364654512811353871341413635648831988838447081711331149377121745600794188267593959609596208702948855158404707700554447058193784123563780025424746517946387088176256733535240122517300709763376892927578064153689677064210328620330594420956532682718652182578702376265303245386719797930776286350515466529505619855865945655648339433471752871149232258147454555206154284464949171500978611089957881043576070440578130245869820673081119163758014952883246095160771598482622084708187442928798900078777205156186024108842413401062675079937678901810478643528095641847945170720873085464924768323309307618707885741114444317812455069123527960145754368829071518403226329387557624995627568086091351665410323225058546368069987850386109434099185501550116235831767539157439947733615060145192726669318829959110701295831448701150695985558147970926828625681018267807626522733702110355031894975185098550829444889903321638766324414095559410419535364354922456800161899978934147657572255101174352810030758012720492862356033616078623462761364987340648941189639423439087050416929216500127484062017465660207268023853875389806597610745104937479759177073384853884717370319658062310774765873069608610124757085902663371842875453488080600120142888760424919959824767789524593778939318725262960244993145977943812491520035180947757989209095385787282005537278453527848771925069315839797892273608671396059452555874167286387872994561353264337950836242085313272345576477899546401933659840376922400911382717703645879493466877160162191500124968843628098630419996572182982421697679100698269200717589193821288970884253664456035284665422817268564983654373391410733477083118600404761529450471736519663169980721923479504937816797829670928371841147307723105744039530227397628043502455193782420071280933203438250827515294351727383483066388031457684900264292356932166721366337408041236105123866561690755858447476299532556352014163676599012818793277708419895151432908442415054984746825236238637529829189496797620311405145453680250320142847606169210359770954252038381593779022083678615462873267645755516555594216182062339097700642570047264894042120237255717364750274926960122817056787971817019995943156001735170073621110219158571036714525096600769967693781445380075651035146072425185079509437644909724556657739368927223293469360492302173309750686440397554362350552438879183148201694302499122648813259918473242253253149454996390657274418939169507262145542253467588624326831906641812531212387452765912779159162701328931344640627134742512572450080643575770889626761580369074336510814756480365065643084050004838781673908494469937996225481179695921287318171417015730413270981832164800255285371096035208350312261652160616537741344853712859771318059026904544151369099927249782382651445058149517529605284561027552764452218677739316606261624323668532826615976254467641219193707220293831477458525127862666322467130753370879437761281847090432758097024989996526005625530367668976925751931852498955371085981068939572271333623596844815775303138901238411755163091425704999759170760423863479619898946806645255204147853590816225646662166413695374150847141549246635022159240266835689861293140020165667772847435120288655783510664056504205680704540603809478767793023001567237500769891282130117063988328073575025468215249550755207734871914606752646002839208738757212310293743157915200370184987395783816999753197874165795325095877065822717662573709289910792190769775606638535961642396877817449737684081913574374858077296158308365751546326535174200682699002632854133294286128942555004220139614511334692008749987743174320262420979647165796533183453183990891923706542046353378048089274113624704654422005192446639948589893165144595669556850836289644967082722619503504501588869656673033208098177762974065951687389661803526836401093225818120789751870260879539999706264902882552961483938254591916221317770702715755304303507488944353740000178050925741775446162476195354726346562815841098505558616250502229850930730746519695836498805614719808509267055866649317498652858630027166236032135558478647874686636008732382865722967958999581202517438424200606664962964075355358537566742610343753333210329424448541015076217192245385220202918057143989300282765464862498292299972605830913547296152618392047895712926679945619239593479768080392293872783216146928719972028535625618378874679008189661925901523414692175320247474087939360557028818517399835481369492589173745890236237337806041259313269743600207742402005072067518331756692421767335458063337390313941226857958339296851594147054145075244194110514292014774137375777410351098749235092926316036397419669720359128359468246907080491904160702563254389531331112672700800616586084809036096972093736881288814342311219362363592095788331986122177063764395317014543819319692875006451296801280736284414041302807035279068749421538287631804849162630901507959831711456380126710307873142892722139122546332385151139254045716766121914753742544022351459505434718435088275880081024830869967529773234351981964798228259506287877801070938767793088036090001506319766021720195612901420990779871886560745006310901320859685001155701140640505466774207222648633317864986862379995445507351139424463358746204890856580427203582842167563834255320796772876936212645663662648592132819382957904651106214688262668324517819654750392545267248072255326358065306811202773154754982482958009630627954605516409395335013116616904624656100377753830901995584935037757225328965715434212120296358416556656538608537006233153794348741151420101893337011548043981802212478155236805323589170179412129847231594050667715224801634191259335001137506141404174007136786006915686738030878002797093220267158188869401147750926931602369529135792799664886882505104919362527086903976855006739777187528560465844827354829476839373927704558165186967302016034797761488534894823027713957429933094820858052915316483587048756877754616430557511514779306248582635358732957369512914641360402353305967455623173547278035815792401681971315137756969315434666097541684345667648834099180703704035002121040705652201553578768110622414331100523899180790112370765055325274927476811405429938045943679310116486708789288780652795787145728093921637358118641150216611632298636346447100233461800020763041093280892699941840606882154833458927694112328724234583939029864351117611481368651285337294318872193966824649645175517343622180982705115786691264937729743280361343727527709277197075499285293046688768818460302680632416427668672629319562857864730910286195518537286864055373932096214901058171293379466759534764529651647898823059714014791624246822425804498165191491990975559989427633107351248527243768261934071446386218346908184465091356255684999916527539132500078469135448549438443625162905302253902779995670815346860001513437146091719405145712295810684554052481778457936388773584677215788239406907723343528383539129568071749175067128397120391725931378656640541749522747992427864007622322690820077944970544656614130998644283462218673335576805005026256695964856022250930299602875983080008378551040938183462926192434289397031831392057941460468969020794697647545116464100256291955843127875556477593758849181354208297039874727378908782347980454670259781984487659545127162937535358350681514319663349960325194163087359998384315232878217061525812088380970726452081501097590057242056651667991561049674179001868669457330998229038335239767221936341188955819489866762523169648022544659626820470582909031471507859025702456139966245201529383140482342944538608589138100971909270860772425377390225701656239883710993929067200038115174366505292624737761728401285469949185000771493186307081576938280354933101868919360472283702359867441993333999674423494636990950782274288414736910890252515547116064701174256223523413122123716503985221260725701914539932842520798557717278151719209954960356846391036158772292374727829953173545144053125138094868439114436297425025880961028832937418352110229952252740957194374140461302724517464184566039757164555350726697200304616012498985467828343610053161653090240829756943943309852838787781555938383035269487510953949938589030393850385093490651623081229606326280952653777026349798795448514863760991460743777456006145046443922600469565660312184946982103127311982305444612193330113621998240100844845077258847392811632184700039998021088142257897860650296692332753158911640553589624961018544673651210519301108601557588244132608084179761142038762889759154586150118499301686853763342063099340271422726548471209381160546305184396221636149110472688272650286454752821955833417509907826825618910518724636409842826635873846842181987873460629727509269552800491237298044334559534681332487717957796796269081722511776472847299992732074325653283501145267083915117801503737810655706305998553306461880885793759419649409433544092377650650396661444777585645954237104262087163987353063242228158825252177570042036308176756910582941306928297861756264731329949705256133593680474478510202961665253802755623352858140094287904959191803033066287140828440961808075470521216672085548213007249309104417764288693237353271712330125428456805104551023551438319321198095795567001779251532869412864417486451337361931030691675682310675396643607558531190928754377389335321809772557159420343591967987175619145357787410145577708343584761356071259609416576123124075098188530287645240260558014146362401420030799888065994590994125361999938515233667513255918711207949135303424748323565709494227233320286308537994692451881160901110026172129275051023929926590336887168016161655082001188953880813297529382946102882784897795229793623239643758799818303709372008975712380073175197876555315170703375388040471966333255920390108333576253995310375681398324074767494550871725587684107109032211437747905887650807477160073506226444660830655970508341920021727933628523273191424272057138832958042758162064367159203115442419245833292933550742972817314506346060720353634515239049089489814548915793429882165745488844628166818413580227888744094625224829500908711489249855061005771229200309321096619193019083651846469587003049873458750221984387325251672041978872759536606862917666014033887095032769605555211519922807300385020900044802706488079665128839857249523434937568146906966202980788061529726163769414971329482913484091694097610618938842161538338961221122819659674168338434214984826181068649378849186010490236945401017510762986963801274670200801287682522399139831731629545083581123744261436989878298810394412296935738780203192182567247639131744681877225817784275859345681433205713004141473395916295446988740953965267791819653551902776055201529255669814980349269146851985219057769040557347086926532921365194712526321642384085808131187103157144521138562789885481742033272207333357547771213442592350038791650391891994500499999552332893105162132953917246225356188282628540174860796852237654530039358192232457429546904194387378906137699524537395334201515661625252636673039228110595701719582741032018505350945242341773049327341455133139609465841162118869855531412755556115637825154495270887379081869113775344398713752973527510204272023404922079622848503776492902607915490188359073468839507067703495705222104446593082616614427490857178024093364844961676580993114115521583244653688085118764395513716555483210717172000673583873116273694741222231785425924725261795022811355566165177754546464534568638223683397810689841598275008447958829484324270131505492228700637495750698828790769230816658347249612522585507912660502720348930898886611246313872938709195186774983322151020097549346358066382048428097093309198400971853405499023139451728739947922341580231852945497812313098621777760877108736987117309342226954515818917359262046399184386301905623320165676698893048052797824249375256272465870662273493564828642285392118152558203175091509919499939257503867866747422271210855015525089033554859612103588635558013391524846952978779808515689870941351714431038121929070426303675869982496144733661106195592402571530048416520181769056129848907118150278225875302632434494266452787271028402275210260315891059288784076816757025514973513054796344009281958451730251632632600983413785189680804983417711816001551133018181294535332702576560740332306304289816843620302157906987636782978499876135093039688559679160160347241463664487042345069591081789643057871328111318389752352431398465867460261910347936771489933584773246750371501794760325925871297263267829158954922037563145913691613585872198271378737662255518211343454003169222045335093603540879353881477636131748658653739155525255191655144883417490410194313442042749310380225279060574453082899584705803808119718444426569023054465479204767662369985432712725362321416314841115227877348249069325642950772731150814324750745131169001829890639025419310647528827336314861062806766847638874598112930142935180019877256917455317503091798734789447780683867099120862714937924667728878484281388656204282889614258858611967887477918336157463578855937577053350280470486250891711878106166224281000764370093088552541375936967616076584883365266701966775910690948223368580261291131775831738638770876901268825715092842049307594171433354013946031242391812092543514430994885268023788802641408414076658829191232624168930452101779888425693985197599391147045993635745452447159080709880264914283924995397706382751283526633247407249835670625857189656566980531805174410635461932783059127398671904703165965763134290936864161252801955724280248937835129418344408458477469763402647943587214314337398881843967844662034341294092059784952210719366200659986203266548173995974173382648601410638161209168556645347610697027828521318828323918561589007777021213753307623655339428598306766004036629074467800912405153612246065519847131558896302725066027402824678996063788491312605224455304126022063145816335506289923147031102442386601589653866446603824871541916933769883803643038919350752941335671990356933572010878751127734694755368651341507616176022956584571691150928706643201938497803906978072249777490094421565395057226798972106605943639536351061141646053071611735031919962462344073449825974648267985031575901764838947502519204986559781573063582048791021111977105992666938772630537325448885059475460763914491542531444564307382011530627215343854952907766392803883593647275479682792944942198044172612910206771591707702610254815958934467599584191422484698818842466447276437747527063161409731965362854633616202665679546214632135230993903102122405689979249851787489689848024576203308282224887218517752854763487089196140247034856855268958834634815679800358625563204905973557458842582017315993769025487912001865501833822703055909829090507294123785838465947105986698107825522036219730856627347131371767882783311580721252672878366303356802307216517983741973296311602518313102644335916294828680401825145625785268080943777329120659936321750532436191770731485000186224956998652586875735111560260316976002246969696668879717348680828750731588140502167176034822008449410313435483002169750779085178978078472996284778627164771440439833850915723592405256090466037720937372929534564760966404414288135142449676352177346339258375420515089109776211127333282438050407987261522503485996092636571060504226897528097971082793344945763821266775705511652133627427674543122290875531813611539132248372828588793574699591352686549200314366257169943846315090040069717976715808403844406236344085568664413152791202983314844185301656381612082098564999733039093860551590821235433633968263243673590174316848606463582033191056577388194935597989299661843862634578527033448130914567477343445425635415012676161029283202833321013996128271688646448685348779755736237187315452597061410780809294071819099671574014103787861710437475475168109367111372722409309909294126035404920493851100575404905713113231493641458600901760815768935235695230080455211906816673591690732643750082613055778984435120577052697489736268142020965130488127740777343391803855259596874834843267653732944385805021205093426913416435284454895102320388179784333384977691108540082072851266014825718587375827366262116720933252523362068786605202927884902581248002245639820245332069317227226663958582623428923118104709225927096312546435527775658243880998640726065957383076136364976335715844421381060768243486679591965875898523246118381039876665094258321340453933883968433820854345510282692998338988294146525590229216731629458093583906634612519743416822551096317160786147984041240345191057609365835646815500321158352705534201670444999265716335163518865126868837895152700392982650115181114853778352995746044352299695050869550822260805335810222620098028910786308086470894415153283392199836503203276551085222064080319012808988266565468782076559339938686861196330278879564145329357309628488963600334444065626618671372709940118825767036497872308442130865646324189780264931599205091700793142993649625892569901753692217388588565557082231657879901270727463085042562445900009903728898255488877446747358876767686960929092040976985032007185220956830433394394676556207095902038479208031969194652092076732955846663387928958266079338831129637134702762905487785840331284167510219232089166784853273757632330817699522538794436976737865980678886986798952276354713340247870883869917060189479264656840486682454262818973401841714888097195874901578857507872989538636164666071507518913797257709997842725702632772924370838816267839771445440710561557137667334341058521039125766659163911623794186329556037018539571048301301932263427976608859947421712349100101029157464943593750820404126578876072709497584613981439756213285843277285028772285647609207733392623038621191856602204172247318823853869523981232976597843343308719412293016194950718901587389283775803924392627194352822819693034671590173723181429691383232759027867168444390028056169784812381236573519148390768395796472588986432400580998148139664769224837647166828109844100271033456163351481067412133459665911976151553352483667808923505628045489621266613147462251801433742540061581449508096580924431774565142218421369904659777227652484131058964995834600521534719340780955218530812070905772797433313943337577254383159862967746054627130228076679153149267883138144339791351073797352698589576009288885758868871243955815111573661483337088214594041308413200423001796986512505620094583635448472029086961807516661244182356371484917838124135104691297197274974432026900089787660504547822667365412827746540798885427265899667525172298297949119051462847699663022772744220165740500076020163725301500743976560712688859433500786162540478578960903245459500473985733797988942286728662974097826637110447651775230641076014256571214193510915494125920544791828152037592103250244276202648929719677275608615579752525158618640903799598202831614642093203821513468832354265772470314122129742145958891016184762836948681204639116527609679909829115582977924195903959707022097790831341899971935910070180255619968666166653789687664125485386617913735708374816049332688022765405485605261540837917290200588303873616149892916211461907476474063932777174413220935262561461840422704167569761371095438563786853797964255354101324586950956041595438020755262688610338041797553620373771006770373867231236704047744321195432669628317714425776562393945588113715108959240596533832104064705587194968299527225784491096832756937623383374174455789220762189296738643315248266752034477020499828569284241982224272014174603858616110621343392162621858549537584130352946837820138933015941543602917131254267767098658389047883461558726911826931325460325921262618928696249489592157853363681145950579125638515868911802129408720620799603691380202878370075361594701219024303591155141884186116098482117915613934971532388884307853576389642624191554397432830824405428533598929903028198100068332178173146595097113291859946703599045029457166286304186148440256062188085171117318187602130911491691328428568003418818857805898763272659259358719682213152775561150438896839481497642374995376975855599439610297958139854376705437766447008982945927844713861204155873478248121809685529200052393149729482871639922098625113202562309123051939029635399238977022248027568631238436296219751254019171824415099311724846315783695663342005870220757763741027098910928693213697380950323673594098459596515442332558983312004852114100303239544594369202611690741384318596114908981304659009674432802221781703970287634729602238604101028360265436099425564720236747523938496825708345683288784989759448572873557455158430981491367566120273476630471197980838099387340361948069376993827318474851468816056260298457615424281615000788997946332516299585221605457740204784217710684294823534629532775596501194274380870915391749872490140809473189747298376348598335439972401163999499978500211931185416605978133607037539670967232376489132929352666565945972472278682443921860749812833031784371813418172425283332847234560194556348481517325006883651541208485119029177316718038762591832027248333928982094985201560601989499067362608518267852657009998810813145221166046732909487518838459694436821419301238560034751155133232839356065941708797005805545832417923097422972553906290827327898043744943716896916418081857091800524083458621538840057894252806552539943502843097549639924274454120038560683562432514566335681170229051127357441534274274721503604486138321004833182470030762515766859456265588942993663597931054881395387251257755641183404512174895782250247787821528670438835895016684010858820323598588289918919824832821474584972343053322284607898101018073506143809259206300611825033239867177126350745959099891032442566473622179816474914009223961236645012869986987836115669764040050503149509848360814658671723627983309712534731648852972369636244628191708940793764049784360067462453823206058583352889632345696160336000433811114216048168440540230997315435698709526249493792622637267815986078266752063449465359006542908446383051413625349094429434992650948279819023597778450564845263621239104697050863790341780408472340245613161704043662099768032796522435285979207880140552060701023530085540894227982225188997044152569990838913750559180452566384450136937183336434825637307489044144619806732669334483470886987968250263950874466625366962749884932291475364661681931348254250763352152809463023676483390109206506551224815855791873802527963529497990897563652014884009996364113661544829554918981480438010826447954208619429554521805558631452720037222221469448870807401613831091227580689644130904704984147376202617044589754789395678328975684953069399585523742656356681629281607104041806059402756484345056018955653568185486796752476425324697916893822030441342687161189794360935115453384081360186330043211685392418968105553501434490455009231041513735572018446549647214575963849076655741351839530927303853699277250764622458656972902502774068172916954167008758267588729560565957181774300812199389239519475563909270834966896018836045436877184191810913508539937510953905600523322420413340741833234752234151588503138047437222620980811150431618154792924743359678935832625041765106496167471842142676564407552952774994424879916302655994525185974450475598941022320172971386399421287748723889552780141386032674322809905952868925516916684456488747590747763000315602919958810810588544629727743596335535931568207245705545753060240656516874691614878089110652962423544037139121261089050459112771231538599898790899667636101034274289012982392003681582067505488776474878735527463665520719020294207759173036861801586308610061976613771060410071204422980803234845830028610734559335633434101340178202396395930324218053331134598672516202328464882346280373717374057604001298344274209980484281071260549745988453188329113741997988028746927980319270308349867268396133810208700520173555524626982429816798058424233983586311274655287895013737793257248677390547020847396855779221027876908540598222652070606983532341194780138648945219603366696043843280804138277158317058737095206931905150930758127652888219779222735705940199967833429610473680841566534176061252007865897104357593953133759359609952490299251175128832729727768151049342227439797344029059007391144442776108951590340013293502369124480830233310321145260037776433303500750504389732673382323356098791541728702252979912772342035480819126210246640434804956816162880101559561161506761250172649142982932392128376866260020772832415596512695273046236256748613093485682562913799524092336321600558926278313520000071638720150662017601779645150062227634738904008736474415300263085156469510469941811400207064336783964060758395151292189723195700768501598682107154937088074972371206581128901343870160084408987639518209287141181717397981046047029525298941365533807038486519868715161106521304697656462500111082460966432075160375934301403106646884580910970915951585271017008778981261756190508482661555126971503493872620527709081836826222374860021735029209951052351288331148366804246311754060799783486380568079123885218244786168871684171689956354371479630012300608059696906271110680914175197338025878516568701972681230729807674639390817800736484181935887644245496703997698385413124254629851551049206385878745860928873881124293155053239768125620703409306529061841108657005074720127071321141586234231948095918588470338828186121118224404645689009560652045743137366285827128016928666588486694493346579767665818414904218654898749238239440974362109340528388445339573821871941006817566711881313477620976556777888717326829668206065714605178609988383263736934501262645249445714969588840448397563451179404336748269067027525820638752921011142949578051409613468589499341277434199444224669177828791104914348651071058615525534482530751152730098263100781411269072860729691928298929749772825016880048568905156513432747776544257571317882490373943465447869671332269360266691187588432170607106979828959172911855927062842843062962534106934524907471783710770221566176815579058316335076808372124909226816842743668333398001283080243911962946143805458718152332897070378916231497065194738909214484014588250872501803671831095432202824820407015476369934867370981889524629895581841558217563863391574953158402848351162973165230143763513802181164873980432396144325678856240379017523608577768119468817340765282679524500173151317921936402163148452764039309501338915007643758757797227321163374724656773995094592002913079798422319595840875585970611652297671938816414892050030670212250636487437474791439342015704623049477372829641559678641778200889338564492372463719977040679157775049788303633642678058688936265886490394485962176027492904769692824194397127450589283669870808046262374394833488518350288658100140381228994953401082179068718991502932570210803671272230208017986697218722532798000284981363267909846849358144104346612300131856817186373520747112406235461126809152104209555618798176709995587945893424091404446685715976692769335681712373463660535399747874248706201089911362544710622209498457877097903062922854234217579525733571129750759417666551731309550556512109841522893269250490603391546976473352486157951064587751327003137555244754630370246926185743616298931790728394174259893462686334889302349712399096767277543243674663865524673921502981830971833930832941194153991396675880246014022080572691936394411710268161571336499581728600039825814714459427194305822440351911917221090705858345711643730948817304035704483446774903135991702482603181935102323761978545436443377458350814798851571246497229297733618942030903336779932191173121834944261177818528956220314613678634236139148880844617963160289405950401907241797580230751233619529502091823656831376158772442022690340387119461487716255052271214693636415274921684852624458449280601970799746037072377874829566399189028996375407079159902195683119243142282578350296035737317448326159618900285718938942122035894097859012488242916934957196558589894421559771203870176798424394512094354674178800578730962720872224043926645897083096717726035168168381853627319404228754178087435510692164882907665515917280616345983285950568773368836672876768006721707382643974175941065799835576303054886182673601070482191507509348500574625958727923725800886354525595071044025576848615961874352708993135867117208277215710539978337331039310806176937128422350855091104844843459674434468309722775693324132343065548622468276401809506239044621717444666556020179437345694774104720472417094655778986879818224378559621382143544967296380958071091043368901802945347244897173289745260365846169397340238226604200714304052636292354887156054271843841688143067141123850415488082285934112406044102962729171906613289465119897721962027137069154307007454393342231253563540576040812945152980842343459259939188314627382053749003893800416284038193878061909405100667827886889504535093069253999520286821428497303483478875778669921568294206967504653220064830356457818718945480515275504651827825846890000201773683606975804929303874652072856097806461001859190041943970507202178525331323501193718138106443931031298498311572844932716929912582466930488680215324556815282960311690747888413698120011692422484412460081960360612403200007762885471157187582897881620186270519993842166721880028289623916953381370803095522710788725028851828674152274499236889587920022642118171146446375164610969956094321948561555269084036641045284560703485396001370087316202261394236036751862999513045878587134928334223868220705741536382792741539932936206744214434796558163895396128310127749396751313891046629434174458894056464731751113734558656689144305600975126116838533975843169863462167358347388203006840728723677326095265921010885920010917840749106286533361136833281574798699990332039640297821425892868673385841137055495209638773399179597196691187914032648750631743988079713037685250425247737109125794116064672270837136340730538452357746219483219077327532855752765287114866453909857786997291731919397610123630477048672769143377105065258416729151765476243505500317238814453782056622180696544345224995423282308666265871087234195257744380622411365530532848860081917464168816655024362644264702018337922552452933825920161287495445830495600205035373901066999016065548508816094610136924665027416822509386293833033556010168595172037856050090351807983213538494125938751787826326420883411110227400925031452843340578862815579090858438859633799806274745259506688867274205537833676661393890395196950979643791592892095421486281404079891272087855362348595942510956479814690596203519760121408474278358774454039714907175887696978572318242282134896119014695257708427598328853168304071855654041704151433028074628674866613791413706320873644007951007847829556358167311618996059817120122232267660605672566251726211793653340225850225036274212469866395643391909712887147392059108524543556913448451729098445379392208751495221109309127473290211369039292713288425399028594322644993220316821455447992670604875707117832585070010188663699439090570689388678134551375880232986683028204642448620883058512162050325580845671614161013886583873850136459879995791467492279740172291173438196901189264539845506183644367188537573160410199586106241251552128155889159931432597877466693954902010294293196837318726501733058851742680316127259663637709077853411984800147228791610843628365669436549294259233119171076533283775396084038918883775769905466649841612692261226795276027135657578276408890334517356982195627769013078427243736767430779166990112229849790295073621064704715611269529840426218326358236078123393169129417744001938410245692695721196091241437212322808277889772116017108514822842116905364514957491123178541482889104054305839927238161228923161959979401621739767173759583421655557032195681524130414145206824881275676648000918096655870246316813252389519287483738278611752519390021177813295950445556900905594137992739827018622020891819397900159355116115651806545481070987355131986856210359382962314115613113395870774212422563009486052365360783234047351810308463804153644597562859777650626335396526515071109839822661441421277864315991461356633768833529387076824840658520250460867661536880363539926681585379311722554174812257615108994435145518675003126012375787002806903630226442063697973922528735894099564523049484434373776229574210080148618265565328576451664877129601326180822336575509101225325530200654274415314961983914732933900640221511474876091539094630779692161363048999323285043405982936003099926731431887483665678962602113059100900139445374238735734343849466852868425615123595857257727291839685951398364807804645749356444202411471033447619841649159857442979497558210900653784583725434113815200951832811693672362454599090343217370298460240643499421017447076888679433690645172318007715009805375635209494339715305953497932415763728185522708128272218073516943138209867175609237934214229970890353475685986312844477377276692405804294703131742012885274977840179060056684074229052045707457894843129307484854122850236532390492934292740707496634061350963791973181271369017897200217002389843326555595014856026516607577857453466598402351881118664643194619812435581305132962793020993296701825875079187006033619447481042117956555033690853709210542091515741429751358329270314604562122373343442150206186206854469372558064714471553953117401369373955579678362448579167169945471846553598180148659244110032202737636331575262349978299141653557804360477179847639987139403233542853788965693143792728131843649622382897744944182407786934515106394929061062163132255556886609749799126953501779469536284449861910888813950413576148907926027741779091127333820565290388920939071809349228471433225175725342952339632338555318828691547073967463194504307743563464516791544087481105641283446769135514830322245779685269391833257404303405335452880957756364318367239368198678578306914940668255120910882173785922829795077873282589401874056616922834299396503689272459252632142253837847539047427926076576827319327664005632828909910423712602093958337896939016902371810660012150733330539890663608908277722785588680303053315666411002778257311218199122771841325640803827370729918909742240793489028595374903467730093634787211774076358593904301775484992748671086560081653118807183743620312767711194672177363059581439667197959746337160305514828950349373892729319083879202173694045671075805890367525314765992093587368839439370906455190288228865689780958384402774850149752591313452766092287173883955404043105605810031925784625331037236243603128201350849577656066885841172482630074532347901749899777291268946893270964100266014657043559132411099198654495379004547156902687780887223142385239648559375944665205928467973517016968719655766188414764017757459748518693716992754584820771570683670332494627324041740550624895844443656805819511297724163018532863728415351231279500791753571561109554429255467980079877858913070601840993789793021659342761139261391866266546303709023332883505029730787434859518715494856155820101554581681272211049186589806496648534046234689715872304897008810979357318801297645839557795740864824704108245276409593492322488456178219855818732234806072560492940440278398123147935086559401784184767257421900167425095834709021019779799530180332091842727700531419623565797506480736305956191032298543303727554105186742987055560642830624991441806646997750356739612005721368633625341805318748174341774141570508369102463353847502381232249202896876217740286727887067092495118519054150000524326969937069774428156969989061633290805401045191743531487308606604965011027273789018131662698612275247192029380452320747428195019119791262338817710126840152754761216951683738278787980024671878211147902157315074307558713895584319647504259474519142197633536913016525163801432393633903880283843154769937646080837456930332302414701250425449757129652220499736033083918635932973778477792326664297231870730674660137585553167925624456298907052704354276286320799695080414939814477195663950425441582002458560980359242385128316004473079633277419704771244645113508028809933543621812363693138812200927176329145116422476236587289003070513724460527407501937212299376094198425109218076648960779929377861478635966471392407415587290093337563570490811545817584465315666728440329488074923796527161607082058362853335089586470083799353277275685052818570532513970749132587131541335420872511135052637862798690242830989009543189315079309545276978531352097004201629717342578720178816718609468802135730848015026982888113040099098074618367434304693010587534481138632208340791778682034467560595689794520656155326187007330749003886441004215093284661735800531739408473709514543212061529558664834153720146413565950573501852649548510356295041238887511281854727810774376129233130315563899513180198029848116463331068335057039927658311148511600974125019355698221865105276867266296021817900430660857114727831546347334082926418269792693348669656567759671606191333755457004531576462119342036384143002711077278975548236086258956729555041485941296755778813074870595116293051201654991326052414235598495939385645001482665668571513623575229676314855227866329009950630394804596305005900629497997267509491708057840948031823477831889272984044769634146432800854863208398626805781123448991394290041067075804225215748798057628033265591752992830952135596354709327112083874405065156967382733115611250537967899123961436996973368684841759794551227026657314425757280164482352398555883723584778585114730953843592310774650916597469382290327213137692666578341029061710902107984683226424551950124574087365159942328917093763763199484832874086841828816303022057381459484519218220641186485728985711335926366961838949958090351316125492493343644885814299177163646515887999545617871597590536481040781421800953402713984462653789524635263986527349025568137863250712012450689002699182594211580093913412909681306454566606153502257153964730565108879726882646530346616593309756913955798323460604519293463056690680975833721155526768862944410427574297914624114367846824227525307238584279090764168045518426087526137198196677849033841473433521953548945994890014807734442632349096748885889472467298476186607929656172833201400816551726594918652461522922105642210991600603093438458586392217494646644181450196142861592208724480082523499284417539468467992790558312000305195420005592610798472606202446895265550293277289471760011311046264692694648268806204542573592850523203958964056452151607983476444847069999821986111610636331610011589932049015741500149015621360100061210084478597265821255144353342219931693299302686849583721635580761271933108578240803973618593518368891073699754782965186583431449944343940683210682799778896104030309672695953883194105178801576321516077783411615321057400830621290241967512723578757629831204776338447822544979497129782897399920696650973678474393252607596726192484478207407646001487076611320337566044140295834106483565797655789315904461685879449141617382997118130431755756479510830454908077320857878798008611457411375937365466575384752731589437392425759292563557764319241761988986172611168077838793246203740140316210408505874417428204511960862221023137381899555825733962968387069657838973916849536249811063378444564287230118618815968060181762950850249359261515775942363608045037337180990966277896615280174612644613667773945643644727953730295821960024984133524390536120215235304543738251209392080202999029052364191604466730656906602236618852592161850031807078843395015730698715368317838346706274615414493159405461714625348822094146935883490901565783001710994211906194767444349523985123052346609824942746074614341343171451576322199161478405951241769706113075813552309275425240646905314210238527199517371815613949069624481934567653588186045451042015576723380289233157952734120679977625110655821790801530936740468818960869813211815960210379848832706056057782493008746329021846848637001387892951594362980299708261769111717341017066605500834107707385070802202663005975923642788255626731012964135357464271018793272538362206797112668435663272573912477469654510437057439535925494449459617534491897371106261835974319423281543655674143875063865443229324938959148156617718021229960036145759159506326453403449811285414658432039218823716421901058091376121296676394519196063108748845185232221501903704461292244711513921005554333108706083889234644666739102227149721849795400252647809093769976744475219602319032398842036487290086614502902711704221068658905819631540094774952019673885567203924046633384677893931702332011193750608248448663309822535688168789006320991913012932162247511624732104375784203876201211770898974177081943184087930273302089103706284424059261383795697273769430447764406904837828948638383509727181517926402532703443538453302501636350874461796627414967929191975357964279300423631191763750679898418753407588812777798016566521204253765906889762885358511325868927884831647245231100125792861073237207363964103055176080641184591754081931860335453260826035271715665853272002856350637796486011225416800740262270015051143343343952683290675891450370290040044444150841258252896264577336418193789272219515673167172878754913512293566298990804387694478797587149260422019338954950192194542712963894779599190063208994245237823683395268610866136449877340706572913861524620564157190639451671378336889698905053546672744403186419241335521548733917515069642093382422148651189461630750324171797051813615253110928180667073634716148768371406351624562818511896072988601574651331732287662637176706303241689276857381753045578175174241398397609616521474159252182303212463565216362531283888331766565341475879754815246959779727560824825023485598692529468277434324656428314332962931181967813321294172398952094669281492468962560219729846640078468200868883218808936908497690149124782926276388044219222437834067310971297603613346480332644347309928415966559939739720128667776309884315875221053589736187511422283715518172721316689342448201388473860259272686996504612607499444688403773683002480621181600899033870632468743564371512218250523851564134626424386439198641875451564686302586801757701395076691586528444219650800652462821940197507708861460739086837276841523089022127491264180662981531234500047685806220293298629779309620728207909315660142015283742626240908923983909393377230284054905252640346769415842976142843907526780608586018317457148316620251156717351457208250878286277137143561184134380106145133615889387029272105571633509519503898626396870588119138373407057518959581183272159906800572747749404338564090161311956678270341344123498103722881572229513143752335761359123356433083572729508362371850053153412800272923116407393723389202601612307592321898095856371819172995197064073509756937227294348110477727883253700847170058387649687458893510319393539019745140679112959100022960465604177791075750270594272738135847491017681089426963341502504198368637369478541229155095861346229440295931324390310100993730762136572534387731140746349141944412586907897807935368652260698140444058309191222016269040630097856745058589538858510180764183704296992742618426050242952653558381672086142869776454223108839810614928369302096718311801876312910261203564037430584299363828203937616705380543265578449126111655903771579490700960596751278891063676653271113301135770103597170855240719846984484468365602013574293022175440486083750854616326881237021876600666005633800288459795568224203334305683083314436863967680136755163507990094029784398790907026041955785004205600794802049171392348277138933133139113439870641428014642737530310000971796135942619761987073994848105591569048338047903220735850249327373845750376372267600396392335585254414459961947665895196674111653548502062083109400150395339899580353229699404276345838831711303719121012870447075647676146145157678695984369762765401904352008410928466826601215569671444982808569774689930830169947768006955052583834360119324280527880915632484311640861094724044261795762349321062968661904555122326866788182426194704630194450948732468522385042112034844530285667287226997461830112071612576561379933941269527073201339811841366248409352818372462890115079316414639400869107916761737468270799147834599225610477796272866307838811868321270989201830849710877309445428396957247151216386399555643816611385458437964700589780901264777388310439030633922784672222118082288512988596941243966231763219105722249700968348927606657433507085387066737509610399860490704000024971974524997176985558674134074325917066717323651731783087541665783387852446060646077734457112036571253624414613944767898133505609930966205307348081659373052319826057784683626520995706001346366609439623675761673830325717176200412931098994657223787929540295057872992568315558933595203376110840275290280289456062853115474342799249206612836404110482226307592366716125756763231091576130807072562965151712331342046448263427529381624450401008832772742279900753684569550652846262238866485053461226557000106986555124079106468525209615623762667340354237069248467233193136531548470306886490693430257966747342008386479585335889694027840075923185575111547921114413689177943600698887232970359101253341874830562940291168475980734039885993045138753747689140231011389862852085731449215925582575929027556516783682741769559000584201091255795082447086063949815838138007146308448901187639360769788453524316482325415486013263440327295385778630836638583360796278329009121867784446216016986216002491064060030356745955439079220124456980343000673801831448937790807532594474784567499826183820740890472302370491637735861908759743423980344327005434235713087754395619284800814099660225932334545220532300004926320021632571567565021969937880265688660790222861977192343161792340860048835266991121952557027727848554979442358008785935256691806364986324458797491663737369761375140235542541650750262977753301694101120542534662990610139540121736556715903361146760446268912127085728268637423720518058959040962297109923893887890284808400879852363185089139920226974174948920970549143945034405633282961646187933675442268135413672213717799846970626551922098992520392933343721555327044545641717548671799075401074737019822540738788127292718552233160878272224135264438935368550563924216865495443982966358504745019224811692400154335639173923588165892127401250138018325669508861445293661580462578368384556426193867257059873524471367836028525216607945884100410873161129525891625511641937660376026721747933959886324948138701476693559069828609439981609751062670621545148082519599017220597257429947976921982726481395596411891240058591311312382864885616152590331903839947038396082499418850059710430729276082478683512603904990373447560054482054723553332599912611183342445159749408964667813617511584712460357596836028982454150376338082098779554249408196241815266489143053732595995726834645857120085494421582354036748525990823654312657310055032163301341797098252066246613015910231063754001057968202041669635639653635859293189042800984948016253429978159737278510849446271670713432174306891828365026160361685090306865141059647539509832502737543146173860090901763295287281817411155317618609540691723189081696978157463674454571779312474251308105161986715919366005511273358398578009129483242358595054212290358460933964800417793366422595602163313760518448704907195817432339052223071439461097030432894877934335859454204361049324799075061915940329389038241227280517037048547070709461680149106182529097288996549805213356767963030947859603661894130168590549864155593830528542528180389917067259729843115474090884865902126921793542558900689196966051451569575261757017764204400032871804302133008055171821296326964309239607527776070698855517922440677874830990383474511772996177671028809846541052517361905954206801827715697545343534015452143551875146208615736212621639731665338819703706049334596770261835343234687554645903000477620717255179007097158907303820069280265843653107723589868292273762799036593769951039761395862149516134087423755168491108976506991160869511838985736654173839536397245446910887203648795452739632643035716875356760743695534464775455408261670467982243062962534964511820058308994446281457899459664323627477025124681394163063662527591071908275382790947118578744767826546658974729296061507977954328910199877832376561653446040713185887389623428253122115049119167453372289001421055769649246533308035747691956895540107535474437114727103564060613031459786722280075765102310975335209262575928352959083390680821655015602062179984244877039132360957155069585186558485843936428838371418451958988116645254255545003496401833136952413675281667727457077881065937617653121423877822567360574711416685827321863584113926690875215419505080171494869609059103133868461822633757009839874540341490384609296011969380117903744074635965644475746867767732363139850575216007767385866055893086428221531165289589577854679224420938234438500999401292837003371186237313930162143982684437724829178722596793870987352729794438812650574530535442113946068225862377287907218307700953388236879776274348698745889163152837543194117072390768918879341229788512660296679400895692170042968421308509609296080068083815461602071237327930732416063475891582403998630610300690712883340004550134377848432562740020369654219107437603276893684468351912607778646231244267735331603441598387330321545008424273506475540266743481488730862503447088730860928060308459093067782740962320655618739453371409266145978053754304361892612092451904934870683634589566833275992459157043485223892911283859514699002131917745630382006478814847680987274915227162600972238178053602284775585452941937074538002481484318108691031272679653975758021789002962872373363963433908822734297334023619635965231574524861815374322386176923478855531556365222827929307862433975563464625141418513985735888170355749562529163055118687165871024127928954011633938327200703208727910044726424136164112974067899640678545749366772853268823459978202961381970512310070480005544235874990204362149804713836185145025212247160264167955851048921041988460051422066122791539659398628692667994779011348647333839419139501262551074158743603382119878945540049361915172229952797424572516669160534917248534349226439010574324309830263886051408378314913568194244340100436951645214072436902706842698071603971737089863123937651485201057722787089955001986632788329793193519322152862472879393268838152285371554338764787391339912135912896932961672274899413398354254353565050268760687252123371959111027777581920990074679533752457041704563670223052202471896520742396650889848145629723427040318441248405456350549906005405868479202121878450353071775773676400528903539645044900375288061654772907435013855152974957037965350533545903723122913350215774990135513817696108919143995204518261509300030714953714350297146133332251763987131355937171322226152825668022140456247770924110255492527611198949878102476915710264030267000506831988881095744448678420412457321514869107192642763076879370122846879164362915182687003136829792402637425684377575804284759777273097897515102903350848088417355513531400502296180799333090395388574040038921411036465210925906944937767987264617266693104465542040942619373824083482507869130456405685952031443348189722163524196542268668220213986512753517894978404986231276320019593697362392757978858965276823407455414759903038899268252822424064669388914889354109432387330383136224407860935231926612532373176052172721001839155625280595341062877906809114493273770031920241936130648504846328846444909601563209114401827963136326924256995642570903890424042101700075996380721904932254455497567877956884749011356628684378070090314166280738587440064437005883195178675952033393332022469558854478163371600837170432924841860026708637138118426036552878187500171620608115643703656880581941286239462500371411232387285358311618432856364270534744814809306930077805362735906359495821471186922602158385994431154175557585371192480483198061513073411558221503268010561961807888631894455057074226118199536242389641350279761776590291969754187097893857562148927487753529069840659386987280278443516671419457640072398188979078167550403057479867122670611800379435341901542037219636172915180618424800211100938181234566810961701347730895209019472081913057028764078639081956762994672724178915905972910441345041348127495460547416283199872865667202236830745658433196514169064473366753687025376524897236434738306308351771185201842695326787640704194663749336118188089629684428553214679178615554462443280037795501615100524271130443165759651872794398142212333839011668534368416304616104774163300060597236874319126294666127939115955487226203183047810488912429204603000707791526274294949967350146287413057747745528604309167993635120746718455605114562957738565053664069682120081768290534479076770410064424769774601438964703798724914273767304166222177290639003787068662324581852429446033959977070000961511505434599999643935242022460737218541092268017549976637526206428613698007466966953566114700479796996692138978787775028960712381852789107235704766299186616046093622909681755925358020041341876306834312243743101481100845700999340305093700896637684069864195713609615548172126866730914675482817846961561600000588687046783841700890116106437712055546328457120552122055061271444419956220521340546525639476132865218442006370584339686487096656587639219452267068988272524773699085278512344394153588572797201649687717653108434769673730582624733447683595963088107599240376806110118990436044843164704642263621150957280180001978329026942740745126005705441958397145915090896747900065516426083214615098727788067555762508249759310952233024477019887308884282522080652900707986737724589432254139773213238365779593239551336978880552951905908816709522653560202987486392668621444150621125868114076005285044246907195526497687838861230587362057075999916912124259480570186676663143469609482094260172588293130632984827105226736708478590556032829624211047824041182221965163996982501949041463269107739456025940802317101476512182354125971025242683573027433646215300864376151227589111559904182286207080717595126406756102067303554442054033806861966993351023695333202237204408712897170691438219270940707699376386335178400111592017764764969522476950790727200798803875651075069263986196782276190079509823368482179126700802242563188184370074349671855099021126594369020065611034655673166710875942749526003417957659073507776840445234841107241001628032974089696415121719413539247954345574282805650163761956925888584703065814880668473883348315421475177154437911220808332738980549550919781124618519171238777429508541041771552128527635578501441481732026159474979012995012326345244063769217383084682293610676659809851684774094986095419253281257574248525394463889370786123902444959081604291300567304424398554991697601698418797186118529429161583967131717795404898586005256236268834828158326918218010565272850901323200886480694409652889427595701418858162195607810253592228512877891653411111781347198336121018480810428733388481892492727462956485697024163808182651510909695222053807010905233737183337013802195431757039276689356065638019303139726355729433627192090964505210355374144026869639194345985895444126166417185134909373831284115856450330311807824808324847585289124314160748250325472856860098669006621463054035657882546481669060008640323692891406133468602573029360987122459395515235262906107330569180785533166437238621943210564870893688276043129679379612447693988604837563550618126275006019334680661491555157227835659639254987104125510530795507390096494131237948922100668884472090530340200422924780674092943341145779086483727737181860450602193818625322479914791292288150299797287721021987384276287863804830640087603412998655066448049373008887456075208918931903954693534970036292222079158456561574296650178758525232040278674027993897509862217961714686805692358728257393594413488231368899592355737048973353959968730498393198911949237348498268071042645600466813876411514780909838639342441106360764583370485693864530903855084589490224302147293681291682439108274126612923737910777218669212597728760543892346442368342805122587814554315779518387218946217799003914255675342116251882284186955460213207369302036781792689035467824762861619554488027574180950604726628581336649519135400731689469255967855261222063686431870281766331103081414500148351320656563202732571940418576413036151525309477079415029771378410264199959599215687824093439557229156800167452721332969429723093218201047615871924148698602825498139931951735071108851996649478550446957431813199698551140049707533623791098084499838419749477824096873971447565576022386802940689624835948203070761638573047084549713015485700131211235610554241407725517655498397963456192244865890641819020008018741771059319305344529313643641953415071533177116464586325923134082794355425273795826867896539238029255899926413244454277694022984087581374695714647074762941582918461393350199869392227210442196452442266012487774062641395182821088023140379075463512948131257529894132618957778155216145348312452758940207612152781855612034425902069822280516748776592635490745398743787938547021921906851735761378960708104433471062834911001082111450900353923332741072484132673824751016860418008834892316485289058307804077689435083856730630426298193193390986187404420724845905080158444976890071392790880013332174457968318010694561085292279891653233760693782045872304259103250490657196254261397117637720692266150505528483272627539809345837626257034298687524065469284591917700684008149985848799272101255149986459933928579895550998683988204390298751720739139772676505527275735422113861168134021752620644066372098130398136329319698893358860664320281690319345568266577631761910256561755104969507245300954015876740219756739120896174884938117943487370891791288460664792163621058201840172187123215938795534071718978327087436892963943350096604195563992996388021978255238494183224100433089228829630609109063692726078088626762993048059407838438987342778755191749054070185941959779812112016928133414605410041277475383778192131770427186529795779250361723721190852625314898445837446937184061499147292116163061182788862839847477768748747337486164790727493163769670457816735781600518269529636450182488587605090404803749325204625562647861475013668799490359857881100875448179871889996493155675206673141940243120725622325448158735568276962613731254313083282260198855457191688284242484969174681181423100572065631655274436018522872325777890953952843786539699158591308617930473997988552351110812677513660465994853445989158221264183345715236954199206547739548195102232764495438813313923913067660713760616378668986090911099972529351797746532617389040907305822037144028575591781718457187426701916011077036788322235849962726901057354599898680958783187762962600943246494569817033544596740524442021577196392358756944183290470720389635937099540681762787009832073293400508896922733311488772113352079219099440200485650722955449547127821754134047689344723486869431343320105866227050877323388799574960783631838086369121694989828862453217374490311223677047487407428248857877344361102365742999334309100694687476018047725584725132146689469060872046041788150062433003141794387372038874423379036146690931701196465799913898273982188914370356223334502270991506214760270809140216312846308523729312294614276548322473307182981591808277206476903825186574261861329089169754385990548892311973112595593154136107980018697221864331634081075262508607148248730483001910033666760209393041797022416514707798295489666483746036832994210029330782024954736511088815942875513265178583263227715961673894825641397679067528995701754697926876991596474013538408475091093160333151069369420924280037914508450355374419630964278808554340927771150606207386325236604832127160401917035064863442324695333887773659783561702129580663616928392220057726944132893111836334805454750563901053007371357374001521975496600479241416910513756498924755796046418360632848202895775045591187336558121307628248205781328649446509807303309500961712034824307568814990017759740122539285239234522327230625527471906616599208656403428647302715954272787455029882358317975534646953673115140264738171221737730969091135570899547367016682166950416930548682076810388604325331326946101066382832024617139483640705499171789341772308698259116264417572898683188123721715300939026449202663215165294365224693151002464391078874396199391302439373841946011883524096867718040613450643974805708000937746210681117678390824052709913417036118877418885692749584554501335167639275675456700970121735231917206203893608324660686420885336504652490742880169111278874099929256024671065553170270739197845402515604363268375280025143321560877577233344983462106460399756561967608132514598353171882540735295032068101793424868016574145658404785994010678131980649847459832709631239738038833105977393027289064215168205334920681529204027120867944151348027201056240258091972386835265205067056021828658802868549170012724175794494126615478280307085007483949778186233248704115158882218736875767847900390450324500121285588614690192860120073946329436484995534595244063081351978137780636343787211415313753609893667063418287317478423876226955878762281387441839234418940763401539022256832926715151898335437879547388728465700053209435362059623139892174177886794998823296857551431706859822096307418372537462454880707286249242665739365167868283917584231681545667200752866366316313006661556936282484890705627193762235941551640778268756152640551293416282000895708576377092493211199411525216779677357427958992917236123117979435698440750859954475280372288094153501711730470952327133199560410836776951060496689286610907359623873760187895056158438197933939412810556568422222792667031564877780237236334467372328312425844276544228984951003027587425021313950116734401857360474985667140014618325810392046624157975192085420760484764083119293009920595051531391737111370575355192933633377203554205953606123924646339443824528906582997329932807842594355965902359430620566312222371520434990046512049036790573648537630229440968503952098193974813707056480517378361274393561828332880849304483719615307342973943754232078668255681387314393999857258249611800361981300851841572435489199451408239908430196955179949150193975713782467110097965823486359579986448248849004079490294764242497192099335283219054413592279895401671539452448773713350048077815013101040765528222731228361965290502695110816521005798780730767729835800636048554613519204788709436608091454947283725054663343081350520886582736597463493778851711987836305479463147427230437428462143073779139755387634553284463767919298536629290006053203363965487855714893820226911947490848812628653974638635915409190635867923668804734677424230331281495086333203931302518766677026114840906748950578231086354090267064435459063082712071806853795774746964401979268885653155658135765003203633962350150094777783736145507058358462241512411198728281980660852800237009595342644115780612648264572127871695616160605356988619716505365742658894835659234644581173050478760973008766550579976584953942185029143543338285183649970724099608281906741693673853238182012064663407627277316330531279880722808972111114938486292514471429710126620544668151172409363374979228426287134746756771869670664158887631215912247586054573215574347098719611018001085098489181439467873174589620138621432475234093501815615047411426676663268750877790265669467902219782635360954533947475963638883991642805404689932407834148316700362561252414256703935480311211025247521608437628663556926908999469799412511250113204630609783479413100819994158183491386996008286199781099467302836880560597647875137185657619096769832758610767093791070649990763189712108551056819689150196817003141076482490068870202362200002009466197406347838339370024037733072543388493728013244274032488179499515211370793743813523559429216517420687111039169926441901673368372197569211880052285268567627192903270650678234532240605310769875005998841994000389128777054291208323889683509847961854996463585940512113792935502840827392784758478070917986095978319523120317252657631535231812890612522231398302427103265898538587338357288442076643172144604134558920411980384980828552981127934593404938383644755961340905239920093388272013379757240445239732115107514776602632588155970300892503321723289042682115230270090400992414123969016626256016427917319155537494527633887816517380019512439083985002914198238182807102904063702728476155345231654123253063423264065867063381286511152096090722025799701950487472734139061969428986144244912229865732277801392009047898037385320272112388713425770864122499539659203698954163561413721377458542120702994039291677942570058716609963425838316819023606865518347396509594946607124740351009054585447768645666783956576831466974048635405622878764540140724023614158510578895291912640778524012183432648878839196420388908767152936517629595611299817302555126639367056125682760808677784305326309807304166156745350265476819344270513969286495992738057655495217192616055403005936876410623505260408554717124545923340689562380147299713372631873013401806851654613406948285040722435215883372353082175653117667930763485251711325427119190991415919889199920931593849702653374813614044975515830187964918185155311306236162162873709632931047510213966983041583077292510534337878990762384595398565064894436840180893019253648075657282367445290227043924442425700706023369114788591016224095999149850445066816449240411482265536190086362044002220144897452502580684249110795174385349676200128901417533322638690031664599718319376528034845569484760550339598163579250165264121508213444719571881301498907620266600958558793864545282135958997798324784832083016035103218156708551866589227471700409010780650322964045601730969686052821609131999693148108956976985829859670809126953045639056527386832872709274615631817333584745527645661384472172248089139605463096242906658663316264101732028724172957385239165134649429774247446171047301800634640391864961562916546218340832115362303901566082860555893869675228680633608463446751028723446260508508100004280319219567519275611473360940082844418381250227432213145202866077393181821838345469038188223974808168953091929046504988256792742227248299700726742164084802411542808497528867249151786636958097079919060125012010815280994800007706166148057250946726777283995650355805651788423209345060735971968424262749050026203466151583259356181723746279751493333876350822565610550736478675074401262500977592778755136716073266815918175490312921228405941062185185575998998111761811843620996129810392207951078263801628929543331926867838109398233871345186516722849273845683186746499111866939283131382232726345347338949354230219146769996094983847703110774912854731755932428560440821756647356094961301586754555505172946514214578081023416271424854511022578074098988814157820258308277858368578310540667056765894475137296240736546479991786560137902283097255230340393241724919014770839200839079888535603849608537621588447102694455466826382480363497447700348587006536504652481689071682609731201104833735474460513235661121228538667497679922324979916583653958089816433480890050979512188246711455632728691988685257853749708067817546188247532830344478965190487188738677738527825886884924891894960483901917085126494444600478574607867331871425056070085657277304186186446263525401285991372027185985840541916741776997382679732995838430077710572033608585688860688869754545862250045966546228414659518700832203732362617486766768910057874980934237646572168714262905152313604140131586273533879536073229563573562511722986404808174263602224392242395327905259256509280420947707223504218092738970725725005641169737172732693273490505203219308635436307185132745708383121369335844191052451369964329806620263374568586112928173059544640354734431845166024594616212796311566515146052139775059049651895746146296966059348643785844604951362950235360479751010114968717163240126030066354457412640608682679099093358593979647930429382820990996790748567139175713597875744399633420416913724087178264427309201933879900921709407694460272752509573389823264464467383451989480137563334634273479876751728928148465544412956585760683921885854391273209800822846744203106521272265071234334696502479945499969567147880733312674144148842651291264858131512119025877020620417374751698798445747751077887407067965577082739064182707927129736068962903746628428243086704785131925768880487541639441956651557107631565537265603181763819152116648449871139871250795338438855736881708681542713927584652578121657573312634475541109871451879492978106852990407810977658139998391406835829935472135891073563738591624904807434452654022665357646516957555048922351068609074397206304847916087731551578733323737767649355755459548251414110158739663771914972197909740630722693525650668267760155480315848665676886070237845813179024234259534521615102455533066714995195682245070650576004032259794817958378289655327000771186430691008029414850015967645394165985790226063328779900384125888610253315291548449166324959106159529439253925222635450183061220535823029020419043049346303433744760208187458483876339474489728904097796487845902356416751664760146619659622382075422206951786581153353089898230144606199967047909356168648444268457665671219327739263478790915907304099117067938269624407486424608416408502177570867481476491201213909562075527202357085084724540825929623306380852953862125676961724781103221963258898873327835957011432886791440875772660262206143968822978591598574405956780777265542543577986405127745671116487893220789547158132935004170618904040355232539082282639732412742419917709944365546126784162165960319904335038886044760901294063365801824304401511121111147267761679180449516920601009444439202018459286074302980448629211190993018438565436715674229341044462424194784174730111954301672396173016749727536107715765766899679258423996137008125574601773492838363665712843874181255519419864250536971611959841777388941153040311692571160090763792363177242374982319489506958734082821048228298728029023855488890123808207881035549454544810503994013635880068738125046022712820104069237925272676825469674350758358544645544173571349388170477449968310931349008901678802001457691634370755758520963801895152620792893585715427183471980334932376721522826500340621467624960367384140344814182710518291732729869223969488594210750923918625708671314031275400531616636380616970175241197044462757386368820996837712320779298240128853199929055083540787489647238590806280759925109807104201760669030931648154297354013722373076537047818295793839546790527733311081683948253192087175910734465571367551332437820921947371193667538956716723722415115568912015672535095645049348586628584900543201568150743072797258151031446219589372145241740486964012963924720030230754070611749272650068427852215373858839728516401928625387111632882913816162228174616440810893737926402463846149137013176802042849162079816831136411917515911157824422869370019864732075859892205967280246193618586714522473351910751546118776869685053920697837244555902243010218094697191077456023606841233979982368302295607983841575059346500725793541392207737316314798133243320144361206249231541854496616221535507600683507511375549397547472586047580699853665956814416997382399931732821359426536185036430102400034597373705124073150211337885155556543980330345750078328232375525291852758561496420680833806201363749577197974938452582929117075455283252300638429061148319637887617943952722424263351175068408567370662713995724182436028098530353774797061167108344582493953035592019277590709508853262912195372427432666070066879308583204216082580512102042320557896783906637368071227051547902994019538480934769371783533332359319916298278274979301789285294767393167990479291725494415376739825598706206957589818662871819711260397778698449339454979816490370478332383262187230980812937816529166058747536027660519567518597537440033282718411844411881145976534853001553117479733471454659361637521608140929669568233798129140990112137333456770165684274594986077976989425866069925358341961075921700535428752611003546497407188350379869588950312326290972847422213225653012661683046985269628889322439787315374422784171148012269098823513900344304475893140890164578673995129826747098383146539109488336836499338083904038420249940040318717716460284111386805569986553457345982470528399573436094981625113210774686229716694156464539429434072953593525984681143809855922506299729296397001479393512685185149026103053356180511088881889394866958812910888140131782253538842699332096310974420228434226638862794711007966501274403167731020808408965184278145042303609551658666533272433191957985950076791457542668149766920262274184332097846780977810733418845978317379584695077053604868921279106145930775636138798739165687446967472084229070025414127005062174773201190478770155703486770196079775431450681900730998742010103561971534000249701922965881854583133302884119927297749684329770718811319873987485834726506065630716520636074573734330008644480018464082118807427385551766627091772379479184632700097942622725231431415177735409373411711699956748801624901121315181959664366811013563874623838373164036303083855953000664768082082641904488261584266333026248939641517224491475962875035960680434639806342020732188820549756185529050643200402085393347280068427243502773780203878919333268497173873834996189124492863272182295171975766981467257548027396091520707992387628121217542446825059568769417253705294844580825964283066259347363778674036847468021479256312382483885456848415489932558927364407038127108303117392482709454978662512867127720936779064787407219456095500718114471670264224109092102508529714066620497992466200005920236966614727042937304591823322235267878862994849995010762891109852548163902825201883290931760458827337917942998544848920216955096908838991012368935413151105253603627847559726496903732864783960441441411541796681917389161679898596970457480368981289198505764120984100142774178014939238115540140736812062306891365854374206305381618521205122144410189649146176620203381479722653406670871975469000187976925806955988791575800669322856087845729059364838370110353355206795552521284994976949630707728401157680885539401288124387961407493601535376594170901105365354784553580967330530112312135680116044791142424142595059988605068282791447056437031715761558869238236328205783443902887599119076823189477558703934015277809372661995190379756659981198130624168450830212799935418156608350139577620937194328707240561035873452062485050724003298351828985363825038200565066640905022397083523040989151239631257757529465974692168381007605870806030766654203615530717897678438899872183947997797536461341437899387719306095543906074602009829854288000472102876475109736332517563203667496433468974677395506105609940378482130865917113562895992240572204338941166921283507066012966428211275478967236912217628489091727862197488558236839260484742813785912352095235162019629678304358965014302079054138527671137787996798253635730050884523755659664261799310851252634491021190890402877992767278160535356117410803283090872802597866996033983700516625252886578044629323483492033501340342669574394063030353611175122292266036462566064202835972263369905661158728356669028316359154550575226809007755451610017611687798417686253029322208047660954826657801157028671321974353680267984347443138593123240487886855161164630539919842547422225426073751255070710860162938740540598125856569072539720097744458647582306332706188634206413747840026335224919334000266560993279607403575587676024514287379402927704099606453013122359707745217641603858013863582699154722586442565561890290559296522886142017890279985188853182273770498477969143882677831909988053983261685779882505520815135698182217274239165049846690793875330666662427897040643339690682956786358974094380782152758138155623982862561939482091996807994551738026875484210834274379938178040667261072452126767736188314651193990318024569110582458918316536368661636741449466931392799704673111821016941640835792471834838413099900921392741992736273708366559253700095684563552027620472602511692536796059874233421375632579162516040831075061516846415218195075747412259522695203282508078888614730422909291252565009496224371118067493173967163078383442435210823358748323794207600224200977483032892603594115086516899002217787640969381045762275153773561108761460726974939423097906470681661619879873789109953800812376628770413975673778024771302161463922427820190401340538118964471457223389602330460494223744286447266839733845226588381809581360158778926119471046691695984707567027428299564121477661500966510092268617973744255384826549142471921836701819343127003800959319527338802884596262536655774552223061913045208222400624391880876471747519645644383311578602709639594739783409901229483415381463324504355012818147600491984914749750653588706570389540360156352729651406199928854588756400332264228369148980451252194228388960319083780622647606069295925570179328354540490213928321787080973995882753138838732473447556228769692763284795662169652444417710513891625029922233587501091957095743864739604745301718041036820676141203092335254169006189174933672093422677628617930543429144424339774199029995387610839455482288245058210302323489274962179540189557741462636629964375872370669064214854079334293357652868681111931024084645718683755005338706136089333119107195956513935041743571627003908286926106697257882449673406828982596768117513189843488655473996367924895679817992661309412051364724051575492761717876954058117795777840992436574875395466957395760899370143470554548675157980260470687787111617282384642235791341338733078881581655291616999047541785151591308146285265988919209159015573477978449974674858357326311720092393309913234249024614597767580436912810168822850830849052005954397589760674434311648206524775785019282546008177098312173014452810788229254719587668364664018790475245210283109771140048208431558965948747515258660017755165380539976898623444893152660451003123642911104237344337841569335613823061811691194266597389740469749188196360828129455685527527450401435802554377637075781445990125038783359662826811211000603508240479177148946674005351443884969873495346142557652407639410079365365450782615346920375493604208319103454925035440710428130588543052820135026847430639474409957249306093058516125076632604002479293444378632939914775969667878130139923028317521627824175189188384359646294207623125028843462252253080107456652310989065346280300544415909563459311877759064243249849706502406012673129422834994040268315282388004128330818989557642565531400886541023264049041101135498259047395073510045967164140428738268265982841597226359240272590844479301932061128807703919345855339867901293899960996596666378257346486919511554306458416502249968300572039272463763343160836780016192366199515222451635005128306050440141331488602120127761623654623869607420138823337934301792381472717923064166646055745024070716710585295105406429182968825979255026512074120750556131360733342885046040934502116365385679198294590422046182079332582332743323779618735566990519674271009734957146312284582529418219187405589555255515573536936348786422549676113020110626809440653165509279911835462125244786838659625201794214529784168917962601260814297298507789390794196919553659037892958415400800986088140779395197781044888244239481480640602678814419431703059208188870939999541066054851833137372916078399095834051830847884155583886573882058289046852684563531344687805192627135298472846931159329167650903041430270987813964999681404214698442639205705766846958854081761973430309361425510547774353395174413882437275267875084110517395114896124749351999503958099945948002085395498442857946087835816788209860317608599776744257051551353239597418902252521595858759834117367345644617957848786126848344783226308671814965440251372445777782696950218611989028423387153648184369949631592587212190615614941243858091716290483555422517352038508055258051161442500403818308999994064295873189554234982091545874932612174771160954744820227334244312030298326796920980049208329245427637030636762748921870916609473401542818527807508553413611896788788906076151373257845730459204985707868478684438086103494616121335872507778536651881288226678116862644892819526735908368200892238754080436524710788867266028838244006164877820344402933633340855166352178047611628742128250726345435958425453912051031305778653750188420845456023623430902264453540657645750951254460311120217096387652803273217369480059537809706246352757384062255571744172200461736252901448025035812120399652629187273484971993165441301939442482533221045735465219198176316737499149536120501340289019793633446834411628740775122604455147248702228525552015465901850443366404343608371183808969489671214550839581316859574541253130483342467368697144896650042352464502263562463186751760057950375544723301785182400401741499280064020964795370336804920925575292187193760999628077708014295555321331609589902918473727635826022317611033734441370320818363559739940890503412416752274616859162820308611965572576717527712596765968451837319018554490454061770135243351191775070128006371785399277654864766998625463880008392019430881961721614195350840608539752437553265834235481041962920269279692811640686304260031577544049931470387512427157086193907321293991996658868094948424321755962056381403082509168046230139609150964143167562198799629340919159446609193971780792537966662376573470790103778749423534768963207811612649119851406761122470586624532289831682106407522692818393652413297076526167035736858861743612226600342079971374513732766038472753937607244475266512733527310459090258706443249596804131864515657194503943968746739099005841878924618104178713420517183861347913027163658787836193797754976538288123991521485943776433526394155379947168131200906571159336668477057570195262170323962403078973730066047590158495836418917235081487226514997917946596124009400151584458389642970828163268914841347918627877358357852134191257298116494970748480834058316371781542530311418131269295766435016197038087703187713508337829598176397988281891943553059656550450788708036999312930809848804733255965719537695102239151113060029919274456446445549893105309986501899639494232520786289261591481815322648566321834368133561784715522386452643449721260406912966167321679860378652895582766407585788946229975713986300936242415890672692395775892747372726666677437436103954754958029034495333879949570080732086151944974287119310795302174531785158164260095957129101521602273279144538584427505217007428221703439658930129912586686830003979730146960059565411282415220044511660127442826623226660840573422139882985231645527524399238936523616862025266977618939635198850613237619603976920074676297294974255725602077537443940600821070865136811483364178349836844154171399146398597958963873522996432427963268380479350182443107646132685255523628337838805332468842713217887574145527604350007319157521227554803244117128093968028332318142269140177170563044037680233005411842323635611392534388304549093908507640986613070096647223783185131447263672687664386902202949217078653822326334816489268415394085833262448464253618923495047193405033086626471398623286127735438141831513294586290104194143603924755618196217327790020289873551877386271067614582453943856083213481876551526691627315099965170814456325528503491596872984169699951077970729301497486183652554203032377790255325379236877037473301098621086002785420262480504724081478242545450777931703865545291707972031238782677107964704879693991680618495919025457752814364226961383154707032954728810926743746971322809862412792722237489678970529713357300771919889762539641772508240732174316590339947730102989992895792096152665465641899067119496963529438006652842999003581577103386375875890018861941396786496074185822938201615175224924795095372565302052046710437386661616476225260394609507014725422053412535290881601906126784879887863163719221086292822022960264813079996173489760226310298437531645689667742678652619970170960580570407584737349193196010430953234231784399162726737549058714538997736718445923437422116816273464402220755934523223757698213493084905841051047813770245293799247029793699489932954855212167960410361191499884297444885967915743227468269224991831854543014556077098537435816661332918777954710156103833977730016584055261782974567680421143378999287259552147127230218766884103516197355033166448162485241428878466599615796104969876238501783620242461045030082330542566313593350589497804952840583397315157017770126058114251136641192169270651266674707728843815357634168836529320490786994721012237118921474120539986876000444240729226600554399809921031111785795202819816154010585033770921014970981352584731091286366858467893688651839837391136939054517507785726061753485740064655669711355738317412005012688511676945021251622640064964728755086534819455377218960504786434199458586231630005050126085193941878673270616074851925983903805270675799465887632420532241955797608993649055209682958786171003226139066699908770579466058149324118160017174064437019582751533755828788055457557127013071559805084644178701313313736106459094022644860053411538264421147071692425069299701275542681146267528031551019797762875295566274804608877190589214281736553243251815297426847610379467987612507880069336548943785086151050983123853216737876545326908840797044693053025896208948459090750231512850699013252061431081780922287655167861909070410431205200174786879137341833966581884222594189757322461186955000547605563579495994705935924633378555189619692519764039208266144895445833696187448683994595953031644105815571845149376728610081330709276916879402287728407980035903043204772444319810047356168140757841860653749884015978749576417139083274440515519978735729635992353959965209961864273123061386421174228441344662506918977970112574027400331709262159209177298788221161534714681950428116810683417675372128436336518286998348682996393798700034018064132383799427426813032191429490888796159110024829722955080783261154602133789234168574180758343804237205526463457734018949205695105980766974057749405607307010052751208031475780919046940572140796263233743483503088222704571959909850465625809784682409942745909019390466844522306172694483980133218221220531537036584242002366411327066477983857861495481764157895305707723959537855586788604558584769264028091524780778480033892716742056772641834867936578206489194923810224975443426678154762980589414277543369017398842608660329037936973814750681517067262732355420664990887653795129055420914881360952221283584036083967525507844487432950284217937041362955471058937601198385867683827978217690219589311648085748961276465589418257642202692669682118385053076994554017547366943277630778100383109034079232119730747204775486511987949724225142364809210624267172113577884873895243033137817697380506448446170551694978775341676518792531636418732459243218676460411915450771882082645772408947638636209849017851693306688716209949368741236526106741453209914419192583675087580740170707568530453781405197215765103377762589900289686002633705497350711928452049018974888281495121182401310833652127937285090813110641429317134641799224723519103820966241984387701109425873683219939904810914039268543630659447565851811980002601063029309350830421585892840189278267940952751287648864297563065851620341491951937624524695491064617109611263881061177341331663475667727771360413200421679878790163927203185856188382398887217071746460641334918708995544126263965394084265730990782923690394555460543881336146566041269562876249966318629582581916330932102924512464886303452887848276251884897352610723180816962798499665771934118170727340199893527591362339767505423621312184939825762656357269070626998485704793801617604403651877972063306944555166346714138350072101250208733486355130567679155374178626253105343552500431013918128555067599125978275872315962449369445982626187001068375160548838411188857312638335256568191801517622125601548895486403467661036135948561336961097966090057633518511097598710914381380935335541209640770524761477561981683953913719058410187940832546964316466946358318532390564366703268759383199424616468190311334226696015818137939476768318343164749885504065616889202699198798917752007974274489723841529854829379441009336297866584905336369335777948761030004014848071041527238547365010382751444285397846560585556374409759412833420123103204765056945242609371592689895664179166245447293737160673229753217756909362706679465342529564144018516292488110549452747883122788957663038386209928642390325411778199053416066736370944373802602170812814144903567830889423398081781188530289203811914252906155698070900677503011537369144786854432519840976254110684539085679382659421637259867448817491554684419237475946633222993174322212589265301281608979273541590577972913327540937125867647038423213575808494595662033005531457608161762712969995567093685869379526633408949100043233498510801880513452888510535171557486542385912330888670551543084455202031096518182581592122350999029285243313417965919065974248516357232114136619369100813047339468587489892035569829584653586025228404301194249482287214215429740190884879471949871183044212419455730194788587264174342476738110991056464077622177093556747909041518566547622708097300752725911665047763307970543829910742496466762793367079661492987906304466070881386774043792696731927480339825136770570297224776398592698374898339238600027925084463625078152774794786847776666668293932105424672158538170157319942020616478000374126407518965722435918811849823019674532322772955676562396450849498919210371972143407885197066635285023615975819429852695839184937068110750602499687167478919798729212821622184365287089293853251868058587706711928962629318926388290369471253975549382253949873311993158644505331617240532790553367262992204757274461012111721145363804711788140405353089171150079835503656839644364393570291096352616200250917869264813016240955521131871335696926709915556407099331402800622665580393133030462790984433521498759737371049035517754167129881439378147051661145131372021198260225746001648033189253234760338093092314868923663116806805469097829775890329602177931720153099250019166690550443802573134917036578893376655485006191283361882013244164041685255616540914862945300538698989777613401823474727282218439802136712538166708498008980888965175437383114606430793121049778498332920178659477544159384168177241594164895813682346661576314445417770601811736812901244446943576656469433148470409556126038075476012303420863651428902356930182860417309657506885085133601981919625141185990630520762640351445708053068967937762175359044883280876439465443093799601193093697918692788957430083321490789167253347561892522999109343925478851322495485525739528595237268772889295872466976350437141123030644682780465165596293375996551932447887396350469586835805467138764734907005805803574371812519533737927438645789928459706548681893537328823299361031499622315976722325637684831274493310420544484084231115334978661956345507906681702266786823705251821353300404975045635384373865165465780566096300915690354501493597832166276871685194502234991655943708076950763339407037530326606729892346672545201284174845534451252227231459133536133306651365606772187761426696968668239707716752633682536929356089595959786610160819400436248117399458139513716071475284063620212498348887239967163110891092071327592224914731710701021443854829646456435874384821240846309901911509055574049112613651705306359891179903628386916674164834631462794075623946867327686652750670437495682441463385422660522807761571610649277421546260651009956036251455897332406048194090244313601818866567784859277059369776815999530683183549356869571870086829130913240419138755817523130543573369380322397677549872293261201453762647780163132722830182862796876052060117202951410183866198608545660806607099291165675520319893804996436560710734129098363889397175713025578414948422991971890462015803008871582139836343049302136373816404761107344459386741376753580141795120333522851778982433799273377659305812703504395494046388641777527560608509501640718276555790690853773128360364266316952792621202635217366339625389304466036329501591484755859779626000084879940720747592564358314925607149734811666153415940440432120774383395797483438461174789202350897688434213197843802825613298163475481768574466695701376011594930415476183583502724165239041940259357055524372226898281517183300588571899362462702956804097257193566578664835506619666184706043678919213955720031740404916367394105567852932568292294799358377099070296638838664895681284132327651049642602689690288709578833696432378050344246232223133564159381383596190527959232161771157354252571355951249610096503663531959176784249901259642918250051138096966001907050217889303305142056655077853695110053412461719006044183787356955877357549632677643609419492682288240229394119401815252903813946928414691428676523490056414310337486054595753140494071241159986811510173339505104079639266649851972987507539485066915453140695002800358187707492392719129566443407462349362542330353064651875630530970507821773573697510621262144896565791683824103334928007448983291307892706831862475120063554228307015480875191988797479403739495606909994937967361560386345535068194605241662335126824346307022665223690373092700744074621120847004449784833321241761395335802573340181493909127895711394414661297920878281972377911939437141778044507050485795160627588266869991733007676005269006130861300801873379735104268197419383468621899253693785251940482641919264219712625955625241382751732227027650664656447179725758827859417558282432489415470706338487581443393486730660349186796198778018509047331799196782375298112526171067862777533756488263653526071921291467867389611414012482204838346707700002107079914492557625756263158827107649004971225963963118062312406935066181337325268194941090430654105343434790441348552822657701051276204193861174102871377438873279391815567529829630041090329905820587778310676899475338021708064645353049415736270588181326490786106399411907798178340455368980778082126647939982515958778031723014517723984242878766977533815202150138824654413098603987436011016586635261735325088834720775503495361270631148276164128974131610349168677272886927906861784244167979621616872995956407521584602269971290137355342767311430725539186111254352863198136479967289883952145961898194892955060341973229430879114381388894573794249489216998424366510236246367323898863661516330290173030450457095240637132214744586116645073128279095381538532785337375413461314436547404655932181218013538310832281936494970788667016631997680190007641384426550369191463252069731508552478368733764236689555308853410515122846428729559302786296301130250107092052143199644206092957006997557461733184919483610653051612948791445998830781032818317882590162965085488326438824725401728415517746082243291267828683963370393335506367888388607033970811760094615940078228098462285311341209392772622379722772389911195141389995045551821126977395137560035277246769861875844282356581363756672427427433976421511388889915399284148195282942035880873544518406978994161143411649748911160135834977102207599811131230697997801544636437214410831448442808462882815233494850136261301258595502749085201355042456141960376043091442915090360347863968528659213638318849768696821272412292052748718606976329973777915691301745893552328942857849240163402436294194992679942698771988112083958629955247896269113578961165155334028240363621068227142749967927914447490482439401449456851590763628494691120594394165961920813262845135482350037827320264991354019503848170867310184323063922583811885225165075709653644492320920239437332271785280288407498400944899415000871082307916863124435048181084449362925254554275215718643150022165237191832757901233898676229344284732001758116445407309351103409070997796317409654874769318025111674118996091669882571649071202874857107085479840578451863234435568007933237341372759466259945234448875025405171334551631348531055104685544297911591947338798378437806999111189497947899572751603657851563203289039069357286336997142346913887532717394420079827016076869741800127868396033088057388106430231836027191291602222831433096438829200006867460131805371472671930527273946448028275157215379466067416890537407812529307692216668075509856968726273968267601940328307059502876545885516628751327558547826476087968663954404980845359022909773676869187795539573113789429627418836972672395581218447188825082614193507964440773887723205178206853034389489200722727691567762666376617312985186788789728528805652584475446354694111175271414783871393543141221915718528755021144594916500701371166054928952351928893527490516361092463689445353628963476160353784005535991069446898478373889946376993766442006574254791180585887081074604362773203916868436289361867066066468937276185146354746078146945558090396559053191386854676707986823998481385206184150567175431097145135148416098167534410592981908000714836210945063166576700019967644073788651266058799965026395129395770630339518489236844147226907195537561806839466669778979731279041488813934946269201665236157266466025349990451710335705357163783977613490007865489433304386571221722235971322147729279490482506252338778984778474152986668250647601393601182513736699614950349509357576269373806278571095984114957701844181216945805538978850078582611003019211740640289387146761287809522915831612081180332540654429684691962563452713505683904279057104414003278031038235886626583778228455698324952357696275504232373183349231958638196093492698901881397526722217914984046232946523454376194301080649621686802421589443162632063811642360868032625291115394627389733964798315740911822373464731568444709973881867199860108719758170079594493871183674570698201918261264803850437323274087624135780887680004918894721128370212920674123107557195954021914617851247865398790781091958694608829116238834233879362663178705116622901159106173439996374260207533348859534867137760309745025129832451820605965466336317889490958863988399750949078955169519058857313022069637401238163692743972727912979303836159625291855761400554361618733673990888038569235622208205567148104448278924587712056482728110501846978592901916026526126146354339869856494955927980611396796042790539948359456379202643132799738167777749030986152023811035857342112457518471555100362254739195881731768321172422499019361758206273939620230882188698349438444773511116838562574460144144903448483428530594596201585725342660255864178325237591928037254335264707485157344284997924326968242793699274912236882005007523741847577100804361007749136214245692091010040109188820121459099733795192884050040027035817564232966140446955850243793384571432257881599078977216808844601920171926684248076327209406748679586695298578503909436959927964546235675852159950322528229836505706764566380562922448733306657308075542211834425293567964879608495130373669522762756632580880352240559880190652715503278258032022955331044028330035109309686840032794572365612106279415696540909064682914176232937781723327579665767569782864680406013536777756704415090047940337319997372425684338589670017773644814359019919663671006960072992485435278123661255434694810530527462422131210748622727247759556441237722036703287657707264966137415164788124385393059604871119019510036273248998073525461736822481115113076510546946766297447102930168712689560695499323603959641792442653779199699992194357328977289699751234508059533466223626301445163479835389364330598653194084225550134288072207711668768830669399048980889319344318843495284153236835038926194677815845372819950287474231503265796382344179490528258621182132995999207673283234521753076369767241401150601402361855946417089949847358544304314596503283166641033170187558805545253242587621142822591974070486287126081648833015458035923782194608544426086725593378307189737988892604932447181199272130245053768968316211704267926200655701160170299851916090423433009216144262819519885918444230333629801740119364462283713692241053299920225178888174734406011585170129770430559952572622065105281078953332808253318241601851223714454743527103982372510533205961618227722364292111175395724928776810432780063198289822732911493001677693164042859145859190739842085621981830862177759632440278471335588534489583662778058853916159809160261182889993969000654413550320135422649024265845775966806027599169947821590059775378679586458392950863889613391914259169286600019606573168766620339672859371250117720401220118622306618425597565665090287613976774262812587943261852170273745329895520760967758942114092620682915792205150183134192878630575540380265219231246285050129715311583523842819579113647416205184986799235884411310709338919410681708400981452699408850371505985403903500349630406513391087106178254464061319406770671759989238186947880321171117548746158014027601007922838756884263132991419952524219813829402080229523228304762906333014768627903212942932883917769685373214149243227820680672005817321615519732322499677103428139380148252782006762919829751856941532987418494321284575569493822258743534698009583322561471332318148604679633656623215034021544391820288054444982228657126959852175131038301775878198232449164162129316793413126046059629904875553551853224976492423775157096921045467680543949293086835538785485894470142717360323206096800209685529827627565159295859501537024900619353663020278411129638483580513274433918602592301587885514940537054685485712788517284593337415046277703895904318373378458692262442161027895781783843968949790037603144847670307102761821323604077408907662382045784959423130261725239143407251921056913769697681769427467832992418006974189904355237735166872796660853962739491763390649641661350379499121143990863047096333691511168891002642949071439062911254781314761699518276297184291330107788559728398912264948749700700697358713035545312011401667954996294178637471485743879543279736489277106481727205069113282188574821445265655891389779164165489307268492813132995815238134529600170046438085423429473312583201612319658913043903099881527356823961019077718319796122242446700785685852595999813246682844157099299605757226870479199439773751863782169773720046991668619784986127194129666765544814320785012812305393932786864628455860224728894318885465103373428451397491819188795120263005494701634450936423535418203797734939290174426730617346460800064737341374513061910231530777596023190146861695297785718582773979791554183708917864234104648222570390133534060105799121564174253433057725209561274119819094883292351178032078579763093917067484545470293051345753814064137723829003996604962942798819066753291733745313219553637640378484612844189579023383637745377157154245413447510498327074180570139097183200743418829060653475811829920802495479680044731646361901857955185747173555766287895665959906151071958387051604925013991057142286573806659749863395000838928849058333483458684453540744303496143151378053093738768905733943748255292413056089427545559950912417343217216555373859374809860275588013481144066164687234999319880421466677270166302127912308312507324550424176938239159660273988905771871697011826147217256364441984002975537435033077134281130927231261785357084199771521430881267453201000863021734963002435983416275444187270023972998004615163597911076423099841754454062725946952475123277683316883972841712422543837884455701002762815534468987173602920388777121729122583072585175214900374584328126559807722725915319877782283412645058968267982953194900587271852490217026857405474102880767689368068318388730263564108565391157907249304388365989886474661444664883873833987630571811544975229220585846560577407775996503834745794794584471813967531034233190832327316540294328791249657733837259584816937545592122064611190412818690672917853999015320104342539184044232193873847487906754226347321074456120818664853552971994639386717448262983267414763706432879857733949099899647775509363448446983579418053013885099341867185854608107764642853775858811999703138452030821596992279760927999120380157399899943415705695260969548807968304440730265748081850055189113906731516964027244982536713843782455430942024270478505709088998105426045176065264614932364993201812166137104309553603305109853779380366569011905788926770525316111056000651832469297699945125604457799417633791075634116274264010666683496635862667527281944379081168585648708594723551648567354899301575870659414623620188072080739179485151381379390805451091969242102809107492045168893640637447542865756885951856803979664253588486919828567037573307392093806315930714469954405633401652856523710750270376538429664185112330675271374981952892567812888787753812944110600654597904419148073315068296718815913402809437227465603723410061849115576536636474518730777254519694295986211183655255049994829040784152770484503676876511941505633806386285249034922757460001143695103947260275078996369683009635261329405064711560251049521828508711189349610373110007284035757258335407376967363414977603119787963540241716972153979941389605323464335463984564223120486724000918745745180322218938499288332585821609673821016443213134339640944038694253574644423124917521398373853781259297804662289041847671549813395503098734037334320280409838761731900821661004530854169151002671707376164700529275110537893698209633273464190882292309051807877390034762681473974155950412253389618286513311734965458813191586848641042110803425311786175315877358300169408926344189232855560603564158346321674467360400699658724159156882973215267601945163381558093428028872342350775734571878000914946006667082698124718250874975035706287858267852040146185109180983236064749707793998780758003952277316622496275850504688429376634681631022030112347603407741420783006614112810251961507803756682468509783153597661773034825642188384344318722220125258331806695586968534868428995712613169223260950494703969822125908948753597825103979348054732924457141004394418081861165297673794740386094589872442180611955669711032478798874212667023902372659642208531170356186351404298480452548994563528310874872933886271206399278123959858357594805384705235400805879513252049092071369361566670293182130262477865672945535146208933115797116362777518508395658289313493192229353815872961992644201292164199318962776313999904056928707824108740239041228117111045599978000797622166039718728964130749839812770275805585936894731919010078360762351978893143779117868679206369997388499215899819711571966838111174617772636222658975990554560951972878337140857766687113785299374115632755990389033201168857624857280356833131725916339296667448789869978809755725826871857393387467473028818616764812039146276803044627588955097570451753817260132120652889732348440871714782395251246095803739403849023203554385888235415520715448248133213748233892306723761084080413606666393941889545311506763739292170301987759503226771084727559718010994052541180076212616855568485237032921657578172208671091424895962114557456932242327691114059077420418581652858320331459051053267762118343858834812741302466654477831159804544075834793908287564809506729713116107333986432124753715038789462698290425643441719964050509988335397691815196935128068271962868327620177631733581483066505859458909576894820827983498895919261302351149384430700598353254751632252391937317561930324308587017415629006756005959435573826825595431567425644407708049706003949259667632767620497176899887983532270796894737276710832014620806250538551759898261628982915814360020185359057275019409183242321258111170372429225270941012141461584528124521476417953345851425529361195935352269898816805118584302857477696550779363558793882331680741392859761378348097458350202098065102079868420736320725781138028111954017305475564839498818425039310788345165520060273246364834288579547930870659489563240576161958290316036590107954312955443844383436079524931362685676980055612175050852017034408274553225171029429624779363720378293062256287649749836173450713285824038450603196758687086817227975854305712723835675194261542011075095305380630515152850322978030788984925816359414966360044309442616047504126454590281111373689787823423907533790889463832728645191677183994313242980699058758023647901629453800875387077689873949146479067019908457109851572369658170934155323183483736041661430107709682139997477267787761217935007365498424376541316268030628211421694078633805851191932702667003989945971749392466124440245366490006279040921286899868117938499365784345265750155806896275473171695412885425863087971727371516392947352724386850168451566236459857186366921060971980810167746095426998151426433128787717433814071997296663533893792458288213079223404555979175379042732252337234774540667545972222044844737653772222882929925892359151081421578654504585774317658172962606559273828197691252376957116809226153530568095814905670269053402000217574081215078557833534865957269851116893302521528847494468799943922250015180486615388300748231915746806306027541043943933481874613319501746107011480781889444846776788829621286705367250137847006398584670320340646969999181523286269922695695831895611048980453661693237919246856611556031343234877423910943056924065428672701531427021844194609936682910385453076070962096302062151033381085102476503742764699746822712609248312569813290622225575764042786710587705978234044930707117676576663501873165967859929020471884127682483405902835515224806504562083938371134684749325101920793420714900883198495767613688567822277235455630961997285485766516383947308839467888210977470869956807876494094508609321601720653403771725783865451676937603457316723129623646396940468772467467478103094081936267114153883378689171763773680207495956465616775124195505712904875997105650409506089856941398914957755589839890723446618537260792015816962672228713603795425210241784576253939913103163918254573754482465928111504319256303705014285930681701481925086554506027533585080364735880341170318083828229492368443560480605635098606484448154931457808171994888876730121597934770821378377662517152987926905965317443572316789808334274187938719446297535661497086935730436437026814498843963086430890877111964640319091225982164245963221805878757516398834086597120718279456200383908399596857274149536282425007504458422997924780248709070177006235038334638016393556618262373027541621337400112042879592934625859809044620211052084994857610008410098007354866828669082223753885675299778349396364434819703532979698815625268596535332578435144950122911577369602150337484119735680443440909914277219148874022844128531370439504345202616581960104872778887986220764948959546889576961394917429152149134133772967108029775942301822837436437227768463590427414321356192239494301977734770858124343740771682138058396897095013704365855336458993327306716722998835829160725066830982897507691734774676626960248589766112563841778934859698830065182396681149762170258716337707600943025574209312329121071524736727706093302080657993743296420315745718495451031057951147214183633315444743605395209190343127057706481659110813158675580288269760292130618591150350420901539356552504011050724483686927086407937723054727571401593330444942673479611531644921062386413768253270786824115086047210233394005529122430878056403011888305843042544281255743349509696253895017578028505256770628422294607972919433602134055267248921780793807362469667215683155796751983464555177251017234944887949436363954376379426451997982225459939610367038412779042040804885325173883022326654592690396372773488334306506554790524912182937127102031781617688453036182364458704203277457178134289849522148414808366290984157942275565275754382331858959862135618977015550434348396315891766916026826811362673002416244053557220539933867341890719695198049666035046119844672212166338409072374391157760925171669601450299049958246051483575990004194793315025726781924008022947716597875078378981902172078470406451602537147228326319079693973385727407035005803062303343030090392270825010787295770831496259781160847856134248185017132767764255690750164192432225491523078308950522280784557607638899818281003043030082330545580089795829502000646385402153152033107496825439791536438978218810158746905150237317371588681155730372084925929934822864491330878658781091628860549574886901097318313600198869096441095128601444884101663482522561621575649760397167645962688828011345016068249047988980288317920808643628084095720913794735094311564919743182360096120362254648969023574506120593169922341792958998646295218905310698818926560794817715236165266172288710362429357058057949175450090333480219817260348043742822537159326192749640351717196743454506209302586498393709636048532421809241761642209463967022014276811909308262361771905045067566093070932861536420043813283472105247426932989326621231683222903705341454393991233353241345969721056805386028318693405476551505974336699227227431415388197741954403383523675441430729716628515153504754356087257434091506258527323538245587682544703696816540626166342000345459433167454101252341122148729124109124510655745801723285449032587177199359286829938896596364561258448583022793531274240788305663516803943095525313186670197412624866260666317036414582345958248014352431584628833854970860256616104899528802333427893457217728616931851303909493272496627605969810019519101572252465232077616640464004977426139252930656628196493366255805381492976827579497003760847851415179485213775778773868216871949556964066013116432779028873203226299991156674831754835635945067808371610962020726002077188760861851026204265963799185185370080194929836338972578725615079155412347141495511663725613738952000543616172027060536072535001038831594607391438000074587455913649785901211514488754096705946992598528128907283515153739988899708078040943129122783014512187865094246022651807931309616233821795767677425956877324939385038154509024629364089621797618894028587426290941438192053452768506541536333042674897178991805298762130437754353151898031013290909111126208206959423059046265165587070989098011952527412380759066198973282127069086696548267938110911232462873762090598424377102310705790793534155652158819823450183653944931461753815178355008484905606714723455648538977246598898951055735847078150399913984250710530796896281127247050347923837530645878695827322914412868345781446501547328415189358002180650968575190139050150888115742559536172381268295553491722487556815573148907568626722969142309102719793921057066557902038658478516009075247981953206563341844941308006981341235240299543069421515205036462759007562665017560837274329551837343327310959041711946014775479713020789681948530810575620691557470716620810835861074392180430882852714557190332086746849507218861565620907622087599316911158606183961716329513864702595515648490883922662770253938533889320204062659020934834412408842678621603160623092699336104093027823887105184943387581251445527597857271586661783978930383925538316681985617820540245568907305977976947785802143697428117720980161978187922338748371576921038858213037728332301143353644201241471156381545173684944231292486021941182139738498453868095273835992455586024039012575458551929668143712666289257960519466168044130072885345128353843754370747829436937313064280151213531239084342989038368128693013564434566206971754674769491966183003826369688401194827048679987778981480447934092437631132622371188817621579252911328461108032483639105553576259160308356116466943833453563131263943202211974668481715133149372867697731295392509479200753550300014884767518199526509692104291826063446070676782442954030504415198707337848333452327445521015164530224261738354917714929955348451495798764497023935108104936294313305016380130682641239278632741290053198853452062348231478398113650724052624775629978804502403796053265197736819810187548225262734338584121871594201841860553667512934130470197758368286406615668305964728811052680506204723826410679905635049739361119281917452500567718182723826503380872414480830802658920427804139954570627550520720474843945824542892166429440908983135977277964704550774478803584981506444545960475030157028043091172365681464130775377554155008892256388838695916021800503088186774661449385495537906447917260056328860957913564473324654623503746491909202476905769788297227461298740865834322373750697259742554482502768544965266793147431515332539266250802011357862008107738584316912043820563193636712042095781035785517934312957473590526233950153569484580024252576389779440204977176584802391860334382842076985982940574974690990918411728079143446282580139747006718722519845116590242679174599277923682451416235674170501556431390645658333425298906449289159070763348072990003755113862387653712029562408044933491996526312869088219064184716561258703945301418312445825941859477373529307955905709152689720755746738999985120503755346393244803295592550553174202217714834701546517952715029323167041267345804251917398583461028292900870211444593496612525168977252832765254147433440214869559999348840758965274848145616842017473469141064976229000113266055331179928150132063094795128249759965362596902931697745084013689296477043107055798693659848244901303578963778264534952641510686669481265037306283331273699590593262299657547371695384052651627898687070287348654830340546531405467996640160541864688496454404483696374198057494146780739796587997071174330270070651345763027605678118101923652770396855969854507839681550448805898320527759835575070918510140291604597063672693102128975586603248952084774453584874863249802298153530008662307349865871268640758545341150792120182781142397044755428727007574471457198063491631927867460596347102029592966598344362425016203108535937253359613167049736516461341850034001911537492295538396801334693219879074918690822708487148986620523236167214776747517824657727268573548934874105972509671126331542183988502014998920560622977601651853336632851925246661323134785052060250033611691344826425742514036007445661501215908710072018492684363937636950425443380356558793043792360890279977346707840768127346291019526757902902171529015184003838531713501988633978051431890411939933208983443823045694527131920213859007891451201734014185435643752319569436553772804616312430359920752094357153886885916591752381796443860338787487620203714689757361504209215394874243089586878673894273072495455176513989656691059309692810342451642322613605687451891720450263969573020227569016488867971091246452875264521152015361869979414686012429527958061698465768711601065885229864541055409804297813442622462209140939364001470678167824445499755724800408712153020850006313902216044196887210568084255480828235845979275929206009309747266612657044524829926766172568036279103767322512022446700046896692195790777155192369659659044201281163740961119787015386055198230558677316966658457064885395843850828675222180867886833147099621116280873270692231081646675943087283950040830262961724868670941173405939838205887044757909959709975495879455725919569884715466105297644297368290353460013650880022736360388098357653397566038046477199285831157793526432188902863368298732268422559295629895898640470186281138933518688162942643074351067446991401196559410534619513123908547516102372264132183772501956990290709858177506058227126793324781229529921437527547441081467884248916674336382537028022925514673521762060103644491098291303605338480992488957876848994544436975289838982515782484990012876297733965499597633462410192432132573760066097470104017579790410657092468503058089407728149694086493584769303313988831983077211140269829954269336526108667722795910586352012690605388460151849312604022429631024747009275547245357957388670249943129173527953184621734012717466251369388997320194921035807722737940908503410155343390597801531098316562539355507554123860441482216100010806381637508727459527133426306454795376526531400976152666280362224686859222061410179475869806341317339991876626435364570571273041866270984265056103252768200596402736897190650149663497736317933843641277495925982208604923747764440149932235499837653209448688371576735555222157633240411690315794257722693622881432325633757668998047197848447746348581281943027015248343664949547146415335800139572638002824386627827381842123055060597512920108816773742496411397728144586577553324491806427131562615924967575986352374552021353614684687796108474523824005054733065094163141354391058006163171098458015380500290959767593708537074004961301663622035885837468394449387840256546210296977568589387292554530583039220355879261106772817061774399120393220173609829913844223701115915531423775602394308436525067372071088468720618993125381986982238955669836466315601471497961879080837914215133584254439752157096156844871780771729868603943914833052080481571514271630466623401658938845766064904473280883850290323919848982423330403884962547521143490852459861819599059090297292196867675587120814699899256253967343509533716634752971788570799086105638031539578110445274309511936233850019923467901152332515133448985405690130186970443002727219370538334965764281627020729289212362599771640765754550489492800677584501649211510688609589760195592686700705687716724241915305674616352843813470273295027910836272523397161402054487415998003958995284765805701519286847641985989599085581259641912151097384920351144035244266194629914114873437665820587830734125552021891349474712849813933841221838333379451011807904260182260008854481848482423147375622482652238807408514130252443919609187570292057930479162882670994817566197440282164942365233444784419744552887789305879820558689776169710044587462962683373059076631895912212800120257432790240190066997480235073246295776726958831849758818986844279545419424241894241326341076885129369196349937241526988827301911469805519137748581354811272857760196628118130510810905969109202114352491183909210737389179942980694235728704951621104240920822162725103696623097780756714896179652511626446207519794574097657849107637777892893087172236349968942592426034132391773732963729065207177988811607849109817678488409700148813983455566871514136725984754609456046973707731151888917891457807330175301189484235034394139365011745301299052602696131997125637987134636737917013147893623163838182847875358063153724358648112937946999837951941340822601055534739360887386762927646916159229172310380077136337443084277728618262730507466260808590588090342912098583398965056688466560035364030674773478520254866137266052850432321503876963765693959519662969172503877560220727851103946629073388180939333935891943743185080993936223464498913378392820759523121388078303287712140527056464704218548643848242993154574053863067648356947749831700789660068810451444712979076308936837503193458178310061648739820079861507668174558206795332702276817971407677133864704492107997523282969289767107999419134980795604365035588756771134728096195946903751796773361282830001101434039444174731453502420128760002095931110778782129364226485946383039873049360023718355110809853296809346937557803795616182564567434501921562098699914658605367392721491627614493303283863414223232533031542235369874830862868915887345418928830455007727035759155161641693984255948900790459110972655931389045806861946958591741250699481976979705197362921880512056294078437576363678475696453477908114530610846683459856949022712421997736770114701379476061583134367955415062068420362150286641584663382006405967144540404095540270437599886509990031771834128664941462429677261764171581224524643905264925896964347823419206382764402508117466481690883667708194868173221548516129013977624872707366281947910180626036397816481815340563500666123992195352339831913881039110589766073015543086336300525229802655296962977420166721278250526847518622990690006885796371722761104205421696546186120447212339244059446462366192231470297952106779221515070336051321811468332463830711322218178180303683862317839444700099813973563221084180524969346378281066352050012427738762694785454422733372719404059817485824800478224982941018622313237319228227382433893097173733667111674481773153596981856637497428674574203406951194293701976039436613160810892888978343113296956345549390534272184402425042741349314068814120630795148663240973210023215117632857429457769688242193102346428662773976157872415891921382781094129248781856319328115896115039685720435676101638936791424382369993140878638825394670028967116853033835898833319937499804399752938073571711578227785481549449055414737967195481725368705117361242736949803771088359656231722931425531490172973348145089818289583943031659115099462071226979791798880012610946127211731932760431916671387069125009255391224088474323717138190403615398211874184244499388382843860039046575669127960904301965587109989880662024660293336311772258206749514025996270604447267850378044433891192815894633507840242555105567254033830170875870016199814903390140344235210808607407093799302556939590997524775711927023530948233012439720215698188617167172821537590682193186028746851365774283288854360116793503198424658921260369958864585058294616227044080076363001113917073314360094593240254077878872111002193078772703293771833268240082105619560899631570375855815342815271597319408598058114254535997754422584077796229387746226571447496961016160179715417857124359749865444897644492596727906773020046300839574202686567181432594417232708142059550231775900780358353061321161404856918220466803796722937140915145961397587442085611629399132596655788655788682335664107549745566932369387017914904189670261895026534931705846474169121948493598725498031218727556162078803531379361883354262356624229663038811188678600180184581593472662460693888806838730019757157430244497226718481668024967809731762792871609051571132436605074396957017980912044906888804764302290904142139233282315299265879584405044419637173070973965179410432585080033023435922663909026472129660674535609609255629470678936828954178970219980329411038043898694453476443904892413403961005462257774842174122606707706520849751002051163790641126952034165482285708627590647021683644951290055704569241348660795364597360779737151575633836935766407614007227984684367174562411859380688675392446659655276198889853261211903355090309521424923699486547901087708602954805542874875215407822640937006303882097366654104889107283878283220884193912928626442329025163983195896453714153782871137411053797321666990857334041291837642955335797859090280937631301207768180542217357633787104174912479889505129243821909628460679754326129721064444975042051096473558191433638219225205207863535657957937663120600959964917279947351308854487686099301162564632372529988023566370194492341854971725123220599317434274627870811116976496589933171394422010816599392777797908152588964713962144831030467937288456362791258063492006784430348619945684664784517776664421799070905180133232281501929013043838996037138486649964261493785221809285532593071163074230536713085759550484677964795435142562848508418196840544812836175978778500703786687560046019564484161425738465749020909540288255259024304679326788864861917217967596114862617723177053824147685021521416501925641468519506687527640782783353675549209639901232769234066472692845330278246761874436326612215220094638220101325567978606967618227844188983292547891394673944091893254629874656772771075059675912828428399225599175955694592815721881229998627574143282666740270469351755763470434745446780322631864107034836049465166910583457500050116843457028994249866687890630961588239262616883420193705105994852517282378650847892833979016269292076484869259240483181064859505615761539351574916666316003231449838727769835716570129603113016412507076975257559709747010973313905303092912545602390205069395725634794974979001129445962454317430775256941760013021407307321090164758458595944309281125665333529611934118308660859989424527066935566053920308995385292988731130911072396584967215474728514843367811099384473361898258425763641213638398147557843786620997257344826023823403478169603989302103777544589075309695844118877673627227365628077289588303493176330467254197692031309250819382307803723892923734341536737997397461875299698803576645525476488458759015556183564665841828357933514717331354959969541179908248707431546241436984605928623923686700601063385074621376066932861989746460188250991383265382558622935420423929400189328537934954063349380188962151625457102283229671926418959594192364941231669871976488330719495110743143101645094055035618814534649533052688309170122811241560673253429908470940276613854684208348622078878481397280156478346873192555411739230831415065142998221679606194112859057075803099563407812846226699796585900236388908612007425727426843631021353746725487427976573914143842042027330024960467482140550403025965385659142239334453050738965558652260294969131863040501006927050710303628981013908879669365371181264240863368322250284044372226075560297265167463570591088679160938181758227051897361896818916938479122680674423452559586653590323979259502774845839886774478935705091028438992233731777702128991542852592308031495178648121866408397475538934509982917508779549450096577840162332395290546410237212662231958922965670577406819553077595373106394281041981375810885719074625277651564453408035209612140757833987149439161466604913124742496788268382990040427114756581673141680180344418382439826338785443808079346994952965662354074443617472253713773873146206742775237603000961007804166082023622278220933612941337556080486360570189346459935192844046827483335942535136382294707463748464107298409977167864682276813362396747719341094321232036839568185090959203921237938998593381675980325165860134206214742706363314623020561439238846098010072071315553294084546319042856028290041377711606740325674862118386653191934017650677416358272654775879543306940120927306737549250191561125990605914195733774428168192349805145769281969500989855596232405772930340222234418937810501344854447517700759992056899044499666480283229222128252860616747704177996658847166967976515232605377193468986542829193839440036909481986636306489405881953805921429243545230687687612014237773551078551103334150992037015916465040529494298407207938413369390852234811461366490379679650726142893592698330388842571798921578528638614557763424267414513009376191739298828751310330988709856823887899638720002468137113487085419013149052866700885186646183848307967510215280160129193288868618976047609958116079821683514300579470303500026026622362890437081813317978095808620929204717063639035743687641538570364555385085673038941544454590624993512803826897170540322737239231345183923093500659959077486514050882248841020101681255888007367907925043191913753228655745652594852131044484298252963137236013575270475515492773307030311291391835956462322177868794176466072531614689663694606638257228982569058884393509444629307746900760155583629993739952829129908559580344919782817646375787428388099292958211952304570596188445436210032088952536924576291564450179671161388337171607240426277546045842240491421347631316795546839820913474843901953999619662360601319115131435160676613363149315457654222180554843558302398155466691932256895538001325399722967882349126975021177875432692383932675723321184204581346044707777742469471521370151978971178544815060546683626016179308797407082172157910910413408546316196586646256794278474867676127133811593252286933027044350725778761460030897887575232592874746975081607271420358492124571409615933413082136885129471384539924588469852245429471715890855495560306133188782931722978389804824596822029473571823598985800544750373314598844116679671102943606789306636555594314176219952259590431438948283611651804748623129705052092466264667144563857035703566318380367220195721381143505395830912412178237416369454444771418238925039919314377723996961413990230606964268887595061951617678982445603648433548174281541773060771130949289888261636343277139856626708383229783701961022691580409476013325928036993218843020161054871274825022519198528557469268261032054880444713417377760218171960760019270586565516732159763172963691590504257528381217634394191740508051086298496135407847082979084147897105279185602431898277368050015922951819144259865003062577475203686184625326246358822144098094904214676798072042114967053677480817374420672583904937117636423026424038676655511490761165366345359208007886367207177956028667829383882882777596305200778208191043709976762356817500077508280496592452797331446415453165503852352810401304232691874582127062776148465513207371781501969473799888545410855145148182351230593745371035971703951041939609806500566851237615685905009015717899323683416440006636820956606321050672292557297087466061313455372368511235838317574390174307587010693525647503053967372524018522307353740834448103123824085276960211128501315928736379642074106384148500323108888615657529618028707494287263656831370390266051456827675763733215497391090118597159800669894929986051488242528486082217915540457005940426115816190179486865758584889114523519720432643960579030843056759575084812083962152398762554856044608178255299028789509270402621934552390039214883592729883230332483258883723928053462931272254655533523055819131415008518394573556895013878244386377279498999291242537196962750304252683104635652095790512398094842754378692293060319551009450968886380103694973048921690554816628154638765524918749477159395508815951002386329015799390956135606757927689889729331971933502247906826033217196323199270874048949937129383871083193592758031641524216730854921457555828936425377540999331131231259273336857118341339591660083714130621465721706556616548620638137218238687086855072449833054308558140424915007543075951653021398400474075568011258426486373457794783443787856160127978436677180633605721326359494586471518031627666110526496128186389121777441486858926859212009085303580055430643801997911449086496215847469540970846063510099536995891700765957416069643267698912477038843866081868525797669638473407492735251502080022724296936271356241123193535448438257929175901086548870731861702473659677952630967481266088293767438327867942662194427889746023235526781471224824578307457637948388783596549686778866136504479997811924846260910315852375479775205254649386708483706536125998128031190828853929943430514485969469871608352946692164779704772373711875658410446974016385273997518291926236396375804674573625232952306428110049246951661847059255842914825659886699141263944450560669222407370441714102038971411538863674193309354733558728060491258421541685863647627378241036859324937150949303502516577862166090026226676495444372189037382035615951724517088891701589806874782411917989526428997843451004772505423190108884029225553469047094212768583005807965873052933215804216272730598652933805943325321060898973493847320153546665815011789417697471746660583553876946263986727749657480198270615115826836456221020296575157892300275800348926878554333414149114985291435495874744296796336731875852697759577688620507491078622217226366141620754352786134170477574468242757492399341057859750971977496602819683385816776235389018802155109344739581124302895039668338695725515567311171293564486689354647439989055716190686156635865068341818410369496506519124690443642802655998059914553187462929314194233339544785149582311628305494115450396163133083295668846847623041923470527835506211603897883911200157856984684531985773907596610827157361907463300525699168807794723702694144676814577902382193683220575701308459340671154940130920807299553542864907369623892164775584108692738396517940253834636469646860667332572033155634411148829819528096100756471584860322335737585396576835590704771830756524104938300365681400404613059089211439659463293701177856712565802414671839678479860991807645003574592959878469161607078155185855220113996093092638011819753369569632220248409580470036886869934894034020844222308480557988476717254049658089848480614524539366821603690126473514034844333313566292686808242811917373319121253485109506816454957493924509983499567349036321147952689625742335649067895448294635519024994824707099249450428842227109650316073559828210218761674547891959218881412439292389193485518545936421329774687909972146986846230229922805669832261848349433064037185291574802739565531611414973326739391413145404703040140990419521799733581810052831618404471463522326750692677308931927890547673758640667926285852042066157948481602749956447886748209054618786111387724702416052104819777069234959094096404703588105802270259837005017996546850318763993275315003538380021655967826283162285065274506992575453209399020788357202187799437947054004738625622233775646711584138594523361021559154110570879716817013683282441128272040394452629042312701098317691568692548780773164686970928578812710045435978210711873287050430171871240756625831201519702597869860181404980429214180192134124293792434978309679912279548518985360232669655951654956091754589689135025499467519427389654346027956144813977685774718580662398538795399947449925547071610856008349408121117084435014115969816939893945086227413461883619055323719737616704160084639267591226629985252048880876107471553056807024454399024164414206957166945819123277861602256582565605486014307396386473804236131590669948302037952223865136003111810232875457578530991729416832671161415341321272890771590921142653427312932234807364353379284610370126624368151581537282001322016060850441935904663844222388756058587153478684202164741643536309024701064450007661331507820187428240212767877112540046114896623581141369066228849559397003381517659588028252000269573775799744969551840708662503695028492647243607895728106417981667813671704155253888977779674211885616763010992831379915855783378248201627386757108335114963826608124590189732880906344246244276377068679391343050463656894543391814531401166862377555886698363293791688918774981213521767961870604891269927956215271437846349038340430993272707254448433228121858320659331514272087400654068975523594880874842326082629156067710469227043313196162445221243188270256713049201935081508868600589274757297990013050615774817022515964537659107221404450635337394712703205003943057436512489162104576727427669470376733364846227193612070681281802209459610435671159195947865335610307258060638030123013606762113068014485421871200082965870382659467089159892254498250024402828643422232740472602758515123107350679643164465341800574036611296283417741282685495844492047881360845887074033179903801271602120882289594060276484606320950205574122372008130018579953859937475424392644419699103706791601619796531989365691922107705084603839284361543114460005189017062975444030305291200892834956987368211859077410955475987376715535289103816087558364899390104252122550448252528443721385054845159032992002203217793871843364037410200444125926838730601185968477288361918136662686246384695039336246235475737941929102478658199056489970718964528675054787454155629447387844500156258707797308485930778267009782604206301730888744053546243193811968652923911396174142470841452455297073292673732737675569828945395970339387542587769904581409660962247100616999763134155139588497113067178867911194349360427508383079499955267365365676759042970939665639239014457827052513224719954395035951189954601499560773912587546387176934187507163770928328666277413383271140281608050129482517620506917221563577709616127985936769330789433082403011577435477121231843434206727964535725978556766126119706452489211276583648562580677102188669798480689780071287583945823781867174795593118701674271756410456412104042432200992372780188702872241362519199231866348867645583921668348162604964729913403923437949026503782527468274362523675141381484075989265521453522782678275524355775178230729355955998880432814651767812329934599007458578533550863517036924511908490672929411257842348579227536770680368358081871793777829629419599509533007831613445764887053332650299145087807575296005460676013368861753889841829494076188466886608379665598239120484320327941959729235169396057981781691863008555769719694173535187138536316602054575659309697013713168186370897165182419626505665508938667579457657226371529781443135518798430793591954879290950386286982061275272606151387708320945832824087069078201529116792553193456919484700395711126508786091402336266765628977111950392860319086029850764536250872053112524155897242187209291290723292796743587839829626334234675377906529975434074458468158458449853469251312539385616950521874662666089345239727679450353911149897282305132337452041032319484056293150429140944433511345567006383009349209357423788323745282417756295254457186747539620081341936803868955664579704276825135385105814628879372014552451771738311842763982908472342640436441202468890880299739184230803176829362879577331904641238597656228259792706840243140781417003517132660173753654583041967049104252365141158883427672945876198147264092672188745772567979934724810853242907817158048520068464207111571645332098540995920178734492311402208370594364851742314253678339844151237847880070016501981739694244599900672399426665703945195325484898542731681317300734008565680380332676798128806970407532800113839708717354411257938036361979899724805111154524390956656624390954781486796008892765899729934599720892809147850142641316274824262267595435461858906590933826091401167297300145059653829528329784451808271469370848170189772735465428622844164498863726706044175766009300777403383354209376544639945792136572181160681071026050716544707271878548128302399217024424137074054670248777036280033799249554973443264096204490460299114141209481233182358556631829509991410763776443342993798668714861995652672237416878870644076007613766554594154997566426899128491503656112029174658525062409115548688091880581844590636397677844554682396537995995330547599546586503062382082407603579707441989005834062228810252239048551657749919687085676848155273326369318384980997504877480805179669703909061610567055038862041522245293396676328978896295546424127923102675819135927789648057655835704381780605930518200192574748726992170328291192166507650250093913496873162241217035478501185073102501077250284060292314879376641912262803330211237132215981956943068396822653431567285108907719426661505564006113455506373521728912240866706814522547636740649960019251036102503530746427248568320555745542928915827123654051742080093446812753323333803240899165606300598904615168551429580516662581999043855517233699438023632752703561345110883535748753166073276647300040470385242610641641857294299746400149662904285294544514928033015280454482986429939066655094019888839432347744569100630803849361965044633235574071724242637693775988982371138375643738168783478986584691886711548706532057758439518068016829433059029649789795414866652659201740638104914703764721586109054203170453046102095192702312793381737587436591709169263478987567472309343734824613838413419009725885249433346669559325538468012021177272633357257142302157343674280060377760603800498342810428817570256639522747417762152785148523311238191351239243365069395377242759014644040876290398503480474829373828292568635234289842921705745197085756443771139742306383492268494671693485311226057634994983017024647341407988189301705095863851655988672624997338652117956800863898010822172606367930570103612855066569981453661466790858131742230221166560633076131514679968402574252800693491690811907148566783133160889260413711112946206377148749033386276570696140508365054481484307213144059113259689276707019557394831636346555692170481732085141067819991319773388921373461342821608356594733577199828677030472471707195469757227394581820242308832487326516931552174471683584893928388120529440401637779033202215202408155537412763605093081924259392181966676647751017685249122135969056927429874778129523185513265556479469704411692486345565590956957092018722196246370319991180705097349905769244716134660554450974233124071104871650033039294398383372869592272788183349600703584928868372474058628410939247119656773058851918757167793197673660379420860663921008704851171866609378511548795529398532275158329896654908760680999127311257067723727234420076665891257782388898409899079577959353356691479020219012974393009568900904436192008090161326945224123215932822358734617151475442374330254411056959578217187840976178285325686859875008027895969887698228594928243475598524267934504822014168867889811909222087952011265422156385638008574967152872149487280285585758112982768135175790990733799090435560999047825429093331111966692162795928348148128627981174995632789094961360671542405835241665444095632975160655389494285092404677278204328309858257675494842948334425013545022065636956837921168715304609234425901458344257233856527390582599986365367070676403864164172650085474055926952838470213761414061376807832729776416361263931474856379903853386970231480241873157896619052489504058578660271015391041591343419139431370619535414363406071580971560593003249216870332817521363898392721607195500547125936908046151910560657998640029017623921441339733718240677278440230240816952550527480579001816004399662206713384067132902957464783885417536645712465389311964423184011816051148374486163050392678474238940579128070768925603936679155540528530682186545991233560113296145700446195191457538451069491355318349431039899159367580962046247254810791598714396484272008666382120803714302655806890864253695344533236215799648315098362776262069029607987755736226473215140269451100021267745957633987373377958889267563249075823990995735713179099039981142723404031708996785276033346433569696037178849243093033407848061065096400625499506372727016057770262974590540018222022758953079379993382678779291245034433657894721509026419346010892965781819220571445691384287733549544400056740861374887863583920013613175217205769959451906686041633685210147104140869014760497504621020291175924368718675142148207976286756626269224010006733873617531046770313099963228688150286614225830477026271029942180944942502930401992189285935911151915763755658218111748403142520985525930247527041889087144515170507214825234051213552510114881530911544683259083760208135549778982257500305883695765840854553154714353679603161897293978187472170209088141993735394162926514379996570566295791446543194987480842644926885186732433043901197019362350926182818529625590365989294847796598174906050068698712716474504161452723959891219679133564487891190126985459997725518622497817661738796066161573172390865265744112519134346172281246576831276422880414663850487392013527698682858429811972832220831513788615851930312391260548261292574386559501178278315127216473844590841340011042937919737646165778032440861287745430566398863258400111297413239464032441870115289760103216302908014733185234738397265809708724344784736073644562821347849730287315899682205069255743523580537107415873747758111116126847684603698456716652649587746089278396779973233667278721238893352958594874620898175441394279869263837798834807380625328925308385194060791623391606296525767229401154663056525459341745074882310406446404147241542457103286640209278031327864656393404406949544562183723859185912885357753088300713943359635416197295880059223926922425067475062504966257598420061429266210336349033203147339694183442188471028756748166693298396930761589513491547327031916303067721142720326741830612800065528442887562509262435978496503348075996647622586968503812108997657965329583180746358052830266154558596166732425502619421724845948436328367036207931098262674754660302891198712510524837856297151557889641284394831368342923688052171647886248579440741973433413813939933888047789886172870687372543955198793156069751417676440945256258652231614270972547008637422163726413224056605667555310806321494048625936730732597396711717794901543906210424919413299376669952257720666199715709183087893029573062723017191946212887413294750496287799609450360429315249802538027894710923344655673713037137528922979728235509554833742161471556033459939300074155614051006392992379190750289784329451465432620021170510620277948914650760544399316229182859143845333862298051469151749305696542302984165309201749900796275439967135222626188636425921966532980631731164474324820813451521585754024446752462298685037192983142929126704751280650831239703500905298220148265105211417170611425787944189962128736099170770258512150696774928079209856368801220897936981542758060164361656266087608442391474888286275062824387061816167779235509857731692896494545526567181584003796312359308360530167677231302688937658316598595737589902700019983663543417642710319294696604337419406126380005106541305083011628978640021226322582035072678846151087783867815377185194450660429294717310153707765209442008446120385187806543877419654978746127586107176725009613863548586251916047532977714031253775733824682477826264078800752988716335452079811020700665737707078727222955548129433772890869174613880022400830612256062301461591831647031195826952198421446319921725704858227651945497062953142806719790995478961069581336425744546016668248806653440247208811142617433234910238505481587855564636191329708552144760053344162654123718545197522817918846312135467755333142250770438780055632791927521601667462451020933404947525776139078763437532142738733568586489935882656131052698873183317400460771555941206756808503647907413318466206641243401735916688483581350034475225786096070651833653895436673253988130016288658477646928663959730095420321393856243099058734257126372858033515933179758034591370819361048361282990059813233038686482020723192462568575796853752604869432114077477793138173039438648600535582691602345095843822310540610228825806503925684823266719277809278993858953958270035177164983487589936853831516366866391314482092768895861096985389910482108332729539801425729976974331135015567649427798114541163844952461966971036885967027136187553310049696790246468408972641887946933379177461588753258580932522739876346022170969744344647683738530427680607821955087869400502091053206365251571996632414210802452084894605961317932137850833483881132297498040235259398591910448621820947907901078990288832861883941603911576272214076377174289105993863580981580149947940085321253976582709961040817463432697736032767730835254167939688035772196851579779610786843952760127417785936872063394432080633397184020878367721418317605066868030474771810542989234871422153889318567145328802731656509808343847926541052667129204794787626254019736871421209182632638534970382985849754583279181440115046893412520036463128397696561345640699562109323648814411179705941330939744793747337580773727082316235390747260690321594346611458122314169978647133343784594511513219477152381549393568120899065340854705740452575273597235140714189494600387509407180896668199329626663541125387121787207956412703027429960261500060006705688893953832043946349315763276003446147565760304281410458664328257810338195544027316291892884589519098631931754604035952571630594185614759055754954371624117999361475322256582755128901611448074789533844820439930935484903330114553147890692070868752349888930355433735455914170295102256604703804418003038506741869594850731546383916847530843833527156867617447265660958564015831589659518539991602371015510526815480629677993172329598401825878223425416510201660415631936026172108780987565024531715115174022689871105658507872639652544884073954461255252443527255204551801032415897586765481248044861169765352514399680078508672715674664501126553254014331306962841206811134038842040587746076870417242976433888119595089504519831984770765911651368123140920076223004048767298969036767936112608086251187836277783097144213377888522739206435046035647742155561929227389928271173351041131619214310156578948022868411453372117610469283545993889629328553072121243191294137077410410504704712688312504612379899347396279020297082440148742160097116783172772908739607731797935050933625500411201528928899022087261015751766431693830003065248122789601890573358484651883183089673564420921854487933568440582943216771644920060951386191739093619924326158270505950366704354795560698212789263122750841405058906076662057661970073512716127545892382588845393120699371692511224864920044914758426807263859366794860617358210440894327273921400009418199499112079224810082492354485571654581547619267687742492167409042045809925786305369918695068856173216825822472971611377917579691604092548105907037488551314423507819877850834015730978834714889304769686831730632587990619325187320158464417979452357304293484587427127872704458712391277182072793891327437852075153770605763751937038116356543955920815588967975495759257822150256889796860570714155863300710134918601778210383350231414756634252861393973455042371318973091241986742554594882879720166466919105287596321395014890390648757875498730111560557727199632306082594665602436598367636813685192862370972168351711283829208242903875357053864686703487963578226158959853212427372943421595047142259207845621418163038860675737149769249847339074424596532239900321049743525085942908565796260441933194725469366783880242695322359896226410543625552541457643679810346284895744882370568644122427170895822729462005776126288305324070041570336127048890952824670104972748733485904430869177134543429314277649215882720498797702528027005565812270940072781964079893397268064232324450883668514222189043267242399068337644301756486792465729638275764208557300921749282970040013905628979210873609406702287770743705770605625436000501087313262872648626555641909223159021123100493372386900604859875644948944765280718859393425920276216895055573704872686871744973883327274372541404460620264451605219558312794614001864452923701566193187400703126491789565815504310149563458728806931590004060521457307110936723068453552434489177158085067348666808859367065675247741041305458503835224497638846910599168684718800539738087187922343039244906478041218626883369185432782888918479462789895891276967161768321387024113443590175424957514217263894699078495284467562584221548467521108107556991237634650561198769849755328352185400716608539590826451008441198157570750854375322098839953418100093196673741614407831441055687186758030615731113580910607935373258711446500285912064553184876326847420946621634952447487123868729572193884400574966662546619060069966706884124510453990938879423028930426692183721353831856567258236495629287416980418708218966028100914801955892196158024417797165771781782358696565203391416820304060956212245320251116239096598705831071781776978386955240787061904539755891659184632695355206891150773629557391769920583077774499748632142706440413131083374398054346578535233501251422932629319116829851601756225012684030775264352872753259022007440147469208024838763507192073942195504367917581962689400617200522430700259922725357951443242087321173282875343126422083349759581988195205791773859894800814067022064620967305163776781923893365089623938489959342852612126726994384655473553239725343032639886797380298486412277509951211837368796620144928693346553735629856703574060564054309515518748455403340004356977012651884647755876239890665406153658738438434029606083234843280243837098405603293225513810361129729199092802579350593393718600881984840954823663171844524839454642313509685010712093080087915076068597046050190304011435262215793056825142257853275932585841198525770869686276674127907372347313590887551478714733441316015535896480900690558914181072216595883213880165021539812547455727672353912067838066682661378603915348053979664338804852867242016038542990622400268823269943199570092220265675367820540873659162622104455504431792805710240702859822284095981863135455951185904466899767277859324104117379360116624251786639568297311304865059249054228915282259615300531454660324275158927056014990449612482377151334806921530072408663654791918448193346315897376398238919688746980303206927505960466781903870478351711960029022094591067808796005531165449906706487925115903248828688038964898040428360578987775883109832523852912141894100537033226558664997048715561900951595688683205513116776511427691039101419238882748017032739443819558804369353357924995170451248908053572837497089847812596997668354185398955756181177869692242879077463789424441665430797915427516213889115139572701479503939742416547068188656423771052293147584013494423247473108599955253697926790518726405193125269871976425281216423355750324823794407676782803138231685048765941101941957890141267134665297737916310621749155366366026924487478626674560993119210454503987527598135552186361133546652413688527528678927519672486382440960723468811366899037795226992823611857077610953308709820513070195847867903160473151049669527807289679413264832748003138839793075005168628566285979164865871444141912225443156137794449633361373478131656648295150205019115634565983433624213260143899588986822263504207667707248192915096963023039213543855142292944905468142111454625314282309361065577250775629110563264599928821829671316177355923613172758123768914250119719886002376635308463239976513924110512796506049594848786184485871076978436746112859016897049945320371148036004096116907979131985228054282103336368230639904755504418611594032674299133185190261082040195826336432717805288454924968095240886049572625759007074886835907003408398735045919173108815231497817293957864202223981837764850784485664065892913366739455704670800144282704968786710156793912029071551155838014376686172586162165984249425606909717054078895186836266711236975393051049338874602750576028139432483649504067361215838943979693714596749002339342414751013511827084814179445000994705597615005818390993345723597253839647311516572133252978003026696146305319448191848576713722914982444113716173604331299927429482409183778398410879728647786553725686932330640820833670062568058375074439656102282729685015617558682949530551933305080558603342305268068340329682233726013234440499903140339296653518433638860303551865583710731998087910693015898914738019198697892761520139425183962095419536970827447858425340676764519467931326417482378800776004540388123283498681337890671478629181451345703131431462344123559966525156171404667083073039950581531492717324940870533925381270542833952373791148044527897537327390323100963333724608321769921349633006796455184516388398034566600598935365354499911063205357039877868667489280194486156947263066188968863814899965553713965662960583705726498865399984443155612098082329126825012200808990497956220894938063089743450173341015185732981181544535655967769502868114435934814103893909934920531195203575482028615596268024564326725827966762184792387529102190612940177540860862491485084223801703602697918119332628856307956903569650147032004145226246567554221396391453752001705510375233030149089510108925413296605568654776191155468718567034521711250794315053494495160684686760776707056808265790051326122577157283631398629962474179906027044933605554935989148462976023247011188752281352364520278645469945855150357568174330090122151177501316552095027326665554158658883923528042410178496383297780147728247985767734631411462646040998087919430223608917900051003519232925821946892197572213643191442084434219497723234034138017958698036483622821601460037095613229386431938512853865272570802992291567226437821528746474810116259600974532840441740244865359537561738439449178021702725415124424342704701103230322475024991550215399810294723545264560428076675760088095910652614545017415018363369808956651956974370360448761898269777699049839956090585830626610950771444809911311345314073073285599287675755263208690077529504691898190946871779828833878679977285819366430333133474019504874230146578047465841419737704359987609097672198541410515449607645806063873361284390490554468026269686032351688547929087437346865554243373996819868119959424412681697962788249479194078101109619586087702333916941742852729913237549796243888394622161850163562784851310227782410345059716647516873548320255205038853542784121623304886835247915836122942112253775349540805470677616598122702898909243609861937386185219426664258142541029130964022997751000784768888338831327534496601915191710717362522577817582995756757900585554923851314474366514531524191808525774185386532124724288923090147650250295936748327037384419474719623599340642733648982409323928811425634955967354077854782129197928207586964581385893992366465014947928847432361627741587303938766036986117935439473001061481511054197910805839454373386286362940791840307170788298251227072160207676843495271924274792914940156669626102969403362520330407483857784181031216507361330015846634924551486525725488246670045604819530188584292869286600891663581546320674252158178437385130688350548254948280246862870811739543380550166146674392581895444602858640519807543147217730727787016456496366351388279821478425929970028231368092482596713908875976861385299510736325627425531100489500119369596647241342799450985963571310537606920282194966931280914409545599817746477563535670213284991987473277147538537672251921256458226203225360313142642553459145724011838065717175116112478072058021960002140191915462288574200601898235910108160175211559960897848136459163434075013329833711757287436049168883997070471416710767114228515433468152218194384358914670699089469489987453669756760076838611918908892055310151451939814437399279277556998243602103064060759587188246132846440876099603372751070361613992501616599531132871688611983174426950449541750040630642771488862599680305469050310686632112097845015124589699926830981163811365234593072251863393758327672421121765313101513627417741069938678870192961818407093358601131765302543494877329504261205103887028501513409153212537582629563466066160405407613890908686643809527409734704416386757879158925529852267741724033840957547352216138067827302566617154839365813283414431360883022025966683031747589013672692762658851831760398031092185006128544768180516592572603715149888074035761811104553523227996919617236801878150542068154705292049802279445030643919942457223469999295028247035906952860562916573831540338810943198507427127083644679493234890467325172140612756542247796908845971942633384775357312405004066707354707015729920284411953562905391432364998733899050320470430097753703384544575285705211901916929796560060257996792877861538610187382504552493056959539152570205332591439168144223738287840915202016029703247973646542544434113579835867444728555508785995111783626055769613710713457607475138110384775185583354100546692854189658212562130669112078969372228796699593098238692583113453896628295213295016912507559195147024204338716734157187543925310208857646150324329306276467996774351761176279639846679557804941369957145859159976315731172696863352781832533070509053682429731782291689939630159091329682273852973758520829796895710119042569553656694314830714209170765912964663008554237537016655670816443322639137362504162969288831346302151101286193607677756706816626824160831465930803491083779151353071590818412358229872031836490992630922742706124600958664598580224583440982443998575188366248382636960934530888535607395800898289355517117626301916199485632694649941918979122738949967141757543351421362535220556520792797524593564734985330365941505749625351863978274808221979618562705261641174822992212472471334959638778185046631603460158782927185159546415091556715714297065245940207218664202088860005254406608806883222793483544730296610457475143675371938488924053721732809535103698614497006719232322531039616334748750322987744595483771888949289967366256632757482018636477828077163376721580435107515345008165775551379434593326793088092233583013581027453950226337922469241076951571450947938971638055062833168094864339062864101581577980585285776915514288341499586449798028366558725828808596518756701859684136917126636155663120368922819452926419368937650052998290528900352773118522471061477938307100998038210050889489353076433331875816215559270038289095516283237470155372077431704763182752618759417871245120623195822954660646219252882308045664450559156442687719111908489121656461933583064242919153097673138709078375525587852123237794082516935257615103992681345780045364405615646543912221205208344140353095873524008267091079949754243422479910537657234230997614592147652768676507780733120223612421316823973429989748605871759345246149151581263438278976938557566524032939264921714459965931226322874125349475785207745542594973831975705977235224930427626903843920956695222614737878281900254365315637652075282937924039874034911308262622369517384827989852256204110710128891914347957082374075872618041574680498879540153320938725717268413894306026661909548304788054184001024142682961127667492200038946068046696591562125788964277747488250464643924450637530705772078971872250539804765799810611586828211101282612312980852611829487892726329938336683410519895901105889355826673770853240828169224318334073917005671385025686446557557777183552052603566787014886742517545123100798912295410715996817390875226724212859992577627873134169206481329427506620361824856690306416084234231527090603920836945468180074696582101635221335311000831917114700680116299210586119919339608783410920093714916002184064149930311937717348564954207796248235540979177717851576181967424070247317071668030973134634016832221592965404894339705678726902953999984175354642345904754081353487174141321183662908124947463297161242891793272446473067809699460769886523144632880400745449872470789066246645414830926226977498185344059698318262731705965035217656672086834639607716199353621657342457915956195232574651330477649719289214579199061462762849711224390787871765961561631716511639172648145093455888643620983327068657704296505273432087396869310368934603762474960426606214123226031826961040501666720835198180204189618832053057064047947110353689054557853262346731142606337259380305018794806954188036303177374806435239007428339346159970009911387252529479931311462331744217414439346264015833198347058212583563355524738383338302284390798668068586145968785264809135634696615920540642835097531201249941758103005199135882728213130349186583380689415491350930512307100708587406975688804014394794483523488817225193815427266871129445670225379594527696069115592752339819975866087659850696742251615596210991739382645556383336856502324098316294488021353573722141941569765510986074668752230012373019825227262525593787958435137231642117565707739663236170428972545022866648359308256370725015952466728409066128211517047594953357419261480532457438773461920677016256429104380408520452612156812236416429541988666280110856911861769159648393268578188851906506138600419634263575136323085234283454037262699653402475816882731543326338394870436360859407213182332779726044521325160651104446284381116914037105376762769085848734242162238993866373890852248579456404979890876726407916006033480468470679885641637790337898305132456135683204799119322199770540388692035935129996039457690085985224713269871015750291516114001142791102209503561729899072998181606239041067540054037612945236546463669665511369517366766688132865449605282015556603025967758001348076058501433321769488774823118529349233798466400895330022134879448643678216470857373572387570169176838981428644046511673552524287115996543560157142108613986232613733887817643218055225944409580443059204639946853946886742709428460211534876775219842718286532432272428101095349477155498638928880271732450792014956921180665409304039573832910429614944708313320329678627942797759810634760421319875721718340959186749466202029536636977189416266746169844692939894848335478269885149229941753772641621923691860560638819702548794137800755104230452492987579200064098781502031165967260309476925691934684346466035150544304232588062452407476284754703686801873043273714167613793611728246589906721651380680608594644258817409425404085486288737813980015718483821874513825835057695493089291037861918708719625769943589289747358272423257735337420216955844422411202632771358140917515430858728187714698428914448029931930857497346278973352429728120996290180292445273528991129607992424171236497123578632802950491967851143940733049076884634274852434760506444547822809695835471940157177926191027163485751840385835051494961493413523964114134871899821864213843392363333059627067956127989243064852681644659138651200053517539491604011952573212316541942389981214966467815296568664740023181284722268875878527755935894934676211833680472588865863840084449429081390004872769412462339535683084032549309160077586262522815334392279242158232817559879538383578040885386951902783262838064723822036846648090054214269149624708513016961736728880655601804402836295514647625572045353723363410286018560691295379040277642035667833456245091695379757980468159729935857765732419459251833955807652894600885260202698515909415295590570051212403949857559833771816315369736611742110318506595496675280288465566518020528270110655360909152714207978884872414974559011133779906919359771933726183086936212604913497785063513218133454749144568966717190576802432508111960108572404482510554913027962219599651161831865696683056576116459596771252888016423624759209399871308869231374500092004247128119144435962388388364808530500027696420004388186004604153583206589823553315427352420455393595443948557811050890552536734239791231695537754430071426650473146789057080617560197861107862149181336397643761766846401593162810257036385903565856212327800249884561901048864652735587385453672107174876859993258665941344334223213537130064588372184716807699220377625709427110179990911680231662047093485693664025342444833771010835326932826319173426444588205937036156923626276891566236712972447204587450578802007066945852576235341920028546766344845614353632040243833177827811565203544440227226018388304362092750738584733877483331818003076430384517313459898266280079888267068925539803296938988411275343299392759127379187089117475829308881948319858063750441229147841051791901971185164179642876943376164431396529666553437980517191565986512284414903566329823145543299588305826216970423323665170589127841898207631179714877053728579220712347470356104329388170915826239399931310416079284223446950304049041379219051711271148379376931014607367441489062080041449240974246038338849343420356080065807481840781263999904770117887288916317160312936768751811882304196479194337330124253804799256097041812117727001965110236540404184442248861641313863420890005700429604747837935420628161265618085443006625380796753434710086005379037344760501903426998310761741029665731976003657726241895531775393643831050781582750395659337588354415457929309069087502527473870741194901420129979752831358935106676027745146826108097238091148916035285162806035464876798004128089042438302720973076038133034091772560224270616387563357132687691202071160899930664527082869911292105591165078892257060965064446282209719542131929046538533095745889536470874591449278658676725913499829710897453488742037171311954220740030270780561744029377016304695718355183160090010369157226331169224141940468430385436820683979030345136154447084674306920438036798241323590453454865629744482576571374008277048853725559979499329740074194152324247078748133678603444280680536716529386274055645748867902288957300697404975467136589949206110502232734815227047898920433639118747400508910337982643756750661410626900350231366686056761128254430236101984468497415774367498481257821381336970991781812695069571300023092844387325595273859706214448100636678312420940898515786135059475219694972970047017183399497117924832204751791958998549875343358907477070792218471346719296977387009016291837065447545154747053610509146334855836411689932781425086578004859366604219078087876591303247141233436533349391288213145166565256178121460010621026252783779237734086647415628630131890985110014659379897078977006286713818586456408946525565637292535433261696262266261794638876010434296802796144956672780203899614633111724362642395175482753551074412673853021009501408131993199250847191091996728222825276987987296878748314878315230775717998527425927704939500596209350103941213600236321462426938214822289356386497176915473546876906760759629031916255047450534925625758259946662415672140546681524529221030057291132803346630989855333241564954411099231210937302435696561957196793064987013813882253527502955288397458791265801404750054368175587685250019937954186516364221941870472063097441684258823263922126377685473882578311098102759167533901859732100511387408246475799305404264099276407989444564584212215957112447909299432212780530637193711023454326981975987192374798640856367272579915589088601585576093379064404931910768036786889764380262083840535238036455549056501998832269912340681021145590762980290711699655610951501154511228147684736878478768581447308097472984663992593856193959481861535397243585518431028049792963545165336610102977685718382163504626791056737565035037532274051831512939791669913949532185739775910822448718563883376788656539493049785279335507544896318047312209375993393591457642853601646610224867242419761588022867856715108953689165592556743792912860522835504728194569488905249546736170864642850784949252770287081128093005169783495922446891237566166288666867267161432486570998570871628783057386793379866465226401662281894440478080575670059976846741317996356997940596593636115518221882889168266584880753475531129450354548342908192038361352469903741681993382720671389854961966816736231838719677303016884606851893203245127591195219371747800610486580956274303123635825675385775863915645288243137534600598708603185647277760862725888171546065512254624789077852002631467578878762993653371881409014231359560010219326135992693262975232260800565784117987757990871443409783012673052877427643805992705914819875269340281209391020146595176104394362448618272523250135912907977501112889490835337851988281063038334822431648092480839346226409431018788299525241290877728696867000398204796868729431498952867886160957982121637269242793378693472641278697433432688102230037924993514399688766342268528218981208069301845657811878797848400389986891935194689947021956238127676411533237074034389031312687152364143433704270605466175544170249324837358026572671109769402151594880094375175628009928930619033047725896475919234851910987585039712954428719382793567832991913109114312425763264166901055205498657813338621594358542608367897130398951889114163092458859014528664667147638968251311094565298369343997015125969504209331503268283332256660868042899603156193441814640353986627036197709561276610084292102686419598921268783512649851724292802004947901913536658471417533521051408647969856393585220492859788061344083029441123980289521189130937031523087853211759175462650157821789296623488704233115838356019982807705789388635936287096986633607338134476356376651850825723408503891249008025572642581523348456814479446388679796393040421442298036748197138449339504752700630656333481985628989385233794380736912096302456365377025741186500543375782719447857242568154141923996179933213010014900591888209694948091656361912911018867548003060156789642763199995608702690835404179584307849273673595389005872221998543714741328704801823669043293000045473685953901303427676150076189943840905142762763820701375216225470031614329104984538342382395886380518286073645209215550612924794924785291804956212204198816218142583759818192580291833104391170794097549989598311358391310307873858603175952670549296734521941309408898851230064655705643924959229034242838384576711429510341870893642489631015733321497659854964119521946528716881633437246026165199124221598623593340418510301420575794498143417841798897860903632403014450577417867251116626159935460202773332843573795790677774395396198518034488548709113609889486985386408398299655905355947232146097399539484233548533537003674961830822268896640910492727003874455085736840847846383534708611883419757583039045587017219105863753327270893961480419809381678496494485246219347758563787152975320134471230983541450154032272211437595284110668478954719149019773401694881583189373839990032858314511418800968652388064437951710026064421820664605612893361246148570579390715861807383382308634399693272042438975435741274900289469790835107436290242711916611170101133105332081429041406020245377482232416521184964632919402775270022830584187670075553478189913085536526298658312841718389107518846451129046482967821841555057597381212645581911552806456579129417343327629401902964922900010888186507485071036820910521620341375796170401034019887114380323578015902524939627606092071510547212862680267646014212366959866903542429492405282262678428238800214188850016005299046438633527171723012258200777442875750602010302792074979463754207947525442744695494798901082497391940191852120220008466387139205913051368845172846073638880773969984620265319812408407455155182158595026359822887999694790215111182890485779686715741500205536913562878185924510904230123732035268327264623186659801515011477591155656926833420261206879988471810203640812478154404789964850151844898054382220180883893996438405843195172556324491478505582361719646866245007853947159955319888386752094754516375698213734925308726243819780708223606833291096736465625063704747244300040292240220882193902747976521263948745572058498935491481700116345351719324610167242380659493068611385884296048465952497214403621280234443016272946752223005923582894315012496997559171991354959802786322362817693001034715144004250144246845754860892080675105300212160909938801740453609887184260271484064189340488335207864782439606770234678672353237539518805376701873606270366213103670271109987579720187727515128000944709436602834082111917341181474517000244478118872048919919188658822589834082497316544136860872109838522565692110563537056785106637991812549432993099696023645124958333985670979763351356676927932898731124711328598894096264409783981766825454096198352695776531686102577231607868258330155121041923879643027037670622706938845763308010346464832342772103353892243888312876883510031389244378115589697556811002749012481729752182477555026188874516560104534615889263625017066114115710131634697946843254203518096713100676602616144370635987384236334913371376644227024718975387411746612183282816685351931546707588678022811964570713363691474159413288344998772094022428297863832705232743664070988611115108571033855041503709718251342999523282408484436477222391996267975792491200245155496268564876912010777663792741306387727926317824749957527617630197402923960538037710897296942979229432682356891354011413093044566194929768139943181683809762361377955647653208972489288150486876450122904526147587289346245514205932282087795691582180981310781336890587978686657087547866789987207180404740345853515637568218173627567935522327567160962021339789238546115238307177618093777277668479547330842225620177787908057286042599117800039408354324567486736796447591361608537598220451696533398193462631032541943240633915595348524822817554210769071825488556231887347326881639342379562862403146275148848569035768538551368535721084460665127175846435812460738093043993220466783783613660073575326315997927247129872463654418213891889224809552577095648966758572046035977212396687737653528067630028161578901210926435370095874630227281579187046448540947090218971064559142470080924763213543301446314763680640702079497401461114305620893842967475217747491059180859355341529647809089175725145104727890667981525767867080212160973281397271014359039032625714083424948073765930473487008426392036184680974817933671306635610839107484328794648807465630939123266046165025966055818893191552160632152034266919132690752064496778018382173857394386690427008439777189637240439829200159170047073558048114715280008821177965725605767623379826850024708119919395033225088993808073922362425317502915278762100952102985030149796447317467390507880725205895722414529985495860589554303638056468849830330652318701071970084616483543059539852931687352183453835063938477876457120684485309223057086020022253623106331554901506861290335733490299038222291240975915454119503164205603923374625690371792122602594934018942153387411191719610137048124373248891808909325845022238290852128075115478427000668471854587154587117261378806709306351992486987013848217852333051464540092367983280930230428918297474804076760540082609137215121077410418021223768546555314087416237460209458249348686818491247141272791649166944077760493439037583956469737273277500423623660564480283573525843269079935973009197194113099906786276412383731645503659124542338108269127854003366311046912239233238744395185353008029398777210364980069868681104178598210261745339927315282960577595558991935568845741530690095810548232558838508214091075958652498726966758226843003631029816250112034956662508433024928037609835121292877660780599742009819682354271879697498706898414173036600162934660282547792992881250686842981839566606007846492412759100422062270777485751003802112030268404301572087583116129569341456501593764696220762566364100393466440554290938766034185476417208497723033384245883710200840389106779625881882400348028932380742103236824284097980058502740410367817676633554337467225182116397411282551808934445199588734377463550674855700820746090902687143035562419552892777801631555988185109317579569323307180466579499779142751153711181340445103075168108217648797656624699037551901233368859661396885846948408666228701665143541554517049590317561928293774962803553146359857539528229400522066697717414299658542507912231074365930017138203097791041568818459705528083132599856635084174261779299609736984325500301797409325191172198809512055703646380278757701918684983226855001073601082091570816955508233806304838162351711630320481137182165435729557896522790331717551840047466492310151231979029301906536516347257599495672593082268771636840911430378063613158127280238186497572028917834322313373015293522655706123094379799391246757733190408363466234663211883695623570981501537916945604618118961100061588730477670089643520288834818290429626495608375894506041197454251562753554166411025481594167238144362736688368547562478249174639331392749395530271944110126740124228944458106610034004561514302952995724112226003772003739487690075330365282628837695219823928934626638088669461088734734156083585825205795050015471927623942588752183936582478202968348479959752631233736304535997646870031745601321235642920543666227811025892499610693101456615028130459207876820392503227572708233298693857846047695696661206855092284609472040525905548346447073263076905893633247818002166875211260131806001221897256776099855993668638209181829620574582516959018220580959048826077170669405485048702547333885986469944834073912150181754922036953067821488620725357914183188750551335209240013829467696547391812406460085380877620661811116281106107516603452127445638227264765004920434463139605710862851584997998488880926717411376621972688783642785594455115014155357947905948111964798453901305995823737824850674632540471881606156631193074018386029378242752386880662750363332050442645523323109721736269725991433736514137684907222194910754906311700236238523136232531153362489474734337285975792661050632758801150943397102623797299614820719261376451980088538500580916513830906061232792815298873233041896903723578478186356899201294197986674894708543827915557816833105945109740640362199151333702152973821601541799818914063363966169168331865337181853235873822643101014379984424428139379543873397788300215121625226881437028493223094266329490324710305249208259984049477597122186800815940485070655309638497758269261741786412751712404252684388568196449080333483891628933824374757170287571463285413004317845930391086181339500511656001779124137632089224937838720060233496548739059874128647817836630278254680872898417570814440063133779781059374288371616997626962173624138376124325445860442341542432989580326005296181472686682196942368237927351257074763766147537439874774140891533374416730325044301106715750961391834392107118752873769998623310918041943230145307401900068837767474224465488189551509192519390185318574011646320902470958048280398545910573590457603729370393126718238980096462468048374793397611289950634624791106114158362017215361238833806971680102598194313858342699806103161921770998829328716253446670428923530489386281540148155586284817778161237251372627967951513652959195842919683302165314983350880402964727994058446144234678533633107297367281159523721133467023671938813887953731177346369585406148447780231184291728191542880829003694781566404050276863395125240000892683184989465989402755127823803456822353476561432923297877136543190775652137164367823725450412817083092587127614416610386083660228899635169030940935606737775850121739477997958423356433782155258302408100188413551544590617648741592304936561649630198880862134241868452902321827018417550598744828134436431402537017763637896133049338621558051128915189707629351714358419905732464598525612504940439347495800923421552820142991927644148522374718055864736175609484238802701181426274352821318888777385379197242780819752048309646857433741972950748368455560134016722387748992148705833459048652524804509440408923546283975436812422439390466260408606401049254601944058621760425491823083496139105932396289843280048744751368057720293657086852653674755030016739778417181656192263883626351427520385259310551572933455875844830083156782818315524734801662438794355239520861840611310157654111038650369153037791077870033709324360781340596542373637215425981870481116993433549774721710766460002088114779138857498945570314138928866192715921118230088484094140628198975805676282741896308929046884531742096736014505091380539088635799841063831980692750576408803834212770840114285228632599361465648597896134850394454211291593804264587636601123544089897386345555959221000100323230561866344539400052910126749715034378219260360231710851131142113611873079379568492917656408750640541905187534181150432970034789683726470802352100672144906806216550604085085632056459233360935006601283927060367849232202525981260693853098408851480785118846396887263759279380947743884087367326725358727771256214193538928568701504421128318112152327044103866903657084964430395977689549327024213258776783318176111522010422151577821043838064285665143222173455852360673097849277098506265036954720772976492911229208826810371233370856840917071314045032297460270194878345714412841025806612633880427747347709474918390603982975117105596765297439581206217818701728791958784805496711698455413181957175380697188922737712459800813845116169678289696861576570444390548849575726756335319134045199583815256809281271140324935599389774152232502851250939160818337719885493522672282167220936212089762976019117691152137359648962478921236937705925694453440215429193844252062385954803260289617957254031554003338203303971028522156227420294176338971135149769929551901191562310115439237055963409148160940173055268770804937016007973942590312806968861814497752000003113347655239575268595283690114830679128237507548734180340296316392043077122565706621152330299595264785320151252346450783676619034910619967054418758345823160242586776968945643589182777789429929382930350962475110593774726158099505434655190031498319260195657337842128515053090903990340924781665226504566702139912531769685776082589434206798829811987904028674426687974962508593267545468489700689145240344612791370537888736391108347984572406123036228793810992057160068391964377727695090823183788405906419514285947621682055230298060357008551603172514886773461580406518383435326691025507969255511233399471992626921478484238171758777770704646257183502352906951530712741616256758207274195727845592616622078347122154009679083470120152493928732352018938368559673942821829455332522043905845031607533163938352644030789515492973722893863334521834565285364315773186872290936896552682738735481413423903743073540515487565782529634610663247226401497157867712258756467949412149429260407515442834905575544431856096880738642342385252141317659298340684181128049928740655583135104640289259928282243773481188734051753776131313895858504315615322374546805959698317923612468608892722511970878585673935015125799775952397767623110718383846974718394783747819881958640778104997635441471579027965429077513571772378236956193554812063184195354510842397726682566046540525631462355695081663788185656046365582909064147065077973253992508370998312917069008231329250862735485904426133840327712093612766491910859131934021698787693778122451818846260425844268531942243593439914673851976436099506817611949314237411862908981143214994423224022700040679590268671844655542379526247461771595140052205097746783752956186847576763744753300179744010678759163595591634204393287941298692528699824167395795200017181857645399473709023751433811763393804964551401154702224731950803645230247756240084779785296206782717949947434600812786205181888293371791069912835669761514214483862755258088347891238540400546470034745423721618369681573034083414144415551765328073354878308312032998435469789817930896491327570764560065656010696581241097454519068404875193170611271667661142465022615104567615503776093342752351589029490262389410323644033655544815313767831429930999478448775179497020959209987056769435510308443595037646528578743878039336703319168800186725688395549892069841983101169431638717229555137543360193445635940398133030697095767179940491671973628008847919032839829650508152328994363995948003635724219565424057361479411894273478349175654476482388928431735443060690876364047436333869761181386786041216347838613333866885783375041523035343308606311185427323708676266117579445653641717970523779407317001462290806952296039980416019514569266082441422476073056259847532207856130095630720047894943566097051854750010531087885469760759249421033267479717799395343506052449711927975107285018998472294837138023760732273054991465217286810644408199931296786529311515587538110066806784955066403983285516535694219545648989307817273411421288714045875846552827019071102328235562675926006746471819026707504821734449204125233651452918295202539832546756959001121828975741030241842837344364687252003096932248501076779258606800802299506498107419469071355053159597441663929222671619659977876854064910751656208867502459701638665497988719082961004588054290387317503927710127539976721004710784172600059985281213922025272501652320969959745083276371501393796837654532408151258967533362953325829838531357094781434405020427710276422102166047348358056865163512292865610701263985794183036305222810874010978645541688949888805028738810142945770647054172989313979718960223644262539544414397259114185110415431756515591219982300567631999251514133601834635053729599302853162744560706628396619191934387148893769104174511134037322840965328228909738224313278423666150396153959527582414207463881618456783892613015028093013688221363842068707666058535968631950698517616544220112728125293124956964518999516300172122093326314485443410932782732293850058986301604513005067926635943322199266054326962959803015304446873935058133117296887453778270582234898876508191757538420676150737342774797541224021846222604627410600073307509329609684871557489369367752710793108376822586001433379641079943908897804551272245903933523510182464107097241114582395770407741724114319048867296680588709321877003729968276175224608028959735308297299965029485787221646199669231353723356027399400188947089804322741525171715074007105899206946102471697435397306766254751124496845715360452374503276910990332316745408866423580131350062722301300460708423655533687759236257591865190116403581832172917455169123778142729775404404111862325944516609433509610593665581078698946694888510718713098203332864742063757125358271026699779460423724742464878932762659704382567839990827650213972104608965746128776039129874126637407108677283837114941969482342911771121209304301823210009376051304728691162130739513729074173178968835161414236618947048027940624179675375187930926622164917518280739981923604152494716697030642084075168242892855143873241673119098847445882035786171308327359048336367963127501188356844391404979289950386243992145738456759144738727551093898156586860848140046065757719078594134202145520073433290223701575104970423520462949829143740776967973336637857187617741475259283602780673817247314549554746931166489602792775388224747860261687970424042261113040853445558771188035803905797244314923658438322893478461529062745491510633167232401296660278699246025314820530852566870839616152279740067456238743082252164501186836402563534777237052276922642983185479872932182293602538045893856457624274717582196203956417323199794361030823648647389107975545854262037484182138004711367453279679131668917642179405099383472335713695446116397278954292384128200311681783593894097826961586466460294835042278263116937070416697844511225077097465246446824073930351475573985036797752758849607699683154189820670369993270669019670326569497222072709465136860535170416548265107663000703900862540349530285353427647770567599701808466070515455388818700487634464329370298610421394013621387002693442088895412126082697048355410433150672792144217018537109804953104318324762618632570447697559634593231677538889198847571110218317109106120197309868553398393721375418214511559169105657078217905351181109630232592880905997810686994261011519370565539000578534130652538138886214069381011215590630606392222292217018682287784842106562969271976986842153015898426746311270823616329712793711357389518002804775935879998164347231245080136934968156299735697879439090160071173182992580789771105800681078817285301640592717478641069087992478743730194484651130428028548194701271812602872244142554699584798396729578423909030884661409354997666165704199605739520207444782868931260016325710688540958581863052366759632454612691676675256852323578680444034181402541729284552513384032206170955548368202308086792042409370820791904030156373882523009270168935578599921762566644519699716275017196592339454571187524249192429014378614136707380115248397900535370079759604494025346788624317605240941784839128326999072253726551544212153438482759049697393821175090996906724041771827143091813601776155982373058687835151211230162090271573393244425875786700042611826478168266513037189290780753359353373236353880959737606506149329299258621518127614157209995790132405837646663281448683911913588121208403005615888608766767011192917374607276279122632659247631969145431611182802187386918690576685303961410953748505415415168403875105144242577652829938900943652645462879970196087375359346537565402579729389033854500436587045593337805952715251484722684731289664445366019456773618435141366671187276104584125267491900610644155680231944995570992138039465102312282113700114448628357921499502446273375251623346715906718864652584726834298276406540190982216238529240700968454359292595025712127400495317182933663486334868727491272647929811107954927494478139944218059353286942588030283739408260742512210625871635174056471078240133782515474410604343068189389194332624676310936343860722486577006238440222242251623528360723258249011473372964980942554266460519018933241985688003555701274754280167429777657629616184673442754335086031821823497111877374089591279097527327919299694644168828347071153154346067369674170510404539341552017607296689340113925545590571381362684881772056189294088625077103814149656949389361685932656656444596866988994946353259407011295499725902640194063815214844957308847255211174915801936749959102732834657143594185684023449101451725840975531745070966961999078373417663749372735030385625395083427316712655101612317003489719862220795435143615452532654631510682950643805356964701099903540555098435936110412737452658627911830610576563398715527957905685972333529251813472529476610470818535979389707876479610577382136433390009240080837878748006878661101054760773727616402021939087543212758939394903945391598453175252806928793364221353658449414034876138747825754536118430306328343483072496531635862634397047681478982228151137892548401371538708125095858031482714771079123988333018765655004308821139707386110807891705909789534929761898760362629771985359718682124907467044578830177355227347675199684947257042301871564044894992533075919261636917727863165751949786142166706376838060809669865751648197337169114731415322445837641969266393444348308723163217251001133761105798237475266286906886829257413936566493695590049444963739433465647743302431176063201683993029480117070538320903759698176935528312605770871720989279134192282366892347668353877444365506340331747686152442177597670005571998023509923993911491088765018707623117434107242303314972622715921729765023164561124421908547581353610885696682628609505226203935962511591119180407564387726854598847864894483634692397341938316210690184883243869449100083279830193213711566040258972632411116616726187299444746171748679154124336787131284478970596929102874330802668914761545339305652224322104485913986447710898481792806495060735906766786865492925137232685629923431932965500883455734530476999518582099661851493463198839436182151620941682267647845305621052125090377815085687980280482174133035088761870000017910235605235373913523519279346023060592023992095222321819562376287434694226209795563799482847320270353594639993577747395094121796407336194964027223846467541105327395468827913970115235842911385233392536528436665940670949021035252148247338916828404640363278145608983273348228399703753070791768665937904246212182589872298827180318278186047735910428926982738856280145795807655486968098231685735097162310588307040671856812107083821166689252333701246937533000998776717463563658984892994228856758804957353906222153832280687664922234895637749019816243052047193979461886681326757677056491620481694787327654456793803577426783433525343339434901898345111669347848442697014188660339073839326764426085019031930275691488793322306462530911589209420056550052430927822062311576828039916507403628286357805202626262450184581417923532342517701696493692507491819757443715836796754447117741273373180702023033094649914203518063811190715493192269776066175509815016581436754143843755034002227906362089065509311870979788996969966133787366014089506260735362165086450641798831774351562915987979341668562522985526164488509897791368670953664185375296292363184520606543714290990626892129584031323156543073819257220955254356237848362166746791047162732998997130157789216307469582833604086799152065865861449632924546550319713678820974747306145406614829422501034479351100446192548294076353670724553840005901661002873939144461017161085396240853685386003335010529201640228889500494528827549626893631026097024645075670061702344811104614630402152623662419999954353425978511893348700927364179530251999717460981549565082352610125902691001163516389556577371736957386731388437097472232451026608867198303972097274374636273479627845622504629776352809640568688606139928086104378580974189279759368043002237045403742565310624864487099390001533670801595641712292787800621628248641292305865108254907473450066916112083304250706818709974323137836793891134472717825338512009655837782424101159672647656325325575620104251587965767312034613525217641147844167455251390298216048843011677451389791715893029094527840916680740780767664845002901179060787190443352743163742468036974774216284985528024407442226230589059177709640150793649021363180862786188236518094290954877490057670370009174055430636579336276634627173367995898468161288987246358564310227465568089225647704134262564957420412847376320382520403480126559048904428183729078268382919204052842864452514945833861404440131973197512495742199791507162985231669957136004499757470116675990557092878818313782358847558304939437820351483220721124668850724713726091085917403443527835745769076460945959766764966486587370388821399581943160607147348549407695965308596544183770112488478054227446296080359246337572496923894436797423661270649892037072378286368457751350886798499775343921921679905041191143651380373149999648008978947806926539274144093021923832892350746577817825530830161996380589890453064095129649132503082758701834991336161142411447162522899544951368445814915339842028887825774005101457490339289878366720745197748796972600866887691757902584386817108167679138752455256104228694387715096681619125330222783484392802633455101671759922340099017389762401837095446669621346474655548802278499384605028445965564978399765306378324383855527963074565552373703032902674359783751880564137501225183715074766940058534945906023483313902531804246653979928081896960358265468653591057396929936734119939032406296327738146522810903611071075020397382151125083007387346973378255867632560024468544585977622938174887208804386173824127838291511695478967321773499027591561015271182087056709766402088588122688467829558637532372869029971039200912621847520359160055385907233416397919460666698727188651987564485797300520457757006447830671888117449760325556894213405581434955128771853957078722533431974842505978769497223881956249034445466671641461758260372529215626373549396323473711538922742881046102755412381412749875378311683864541309594988014474259503663604324270703912119460474209910951298298402006913710610383239505287525596799716778827390574118834271409262805949149314865300003569293113783575308874923150805683971586255430794901276178522690536302691045416374324251406403672533485723738641850501841832704178974097942336536067473431700781866758702715609662507190239542742366526554100522007658502645477268406616673689284650719109209388317734136879808117861553291222852162239159276657357060900771271328851646233629769134702077854928009641694368612208989000231990017252220216783533023505001701023615861608360528664781527903487825102941036386045638116410706707265452675506392464065000268649388094935675180197457054391659273014298846839502829272737144779323797774807554298501258829514147934905510829789680998873615213421148902961850307740159235516025159480972515689139400126806562418218615552842456374274886594702613285777374706989401151132487077242533009085218766710700174195919816439907235778083852680538698292155818742154157139868466215871187980830264620606390668575292506681830177251671452069902177449038620194433013402109488872212229184699800546179460304942885678449619597197520377907727207049196368120162183392966680723813304065211555308409232436014453328332735476086494679696857561235611667679940265245522955319962561498764546338813662668417650161182837148381253483624053513357405774610264560380021456774761978145700176357840705493608166511584664388402736452954464270200772936383283096241597666345313405298208582941298418316092731100561987059567885619623417726199548739969428343507797386439695810744895971878588337348907175239588705327935805734122695756043307070602628144646536587395878816578636912060146079193574334681567701476896501668593613816257024165839557636969267602886685128995934711716272533008400970811093223385299151637332618197980107151320451887063782701471495816756204638132518647035891959977462657206266753890907806485644692633923192910377169347998931992493733055974326968898026227508609564682409299434574472271009453258410487083049577769063058988289236144043963273892863685512213325091416114577654629769383604316019880597346744890162531548194600721789634673404628942346534995784887278702540267856817100858039144584303337854792280880693210056076470652828266635534630443166937774477809791588068284973694814895760202075510577230461068279279123244410381757325574080480748415313554515153470178284039209397210072831035289045189893803722274418865909443930538016310811787219300299364200390748819453879869475432325131442714450117827680132951505018335522601076141013523902608737749967318712994629393010435778410951536816151699384166274209806157734758191255551164132584613383878200256574646597954577016715143335619979988396719091831276634823899848657956430812591700310675269432567698701663658931215273855330308540532606295294414182996731413284442266723467780312766495650646181311391352972794781224932212004565186830919582268128019589211737990483651177260955028637079613302887442916259483300621385024841795025691619860859159714724241918665168935435397227315609414116332302608381100369683871516185379717768072381414177603898185357834142800370862490511520173183729208878121267401352325675486451261032582540338558682432082063759083251992986893490090774576747597411992662169266653893069900312295756733005018547148385948127975640696799929293684992816618441687689121612546395477758321161551953359867407799374572679475636232874477998101012580333281717167474379582439349019022558161211236724883015615133921003357555796475571850875531167542212971775534309374851363392872062749959491690056668889597356264376657946346994706520518442659143288143599290473050338912662930352316606124030370115287960542146179740974892301881903685818279684341212720415613026243516453884813149958118993686222428003225269294420155652320502168751577353628151242387571811092193056676387594862749376668256515429359168405737938541004309742019583733523232866560965830632589470214226608344547011371248648726519763267107487139581181137584756828086187556882452230534000183947013350663955783028189486641231238944129455817474773950150639676600028009106505477830345525779030411790320320780723165675377923759818495205854479809428352602042802382250706791658687762323082991290348948242911323364698262405951887479155982199045500107245953676360197601537728157451505178324846713832354604332654868961868608104059118599770082514705034013114148153502944287973447308760799767391061292089500269817929771100807211648182544171761251881924755523052580412180710665323878616701397260619732419661326825849823966545310976535818151147978621205532161502092785839976897233587310448045514772415002772641715256240542202411990738628441339840891471937012500380015494531270892299493798042426965610672681069144824313777658564922479237358588862724012842982324329839508994763003418276041822258608069181194804052592632515878281590809728726275753186183286326665099837499633139263063945023237097072493364483408258493206462700825211685141580196009376707070115317261726292921615105550899521848468653945249475285240256386981264571906683801980648606569153862204419152034619015517482508387110782932383089416481045755119366734406167610166379364081915884237014271038751565384393927423418651650663670728430731420814914954563578891119884249634740384285408413606137684249176688277334441057348773819217158862367054523316210114243473961233208928734000180743255090391523743948262699754849150020563000901143949203798971396235737656815035110270826691606050361408190754656976048950065912351006639783887505419093818283378978991682141041480389312873128151628252828537281867681599035420548456038779692787383530749602447272425119740272950468413303998282585594942524953545559972799594593158879400096614529025888962389720303111460916857651253192950548235755791619567895608589995903724614044019937151815000079223066268602942524103604385544234612735314859048733764758338142448579215301804025241857521470175478197244194966887453311062621454606585528935906456553779222701426435756596579704140137000482183831445727893313485035184746809390145579412671686960326587670729801196175649820467880633125581960201015311699212038548255957412177999328433759486488395750984198575128717943144835950152008961414597433376962625809376200071983813548929347384020098869487887764303754198700914098226193049562586058808820672015350257791647393655824524315521503114498897263211904720528675838153975664134147868737681397820252791054643126420168859080835855683280252723503739995550654621396171202705101193787138861063837322578913467388047465673221957504921165156415778332533399694161948588033145861674057585418773866405400562809740230727102897040306079830354426042872654486585595839446457898380947827906232649441321626430647678946111324362172132391355777203156007589613400984505432704798033363755719767103539119763004502468416813577897491197820212752995966672164769231853136653702669734260133358633967625263528154998782577028142200894605231198839004415097402551982497325640936779849101559686464860418883259257854366460386771318796710870711994319155554655727873837769423196191419990924208980967549132802373933159096690486111664661642553678035320529947141383532267973901600783795955700121166132347260401725156039618489129791396718923251947963656407932897935913519996262627927760912354695553423870162896943642248553511302913477719744765483139714019917842004502974017711281167327087740916055952645927287900278678630287632932419312272795617649971143447580332830151247191836227417191237828738320549915225257832141666734195410822660236489991474022116207076999353081203575233451191444725788424987129681520684490045470728375534794337038073351943384440584608999905110400095275835979034648092570994318076115958694031166030615170901605279360754272740352759505479085792609864423347094399692843019560414280246308670165022775055829816411872359626198004994478364699988316952842260674503058430926409402365449880899489402715859326303711985211096711668129999620334452496413789695541175690855031281894369568994296883942734961020495163429113986788976527885401751989004274517156753403077207746475649074420398716964617153318243482828973324266437137618490566252872737187080376119438362516133536531570054859324968346672141457780673521727160818757434576098743051608274998643778809912178121984732710664416928810285931378292704301677048192608918542903645451396865246387528911875219826937283183167206851301311170158684026229500503855770781151995590179142548758472496702200274587166509694023592845514076835401696836343203486996385073801052278255012946454225879496242529973252715862605475501870651444839923690026260995100681095113665617843057055301539659629158612450393849270350748895140437595970202286006408604047190762942839049848063549446847942985061179951662942068071268059723574060289004385213837057967161301270681777244619825323330759364375751128062328903176495360214147414017397248007527916691545239489643874104713223888706917774929444711800177638460621127335537727710431369211456138322987057279326264547111739607458942956415214373861538355592461504464480291489714465027833354691429444961832636132061884276592995967994165084189126522851330248701563560252643470640706069624587257578555291392970282153584230462390463245156376627069072238967332573021289085166460362323372640442383120131887194162634193742147061563135776769399723766740626098472651759832545541232310069526788846216290248524304799066835185334931120342113428127347055871854542017710129908324219453325931422905484624010097009214715259178512791569309575353672389007207064012787990499758493769621827785709195915591173968716419082336664334820983513932182492479500533154558786873904164724240759613834168006417394000092673539455840012070239209031205376553381327722059716944704326080778166817057226996876146709973555893625067823028722038255843047347996057360712094157213328466584273859092377162433721691950736520915221197930751578512461914764289821704012721986220438831186073177886614133412224590006633635254203295146232031004123048995884861558863931812274901157168302508584088170130605151135052068772908768702906775226211089718479927975475824134748483640779751463251733139122994988430608827219882010051593536978333067137737418945290802950653051488809436313710128609850027927573916354250193779632994789910748669881681624736417211683365847865560993085776726606207896913175523506729394212841219398863165531945266533054271254683155672908411892354766451424937450117519260724546642052915404807079359420312827393748250478508093483308868461084684984471534610262459969301984617765474764112913096671867394783642168314254518374325596702841022826202919594280563873034446985482643606748002456277192489888763718735714020919940177049251413536021834147633870618150228152463887003656741483785886162680728000944727402612277862875943302976502799563572294835403031991902905805813246119184992471311673894062997881176965606449297310006856887319647158892225837270569108579297030897349162660036427190476904154149193138203827858314725526905378277979241528027035866838972463933343948149776150747935736987385033806488072717259599293775913451788477652627312145733517056446361864916880258695472579817832460770859377012436046934851584491345324692249571522921003972553201057738804684293211482157028265148588295837234129008915515197138077310284328120003630240910533882864731274717973052102427222086045665581177979943907291631282777123130773554605444712749495963390123316818891859330061046506321519664598186979180275880111259556076473739224529290448481411580814031727036960425218165183660302146612465661205950380695115052839218422608260100534075187457845484623462680903924995931213617068216133746831698247079265468614252392991003121015250091069990186866207902955175708668728087546628980151901613560571300172913185728555407655742178810506754817652279336173034438459132147316787194474683864452509355295655015214762973238487754143300006589857506730761173864438192715101823494672043085771513769551235781976223996177720377237717048428113629115028462125438922280074198344376665655367243470709490872121043074740554972712706127121166866415123029927056554262511285860979315175399095854457645332675472326034989307159414893507380520685770150824789927003354256000212830931093245559927515583395799273691448792825543551833971265999132752258197365500724250979263281736073789295928762936997202536668754884343954236114919711540024339544341559417407880121300128779792984612307214486996648574348077426509562267320935873027325434931625405182694442522457417580140618569777231812269585911024780519724463471300511276716787980088765270842279088191860235227017200720089813741699967772274081543744073267608455141760404798002571580467809435880970608588956096754050210735358519904945497360541779524425389954805229642771038304595923809606587015544329387286311331353905084887824325299339137600578221587493409248958667402279805242786342759141496019403095154433735688759816280632840036128170378131408425324084535739834964139567923204124647473533548876747396464002044761507527991316377476393804296875026191093709065957588261877849557353058193065289028372136633991962922818418211487415759136973898092453391256540350866484686261683363935261049771408002219617801718854957378181106281398597711248044231399271930745698060894017291260387173513276723907374701620115455898722773457114758102531677960506880307480512817700345092108699680976980041588384551305260043033954487782942122513965736874977952124594214440504016380950948023239589645238241773973774725268859342074389813600226424145982908936169673409827836438727528912627108045987620196829575256442105658819594338071501236268517486801126440906142893000582472903622009044562774838639403202267329219685295690376730244696802645550775166018234182585852309981164406001542403485573305206558798353230257603053373280670589795052691048675629004000425427552144994409517922914389643693323211173230711725713821510096938392556644955679842243335128494870259134542183498331260324503230531061680513126792819334751309040326690181188370269895446543732295690269485861310320969232850510236716032328649709844845200911581850173688572511320625812687936913488349910003350030895439548205353290862883149313012767739850872571106042618712214119149472041629214437004620151562373660859742981870674866533532924005395805330484517011292841559155425599739590206779119732485566604791863289541666678444472536824953648173836208959196654318543611224001783870098559335332729913154418759269945608933077525406657385687425440981361318431489534138951568975143663677056632711070013941040430543769040317804772283711856585914885406099816525595785106763562388543392377525377199935544092067472207846450872401191798980633737703800211184574997516794002817679004111825508720385125218776027926639891107101961464532666663438020381974313898880131958516876945165314252874472050688556728021716654721679373090038194777894312527417520922830534506431695874914359258034262626199406491746626210230135021700549190878772792835308734803195985189493024538670434718560123768478466250522627635473960593393378444937821749657607304842655360343918474341489022490708109107133915090069194727729797278160083783836601541450652785732014092880679128298710076616055190343677270419347047723924598571700846564340708403453585489290954942749995912001145608847964549370171915063229058513845935410738403478182283107207121608283284016243733726583072724081448822266537476910486974084323841353113326545735762985362668675221708966113393560667156692002954897012943166995894090219911312122486001241307691533530897646024984114624755312136402556956509155185479167189821531753747392512425735529600350607729841773394635602036181418570968988328148295063302136729493659064597361156705315528526501001285693074552285716312621062843351044678828792163620337820189584388902406655293765184143487470200471910499401899887696370337834293010883243902754446282049628817968147766922018557237202850252573491213850043729181669207207309438681427319016518283234916867206477809602915065125967313150096188506728254315448514683028054534837092214317928993801503578155647256689280578303611484368902587417067314868266046771056226624918674702692822603693120382102867215630233863983881106157752887873075087035850199824566974793232347639447655538731684429851040102039399071390999497694234033062745712323567512617237231711459235396722199267961370545137494222224693946217330083911217890607400190128030559362159105728195306533198003153581352126723395026365723056717556699124595582019522618977941702607154102799641272226652004519005235850166440026614279975107725970055805874462836435027078465774025026601074743272030707427138160889062715553924958767208400523092723680960827727884922772690685954470496710939905616636253608474930302090034228027329944503724015444472404935929658476116582951959885617646786969772771837608526694559398371792202405372911204000455682056202894789283016132189057524389063937634706075532504390759388091409616140049134076719702506815568384010990022311390202810950947603363746627227004251814974493128087145223998764315008508818505073533116726074423475410260347863937760062513982465249570495957891332763535511352843904479159158009277623916297833783810732136458625253990461807844216674622211206049989294330744338637892035765309501259763521725923972999421804139072835824084514219419834240812100090526548682310742998517568955939298875490157573052826925565688320738607643412271664178146743544980651645173367807986784935721393117265791439327634257752349173238474869613774803586032624808203890569955635709701158085090917841513321176395891049913334980226923395424838072079473770363786105363780162944088073285602538520466543992638390024043911781851571233130428955404362522030870391341421080071428981259315489111599103052847840054333088396192678379748535894539723159542028155700360029814573564097603898723790738150377719695905801964546495284987280525938669391169803124860492952155062521947201418900336508853236300288890695563108477151119061505109257728423404317633519629677608968400348674569736916038661838206184077532418419309170755472364739412435212215857245079657320584597687365154873914227999774700321023405288619490763292456028840065160815527227473341357150896031741091199295082321045073489608301072089669286245346894616176639473827529800225637324748096841837593608082616519187790765523078159750873557687111216894989337879309240511078965988794337259577327428233335187878460024989805221256301055830553013367788033673694306765509133377967866760379664909159057725971137446542513138167340253395648260363477817153129696749656313704101268129782769350308530135071685382720683235310420472745224242050889442545267256325406514473332104720966625232431435189884708432996947048457510472822735880513783354133904858508377661592679162114267257612240129343129450819212545174157698808581389294715162868906810365175535074156622136353080776583513483128190142346748876507547679938693707362734401161187734519601008511115073379104777049369422258779495367622604414845651571360449934626712767523129323545089766799581186270116125434259729319199029950341559052206805845151360864600955906885280148895061728622870983107616695224631147536356833529053488415805082485096906883472689871155142306748883043000770284525223719415205910229900973943954832662612261398468717816362905309373301788845970911901303795336711587960104273559705372208171888722110942287033268293858606305012663744225646371628372497839143728568800469838997121868039809791838699881932393750165434612648849653459835592255842150703533915083723646481547407518110287445385207684639576685942804141438827440282003819319674972970303664339786940681249111647214666680472501577086057637441931280982746581449642486876205562905149849249187437451396453021380336998950372328802003816525986514568314617570300877716825314917807561895824321010547585172735522316939499153752844538144684141940093092758672274272391371025009248367694432031609191484511528120421080028384294385581152833998704050763396410939267715972801587158871389800562867068718174368718463573855073519855001966938446352287703836242293141435454977421136337804626615940957949887774374695024251276041035947318491545830967501398629663333160339720374024240646377294878195064406016779540241119860346665239838481119976291639705547057548914572252617406853302610143700165808176349163850249172360422159824040651323878479469539768337514364222574479463077356704832167268394197734200583659655419729691685175915397443397269201335809730708524735431522243582375370384446203780624198905732780013764776139088863862563385790416304466958480999834730725724784701787281157820269262602613458332720286306193719358740889291564173101644125939854618049317692819185693202847605569425182392869748910388064661238964359685657968200930581330732893091937495690257313779908655180532680975556859389411312969175025764491517370291296223861335192935629385917160997918343359740970572591283981394101698679264259633818953875417562548338384672109597165599649166452959019630522527998622715823071969527426335165065916720473872036758093837706901123930488543750488101710625949909547291350171558491641406606063873931361144772559129680941097612769345717391869984921941961005464190192020222327297908214498584421787988445253333709152780281814414791095529439393919659644412779961013912644437926806544082051442279749437668872984972914806779075077813358369685130647018001662576534091060394123802486458758671118142940734045210425839950513253583920430222171479661732780441144199812436411100952031153651543733628459375289135725937717185955529847671713670973406953125712668744889013418611976339202028702960616703951194813116048166173159922002819277042819240767514814669626872270034345523358616686477163207901687644459427512631934779242488036625403130904028100575339625572079428399508721060252275931800006727829335733175087412851707932206341696609174712505445979423967162870486035874946016432600536467296751402108516103839025761180183756413114177824615856352002610329058880439739080500707480627975991161289184547970523180019117601462484740486753644563006402187382243353375291910546231605527031403528519266077889036797712936817064262524540389929779923094582784544032172714458403016266863752134922724757109010051771731377635994870393533570242578125166420810512727935621039418663179240524029861445450405423086521720415818289242601448999102106358123643518982767149671596543223684447937310159086854971850727435234350891367339997931608110329492449833020803304478330686677083320578136986097666532043086614114916137826842919524924828655432697402064820443573572062862848890922547571218228626120939293701867060663795323508166506141020271286055538900649783874693799894671503114837538850931794996703891003471240570568143172093944900006429162047177154429571464287135200267809868119396831878835320686574039408022797017191334386167642625126755210958576842333804794616621708704647004793173724969121269647115241363163734373037628028704372524927787869244722173448070353325593466151057021505323800931239298599008211470507781353866630561611220988741133470353742817806347604666980240189158293809821583744385163784127517482269338827031649476763047032356307542453304858202869554579082361798643636367023128136522797494453414283503119228453742673189110971815490319126061445825461157692019112985724695806857360080427289111406789932790733325188179779733227816070242128724455608450233963625597798196396743341715569207171968523082710731090426106516717905104436882289486147433890057719263730063458084954013801497003923737690975362777741517725406876141786624069318316126382785722024877877117388568445053610353994130504444954678936227109200974015899408242104155560538216769821627490210068328528873600359435069843311214436034044177611791200357998994402808298359619590143814273478114333510969889305512015501878662592678071274568857498982425800740688646276822160673782886454273422908482612668450532614404431197793965920514451793002185253340560795576617464545552531735307523230293616286471187565770602040598824923850985839440487938218451268453654020130268122949242297037441049767717501538606712621986197898183601792708036761903160695942281516919790749165739456521574384729084015421350458350193805859928183935052092880701541232603673436000196220922750693172024372825831260804301127922238759015739649809576902628283361985604138502952284346988708626861025802638781727676975078470405656361278798146522578511132879867153376463490986582628022376242580149910306282084560756781123739521102378025365021005134124522407994025867557997611027946703043449929873722849228988781889349940686965072425957630979729547159669489247145777705644341568037614996829157918722416259514983958220492561215022720506533497103163754006743485416110023149238673257492945166372585144787551753492338989002376727975462558974165113051080130011135173433550426429774648174923870115135253158217785778142863891647265231683988236194020313383036985929723935217418124113247122016761485827865709196580841664631126068099694646834422744410721717497127349746619500968712931969316571929349772916610545235112534566774089771229245073299578525843048306630174776536827071497146900708154136402389452718418626009239533935350902187080053694686296154043421790380053288109382447622040777955730055008529867515124307527172079035173573843167709694707400348535501943301657272465593109011521293195380925065163980112595766576206200875265993904029909083180061085439570851334649313841487234683107096701277952422468057009922267005995268033041765509203455301887224994700540499486230710646125451848224100413591085151341962001931977415430405063213701842242950959752375750643738759310847049810918627000529794592176784597041987543356732898491582869984014184372486044598086611882960548897312408708845695072349805632977778459375420928074129430055660008680172100312099374491768323647527259999494774292791097099738838323382950008841981022957240101356644320386763153987147376970223588340084418630988723345322782842270253429116586486313106636878032619720425363340147444032359496919338584503087094676145437593084825491541394548862675543627073431527241567659097557750703483494195058248176680000272480365443130075862966706505471649898946343546504343708155129124824182607573346097852181864903859785255139900799127176672447722539083884959752644963503255225088295316338462371855084107898316671061911026457313930518030522054524221837046157981884595294997845131396270583898207270164619909826230767416121389050589383554155030972892556357463513795337578991180354223699498814363246479401952804396508990623340369474993948086295743300488957211881297276677124490356873923971475433992639902035979315808775726733620078136691197149159111980097179468213968337654804052628300405296401804661678153450820739940928625908831134211356644611959377922558759668634731593898178939698638121751340481345567723986162937734212003390210953756274984060758937763671669278930226295726594160919301130186991932086757026834699848758333394597601561598271350080090181979105948724062940629939827872749754794656304234659490737888018885239552880537225148962153848118007973947207937388166283641831842701002183118200100259542675061457763562703303208198919040035758946648187197467471777790021906087481320178973027282776469833010742702241565660184509764435205135497148804164637300302971718778060615672251746919435253239208150128065704051183984120882783571097654807905180110574458799337103353852076029401591619769917476707432145291401541891831297463724259587667892209314426063878092555285096243157332852631559058072639924923853649793874077600796618706517354474426002811904028097727705697752367179049958619400241023201081285493743635007659155975590771354440664861397990352461660977464436837556038500166219047320348993023931135562464806427608789987921012836137821937698728992840372956836640932229522002673393256906919971185801168271184216280655297628597856939285435581454089134850482863908462545630770392365160254147079084842926656589593982135019496667598120783146640583942112982913573967298477149743665543292229636701052420302199199185104412381420705327098894083568500916017039412723224886458431337016485927838257552470924687511503163516165892781701055397760614549020982942281977477642117159459393255603495417330259681845683980470886253267468001817767732863477701620169979103612470446191476138821290083606414084202568027525948258842634159396531278238120102995034408499601979007250847801755466931402668461111593196937036081647501954181957996418265831626086239452093881947827158517819427554606391647762324884815685584607640143661037870642092439812216119286628979974007066843410285909487940305907380172769144700666075981890224451773124100625437991694994595950461053893349940936514979186822251672459628424974268638365073116928820155627702727734810945272674320800233064975568478755915997879592260786777735375732732046509146775357741438058748948106040088123064800943840911748302523071163022437112978204623355811444483998120764978551987715863039710533134530569072362166287423639355183266465427679363744591604965773441071359544910244771166790359002660190235365166229500901957419431992354784618472887048918056623595931724471035798007860749145841757693675405007723221220003251040994467053370883136736016551939675168139804224043773034222697717865130061512329028058808028798240537889720153169290021938374946818869149900060783803300318001609394402671102959480530804725871157865515429627436320982488904280530842743413057397167267135510815258529415885187195772895284902900726632283027986690657573202080621552996859425196965787563407001747044309118134905594328332200756530952033898190830772185900126769207518219248754172863219209287882764967535624252289069265277592032276599174803153778424032865795780508140483061059709211746129347046959285011382894326767191939426550103477189787946052330513587116304378083759040202769194244040288053789854934972474527111304245662614358035686176958184097435629093235422235678235944839599563031366092776349082340314418135314064274355619156857907877118854286057317475839227759172667667967591861530287528815365663530092775236722838422518956318889162723072109741129743954146044737001160485717715620152556892823443617796572445151985900060326847559797258839567737598833087931205676668025326594648602680985777684630793601831092531521637589635539763577143487853071351678918181442513397228731428160642820874975290350566871448772675628479299257547318098315238524015896686213196647860327609005368967577865676270184541623494785975734534051645474912368698061118055329995123817534943793324234834886725814481037375612154502950341633445936857895611306546533530647707493912271474427045812553205215418712137890758921125737333961846789964237227624232468684147257657169261745889119506504476793200503852749439321287278968523129682261598784140599613057255361805404253746940988508458700495005175353577001226033233314666312592510116036353632827020399165699686483334650525946064574555404268897901485856020021512278319945497371557164046669541897799351882651201096665745193492884667764610809609170924576940595431090780475578136396463209924315668785662370093175034646926737112204393775795278589767486953150271394848439403423878164821410400560495983782605030030626364175893391071263556318579932177819729030587347681079041106892439635399854961160332239822957679735019265982642554959926999385405271718237168253979708952589627228874040376145671821417758440202234367928460419871497733855789475742066586519907833447126052455495547031613476208576391723892108592290924822716421804791629281398488890020272459823927684568602317167722532974551853252177061440721554321104176418623404742114210978237201178637726516081412113352612548990173188812923021947786146362675025070215415812572315818301299247911940056890445411724345421566426979215068683132759723483597204606881822042961824243082038158093422042537742300376775245535766135342549002705527315305090605139728819778498613084504565471614852650109471886592083286877177294832838925198114140627482914526119511351103719492987484677371388300329003920530144083527618706174580692660470125345166005556647338866413669711846160124414495547443559781917218246331245613364727285394495473037297424457374635117342647595151828634411432601946150743799489331972715827134636888789022100401168388254345400493994662589414178089268801491556929676310486625600503173821160629023650479272418334482055936445289509463339157330172227640499742972809374414867384140162776280586067702192976725756428097055664973775757397021715340103766370691979115118789054932166838779966404756627209956541654600866425601982863592541977311142617266037831479834515926574823307551578948994508158320305585266839106745880091659900829145040207885434224268261098600439531647261462579139850435665435417752814198309362169615264430794734461275551868246033898736925868211441496534643720187054317042328857551917008613339665789664068234046838379894819053579818940804139461718566730276903977370435118555960923175027661665729342363110306069535955907980894322269288262995618067020512107294797092509502713322399835347145834922605901530963233758150674681457194631747208699613648384512972125623855539897406660920953623794678397974964831163438877612427385854541158287554577697555178185919353348137030598963700905191066498733673721870149110885249236500106538410167335596498718348306100965099367856236110045526918559351598020704304813539955415554037304326851327837410911122568958383284035854628176249163179331241546451305424881543486047474201914908347161203711605010646132087335958802770602926056738208604989903528226365965524720167579703121636154829902873845769549939437766857235948290685079177775000988151399047687495775566775569399211763462840927268329537645018178000949239267834862725006275550703715329872902007393626643166918679063643367657813096208569797216605441959266705238093905024640671569611942474821434906486781679355370909648578061526800710883701550457628943861953895708356864426785195510947700178694732934571617062981456121768389149002679416113858380258932162594345615626880623123231972234960721277853084962957197830976324085268115518024132706744963793912381708473612694552005759139760199930449495950447516354036454618503073676674439738314449973861011472249242343920425766835712272600954197579010794365387237219493383973242588086108857069851887867176299655925114940297841954776835888610807243944205738692377275448442104243398724151498494119014409488945111240634490019237396476354164919747378444512415982525680521026300324153001353310510940835687519509611399250249137378692223296377327971403910871254984537316663440792044785717543699599955576526795873008040649350990810640907990529356231664767080696997558951314412879271236837293764727446728316843230601753656344982127904809029184483781214188292350114776400777082534413725134450618790938518065841648056677216991119385589778937585674733552427018830872917385990814750086771871204092963136755263608722887623215400166354479798726825794334546216801683123211841118336502179980945077297244783867058922187395039489632245067604999518176021401889251089135792978789041249265052248351659392229995375617940567974988600110077218984954420108560066916916447678306981658114804756998820244914928800839392039961200219274292613332061807020716399725628719523082690148259485761049515873951766421141670434323201571752577332871614655767743861551405973963965702690421049748433055062335476543211985261930510254081656182149606574821580186464259154579799162938479691602229428451293214348259890230393679073649907941343252912700721638406062416943721830731092170938025216928897230395394203021383009668125470762212238147905508066806394989580049350148451728996261495116371732453773249750243313157226567696542763486696758087065796621200924874597308479100217250396005019044534996848553099180120889313680765672794249238195970239180077442711117475543973571457140393456941643359261647215264251805168669877250722125569046123675836072672813655670367640939285165553692920235988772848195289922751874421655355940024174210106870603848113187767481076120453587846435610160390584223020445260247334606814978806440595424326535071505265268168709150274697674712069358226291195183114751611367820053156286781600926257630068671078197983546861972096536099521716806837030152673534351438657933154229470674801632683536402832830783943772815955195082307339668436791862612396237583404157211830518110043304233312882297520853763792617897914516217208819874953067206832305568868252898364594117471393507144295844960076065495863110620304225949448674271931189815277384298473061316440703602163700909370967358927281011991213566871315868520192780432598782456799626216260305187154059781667906203227434384969837472890697108580475876177677475226723712113481869922099635512483631059800909111217732094007914993059761216865647197432498015033634267405772427050644654483818679745498156631406634502721210829264125399463103466154827653116573154118258371048440559840829929290756253412874141391149456830872626574581383658455846419573039963905958657517970284657838204616149977491231593997096257424647729735189388065279331054150772605651462363465498347573459618391956974368674437686254981494875852646022498316262757691857544256219440202412435933726882198237857160937830635804083973850975237209259852700563652334230277241724441416944866208088548414444698961667369029385010001119305958274597794326901424548403876079511910961532815875632064081291058162191641947888512400366179710269356064582055089731983627368835518004135827288868010172447912115842151999102463053949407074324143935632939984000885198459228573574758033010477282322746716845377575581881602990543283033019644897040582490892223244717052979627042749518531934331600878868521916013389408578092778526699013765605964765317217501271046871333262768754505278276254471516126047884710808948035852620654635649124972135286678513946188289370180281179066126840669479595189584277982922884382351904808227110048155552919745247831463407652892514957270635684627389945738256725711118801899440092316083283163421129549453394113292172563183423724623586992233066230538082231074048492746946461626272626539680820702701639572310155765654192673310168155284918996807041808422940962990785778301324769281318693020031294470272964087289336511565249871563976886375677665324844750804917522866053739296320998181159352350346031912289257122138217627214939031192477262093595669107654248338366715248411291759017677771961538467784956097698787602500855645426941453432665297351725433308925449583568118598464438644383386540528859147379288487815502682272443791166071086115442546336913418395654042346332640376506080014658474350890782120037709902983320547752524011112766959502545754779535883865095352048625012157136208051430409639311569603338507996209388385690777805809936028852939931795054394322957905882815825196005181094228088053594772908644661169774438466384351511895619165154643517311536320440004925266350084235401850250884598940741379232012354775802107861225745210135689088849407004821479422819106504869459846759179391362852826158234624069382257200017279874225059581673359107961103568243094258578206637860916513723004052163452951708238375190024551409437779628940698873405214453690434750701964907011715050863690582385433761461335540417612444647078989233119371710218573303144121603979204121912521765091316939700044000817257899287030375756302759223976733248001903288985435097241471145354611931383468601767481409600227831950389488841179858495214748071453168182151924432883893209491688865409392948339396266615583230921135200221645409485897532188160516673974522784856901847158453340051099117481173319523734029765935954685210887565724425649557053340484084128463479882421838993290512375285844371467787805274090574927205519143022767923007955863126149745951620899528997633122995074382876416971963724912428280413873718526318709310484461693126197603147791508502354604635581010428947971766186834109602695937107974637251934767339971571166517108977979592599891263339828408838813910819811799821338436759083701469346035932914366042902887157817249796211234928531304453133873820482037288151676458078242858787334050238136124298398701509906688884722177364719315275525378585898332838339092878299339570393315311396204248477183998141492443245426370941647073236331260486257195964189078489672826806981076996572373984769184447286358886648185194910623992425992715760038048567241775817782108887580478775625125770792697819554352335892744549279469778800457755401255186128711571290304480760173171915050794336963352606038077115038255830878147602996528918468269537233185547208501292136386916379250769451593440820919612567096504544823856886025594236898335199710281308911942602883348591016031031482640193341156674985456706430445138314613168654915699172863383449497660760341253206662886331240700823172819864192852087728191260380524480973626839914408797160032358204734914174184005810720816493520699974541652270119292263946921557183632574227451227476898387812288679552079999806601903809180922345984610303228238918735478811356339430241107332263135221067385577826670110048353794585864276763992997266322655427926476437929229504448092449289308714837233645495186870338228166047415507999431715207225536618448617049326406651792225213091977121683376184479238774295773925446353267806832668545447831696453485069736595633272991218943436346209890371516435585409956054082812924358859902616275239354190734973977075679527491592030241430188862621133567999534245740738381369641362955110640256217513373978411489815349599143009843428409630263165641491147618184023646264386935026176650582186070493643345101196262033279198923909339148564528461083650171992251628880964276142670158619003313341449643906691876775621023122572652054460030710592186978349787546448449004615171931164554502335760843467838569411543947244971978336512874707108559299334656669697248598794106406659377625928685534349858052568017287624718106284005069139748308805263720108790613592887003234089826156555602255594020634175599334824721841478265534056244040731074183430655747513769678925925488153399865999193722762448267898225386430717595677398988134700488867528840515594189887017085957376948000153854588918549075476564542952041752366159857407538231043007477472428611671905265767140967727617708211296905664715459765141876873895529756594665938711617518525111688971062902916293503300867241928984167117877195757289380015757129637353129883975772917909298564879248579166199919189996472858765974545309597566325831680412715226997561747331135521828311642297663164901179125169483729929770827675963401238689265252597014462444083448486649997089645939759343595254179118485404625200110427011646061200905953629007241500165422857417495076936765740204298900985829734091394550032296549293416974776337766112412293974402239836234973935345416733878304619044144759152520803750141823099858744445767957993191609087543603944065949403254418052093854735252055433667894776413550434178664710220207586314166960189802404371787090545309451183230351994331514318162306278708821177881583931525851866357281553318181869951064603547920464406400536609315032957027243636436764743087246168816987899791532932417710394392193486716966415547984791804618583936605899884781033949539612911836052675371728287265026388868612296837766533423638969581913344816033713160060149788207947871449556592248046135374603379557113120774735214422772880273959724631560664632075792904263559756183159778135982493677504629829825038782617319674665286612148742473836664751894791563272231265136250065118610146018689808670793368447060025429425651840562418190113735588093608011522472705173046856768901713990462095034425321032312100525412514501332656856434987708294813598259599560195488575905222335806434847416541156754024260355192075724393885057732919089765737825045656642214464243254632481322889405971273437683798204737349511625303952518718627636486441053728122390795506391605025291132498147860030438633919873027276903648843452155156890387060745343326327664480449007602639517819822228537108209210907832682598164754927860432170687655816478935045600766702060071131132676337542224062960351064341220419789786549197159955469904752132135764186585913816926474098792295125310630449374072440367532336304512111666850915401718838236277503291921457105778361646792722505514608801255821672540429112480590109230751193709194621816713658144717297652812321485828658455582956769023493394320219985264830888995788141289267679047003666608229343358468263865910164814349718322024981313754295407772954309290815638516003252369822105829381537133782324457695440364944106637265600169528900298741890277624126182868360659694809558833323110095020404596467068815767521249050139918038318635251086756414749555273536642325769756779604439116138616755746162204195367673957008423604639886840947308627157147486779986999385708991502981446498497305667074434775661304994398408162160184012811490496792363876567752644289155712695597557961321490521605157976348643331732866710787448300577044863694364124284517735031070244936479989662347635796766751580008101064196195512964674737480670460928521304171192996695240449502108106396930370049840961912867757052431195467788630750295848718846390601051454543977348858117732803362015874019173244747242441302032724815024537590034632095212815197693759897549372794285794319975272282772624557155410042415647538083551030507842734710995602277397961688311813428410175511253743242629922530811542191822255849744174565744436996827357035667339075713255411749164693949365385372950229459473038674691148358072874038070205182726059041745612315413508135379014124420847315648322423771492116756262199572074481626747393674723493167165159558200040347705214653023898543381591750484041085469667698082666623189425109211669468967567997116307310207319080414097619543900166246231432175911117987291132511929705536611660990901774012494158083498487694881988305768078046201016714061072267369085596502039112814877228824999290369466284403237817645093492584008116323127968798038235138053931704941579812295024589023234348930450487258394952822174514716087577405616215092510996406509979420054714756018865942397660193844712110467334228850558884703571388863866991648534360296380597148938072481562750099743741884068773922377630432979338239997185977697568300933520969673405806991982966786085990594843206174869711660137101847071253365573555111517887430035681019344683603917584759748385682277935292931643827037094778320863169492479907321220955506214683374381211145254148298262742097767792746085151877054257572976593365696542750211357900574171439855171716995609534360640334243477634404270119427142145471254749522899321017533848970237342537091075012822959258459786651067358150260670851093052505907963832606922411310996266074344742712439956307681718118650956231254405556812469342927511521708114681225730253372541748941151215193267454265509548115810202777163821077301233259919152809156233925900998060536957641383700538431472923603145810035739538490245589842228284418614821327171762190048555302229198069181667544434870630195934768917437367040722976885637406548300950706007033267064268991703101515138967693606153881654123177505095421438556931464755337378760603875798297659177272085358865789268582023299509515519071644010560713024805228057564225091513146178621931127241186842559392447357662749693312483537151528087521864409823708275371787421595908609314552675522443904625876699903461644499458415056420189338074894160895250643269077214841423765466480422905036144403076301168218605749050198389516648248457637713089258879859257827203603239002937197723886324949918744776164319846619914927799863456018804870349378548839325162850838897294712670749394798140509173546726605436416022034834843072080591026026747112253890347564059312206120049825419691971894710037620970155841229947038983331778520614161275987608080376893397457766645033593325877625139460035312715253388674745590037321419078203791348808216124085862355192988040751937731418813740471755198247534539431922710613221773216667460591170784389595785837404499683403957080754319237853810763328814503104549454421261336180631397152168983460742797178551593022363009273703929627769843152338913202446312123630672720988713972223386007186914934950656125156819145128437723978701870799634682870284668080348749547144252259528661839543040834284466131187109719900390032830590372054866968740523749347620654650522263466279652999630768970441582416936834198935002010804166204344942450197170048316565566244367342558218877342938218397454651907643609592679639555083445138104768415175830796216086975751214022476410081464720552344973401418020384081528635509139028581248545640273930842986929628424148300224342323061861937349088034385212935635764769724887414488754786572094092130934773579376977518819388275224859875806230784580879647634429029661922769275815289094305893638751251965396636850395780783010970386031095107508225632819302724132331928359667724033919883911109020165021976142578752047252243400912029356570663767577284867829064540527169381618702155812150930095501402081053979837397874534353685731126937447469514734278691974489931675584121411982006484908819740638674474908044817368843955481676944329760467869462159096171808264958447519365824037886806021973366641047444338844200003960838298752555984319044389203115884990513298771901551663275651162968895307082135062483923870254116595668551724247635143375710190324090205823929148751050595654878724080301335569536780471060516747242876582830378062140938581704142010524334794121502299203338842856769880699186823365730799964188663916773034746212854383615915466084396979434924010799636266420571942033679775886123191946678613347594402835245563735227395057319609268434380067152781230930838015531333247637433799617601422090214302549169904197241305636953117015295555108289118137925391849673072483341446598373202084357346863753690896903591650903689414616210389291837420352846391814421988105813208381038947544559038417113807875614483851533815261398780742159962570145746520806895522289787256876303289157401725003716485637016442444265471292298240478976655722609695663499550634685238680362379652989321341511447730059826059231598847222786222319495162717535268596560412353488391005287771567047312615122764748650108487988523759562067234327385040406860640835867115645583799353177368333032240829672219370105499079117802488029621041280705366962395884841766383733941792060254805604027919823900881623901192983032358509188463355821195861438923561524496226044082105446670602704160729342734500348576158387616751867000494391237641125024612770688201514266795350676715542691562262850607187147033749529502075971521965594545629035461638894685941479845590736423678748602905600812296474446978886889311597606481085823891554606225180599937898178452904177636835324311262557283148235851342903002018346078700345486177888859445901962020532082468929553312602034415902814033639075427870261175332090043953742248244818837027508873385674448018775996573430739114834385171404519643584482010362366576293943647640626887338498839540471843117572641221972401527406857374326944842858072341520307176521113534953414042794445053315915439860230717261271753626094455461592017335446733470530132248890475652547985083045457337238807822381962719419395899606655332093458299197793576676966880091007142203813680008193211253673828803405446374081782627648595595754149578502322752941477469408371113794144660843414293706040641692091785403568764311125772014649709315648866339326439159592367828017445480816659533943475469353786108017138487399801695383612748195199850445842424263886514276281211565526230907351891185636483343361996742272423606253091676014254752915464203038119475806976690808606429395624660829953308775556907112238100025350899223618930654379091004585213009468735521215865071750472512125046686202298698918639953213745767915565903402460516889644258789456815353737700435451805229653479955957582659187561393623345989196015710676127704979772949774786440969984136566378961029175318181775679287595136207893426177834350357764264314824500804505005855960877603521274140945524929476714232161808848053645901664158721374267575590853346673655997120725869267168559142628732685015184490295170982843854327208372403655411564614079072468816814037707734416715340852717859168655091318987419548192218184133476209207068049845520189995496202750218472424009459754497269733948645941157085497879762920229689025905675460856649457975067142890925719196511506054713264575557168327632908351422636496095543976236231252772605618281168002444717532982868549976107821096906514844211363257771758757552502481933003136704564768419349288536812513035399980549775525504340212108356743864344778270512906081138565938879552006785465732072943317678294260563937483152509963461389676478704856035519586615476477655106565570613270887312759955297224554029946611388774453227825570028590020749777989717025523187316051831808347216460255795865525986235663926206735848591970190666099555948400043337692794193992871371834045268976452330499328708497319935109071337314736267241654313146229618034146849001212418254964367276438143930902772599847592689831122455542819992200338341668865204432880972579438133096568839831321841846360126355662374973248111450888127802730759925219276082749580115520744366840005856570579610225106121886523007820007604925591901782627816766291306580413734995151428829275396031428476548086767006400795937288014335570604119095459622624744978211839051513233559171789606432094320820899954135388605281358010046650205259513252575207944033561135846873996668857873344634334118903253504331429911356682147341104115840897216443596648582838230145251210643924549445623218529998362934686446778498788623956036322575686789318442114721636521193677259157783354068552035039906444023973646479005867413974777433710497670277508338593193079252119814504847169325786137788282186926285550339837909636992684971964440354953515398052279826293918525861366069401591828664263891035194682859891081379920600975467519272404623377836731103097316952293625611796960222897584764486450129382603220890685398058214502320841463471450002153292331565638352350215552927945246551694246973052872577154319878181699905006261397846589610632238522519026131568367749448887841010170648071257029097727394626688526525947481292515007413587151651050533346743075400507979822001487707354468344965572166511503564248853174774420875851625585359154597564407384044720968793182723337489930234804779152611601684288522761913908214878721840692843520138611830000625368657059341557851505639600436078002103583659604271374777837250737414011950755700143306004010491771148312616616915046979473372552274003302980961503320301811553893692602031395742402867304430224843135246009831166605223205065826032955091459070064396862615744674174681472498822024709871096142797578501930789257682808199078201019892967214547359784814117491273399255360797017408044236669320619049138172540065114499430305800979929735650584952367054563133584978782270598173043527978597460706850407899038075848395529955212568205431748048560956886350705272219238733178665272072792895794891566898410411840556229793229329040557734347296319475437683753969405449553071416380301907549029998885237213873423840521832292522674327165193410598857503081827685975157052798396991152134060672470050368362313801571662798029078893946259191408219609467166643880773314004634347760602744037833193515431250475088129808293043701734734800250441346385846503624345766413429493072453979421939333467100688006372151764414140153753583391122351463150865454053942577002035153316492023955187051252493241110606505160499588177414514462775618794226603238885209773799114234531175975433185552539425944309849455563265988413947995350887884211172431503781934786365431758926473928998295935370682401318933275456479618282879869335316223690271715746362911585939573846269378738964301422953553779305503262320422077831150661501199581790525272041288510389980699719910696704367188488168548020430361998086028840601262463096324762688958749063896364884397988147113653955524602774057783577855648273689801063703426645535987936735700921303927746593674211595543734146864929660074112550543323526499049728152424963771007816745160876885874987206096758159038799300772632220631300105508231168069364521728481687046981283619524137233836722723199773090379644811978551752261948085900293642318753325417200520806889512910491235386307726922871491273298524175300918468762425527656401418306814025522852192027005803501780671050003512793599506604506467328758205791859664810254166351439084334160288873846989480331551757462067718233698525739262320965056733923756169085149599128408913175413731564822386257609904711286277692163467434926976239208786799533351787900439392836109229532553525730318732047740497376426629157492337560312610921454390338065682560567304065803685810641004699081680444034121871246165301946177236875340286536068071163274476878682765757123721887315699919355917140458380683448935816265843352970279737975046855300518423881276593952661130217712079149995417836933437321988819416075442983753561954754441723454040419543595748497212665806921031012065598865919089747502902917185334868223870075165107731487478801628195044031269046239690819879894290497768703887319004885604174804280477255984485575609521968965010166667579300025470729170380560593488255433779326322333245528717803615054601356896416960429452195773744238129958336967191171551226640030016017594550762439954839693231290347172257595828664009081577993398873411052132037033117333647741016449091887151631502012973410611194748543957778191500099080513049303915521630622642469354986806196663648134012648683227974214327498892631248158055998939769820993882487844935880825866211562372876925535439551104399394063003266732602247652020671576802383438506906666788791929536050348426480519500209679857530298103329245102430029360492612061430146588772692593038797741551739963361713504827863702556158817839013673775961373902282544259830381110772387264348157310445952715431682000311211093891999096532328603719854952444949458371808831269701761318857482428160549440937955224785509616523836336024664259165848539803791149586685325786620083524783209601353579620807125042943077657426663539984083277526219048658169788007866385346285034551831970021601766836868995456572304334659446848167500716069059950478889946582617875155206532210406243166404816314189217192833057655508229129431982127895124732104087829055899106677204540280860985932407836713751308705440076604815591857834774835342292220391434806149293490904252643882941045835480513532661294017872141329082332262435091529427131395262477996396913137694120564915979032800421538251295899506287165888301797980856534952363936156725295397775579950123085445368292118358187487696255052484695084903301863039172324224027852140049721685716500264627118373840198912731195089767610291334060581140136605762119836904502359217468268882816520844780625262333123867021947614626860472655987170649981483343954763778889085637204706964519453003207179599287261011091404880994428577104326102551656100650783410283011598738829621105341853576244402597960700644513661424305364895697314921926713081491352999440284468652405936782945294107785669757788300762662352308988991425936101720973485321232837002705426846382214314848108677260500300109868467811331158463114175458256756945208083645025407294559575810328657746293595140768069234366668811605219883503702834853091293806843848406997250530767133583843904048588112912793587012448254783667929461992871775095632421653522953245212268653394358554301163032544746602056050463256597847543712337856757691668185408638215252560241411524914778243845348607371823272503055044509191893733994559939914475791161933816215060102586277750264665062283421504715381630960602065289889621637566904043271446382255625712557121686896868087453565534726312108312819881812587544019909650914069356505640623699356157817007331521618219174746746805214291438498686093487787722046483289519386706022849679010169645665222621296605095778254210212333862538552501691476723424585200040604462295817917467546765553837511675678296335075385661296898833155328149211366339813421059386489260685448746497411048907947421647069797966978728635260324607290544885153409992988260355785160422835597886914024345617654640089152347077930653044706327147283637525104551937995856573706719438805267909193618684577080505823014262342090241410263842439141720641962763551024675365680181047810698120465130257243681224221902335247200957098709758060950001093901784128462256688945506212070199064249813017077410217365510789680977459942389432148100847408022644908725478114332778394554554885326586895590095677495489312758450943575775376492811702806816138379351445396801784577695555605351275998021795767215864491190991060314098387949015290508325680288417708234808969061920035775566568793213455830093835462768472289642902446872452132603959099280459776250422352290648018677381998257800716260379464898907434572660679399969486093203834944229871244173414694640130236911978684054041234616702669068184585414716639996734205472393852691697242338832864302980085515029079602355027444000365503262322262073765030167904519594811351512259360921688334890002357072369175023745169436227408146553155504702627131534024616187160246846494731182983637226667027219290425329927506474616298285528584703892375450550032814761648942144511546208791045129165258542779087263174102300819758703070728387324857666071865699584526635980654410927787705298377380138693921355462304124787726934991096083250631117355435552789396967405582457712260850923544426761893616127039566006380858666078559372266580835441945389348118923573431316345474202278676921409661558424267042732136758578810775997573445786201393862398082041651187950571759215000069869804680569564591041714860125312110759435875850425378422019773465645992891955281371301566327662556382092003275780473109402442926289173881079267079459337951944388509976816048499435000383625922471691328853185478720264265502806177296730745584185167566042467583233469983728040338254354559857888014384213846062600620196392318278562095737451683912745622650616178747553283297325717286204845221060672510470362332939519591447259532662628833105272953697864157400309914704658662542548870569721817983153285172854765861900407276498628046085100649777920084099545534327704569322417363768629708757294487353521139947859093279730748907366729271156395140819394029897515382736394304939787293338334368914534189980552393877159151957179935290889812861909463307206036531989698419731836847405228828167138174251382144015581316728486800920474243178514470458931890576415889571513878521025068542504699116689284874338486673918140245008102263251828996336190713062429283320521666140569496182798560707652395802455765159997393253872161287437852291682548866074303757122045395626766971379234073393110400733280671243506458251473117544551865418510606421858709297705610612281070345056035127350978117568538023135923369342065219056019702782861011988056321225253990339108709856082774038079462421512785955864746433015412522357168532865028620742551482809522986791805115423599899428542774438905793206805929001228095969158879122849263293778042178028871871486680245712514697846102597766582562830653219021057631977878177186435984500981824073452962540357587012369402179735778976282549442081426528788498208280111097455443709004725801976566266071629655297075278894283072873107730188328783974714730216320499412502891268688153356973452338682279883841256908042141697721634029891979293046503970922786332347221461319634806323077356955681756574513508965406400808619154804104351927607147068052048349052630707066481150123789113346489704538224671852527146891368035636210644511833956147201838501363497059821640051180370107441680414001305860965228664666118601155166989590137324162644069277402069450487672680005302066097650073683966910319771296246292970071089074530991242405893606890333246107588288161740271214862659067636346654890065997135955528351923712430445959867203103097054009033389024585540104808363579049868513609032704670890314986026787925797964889619238984415408053852281120270101194808684598623620611802711665147873173971063333028019229158143664710882659706608058333740351088379090108977398811490539992879007796936864688622407756818279977447406384077093436292134015403869755085596238773789725763873718923181953326473208069503886119502524090219701681371934592527462215472863689499414352378419668629454896760824461008490007757351005398764945754315713835883858179852452720900452344688240445486863224112855724945038422311502989996906473414755320121233737939625565931205891155837849269719680795283799774981342083038826371189725992566013460666066091892893138191408399137536080277180762148154382631168962727132835057025643989339584351194527518088423718355884228741662208196137781103917672396084632678843721484601511124165836427009369980458365571830801990234195443349876497353272904451286247311489009362573728041287947006785761301943491876307286575941357403076918901264291752751994155831610602317905703352487063266083718801618897672431659349527953431717656977455077922183397636177247829251375249610369297640027845710496166676561047902644965471445000185135544869189056950885867313542940148434745130431572855460415998901675282530357022165692554071732976455310932007530079003110671222157507484742580747570024695527325400068495652625612026353971160650939834009728066375758597186886548246607277046469709959043812978699617628208288075487013319653064442749607215273903195028483084488190854365768707390938028898821151633861795903293015320482503733390430923761249624558474721477201012673145385442027318244913200914977583077146725856003768788675417391092759885874141295930075246204180709053331348895617323267535947068938530364328230772052533826026797009834411413242257496912614231902462739776371990762400792798180602676372119250020218787072759970068514558546208965330427299947576435283502026378968491884306057877934640348903922445921626676641977162190536394251351567889320247374738682215723117146628380782173205448326716200523868583537990279241616592611274624941190774156441334370877715568501956188859687368785295295793432315599709877444537457128792526573815138749301191198683635698132901694203835685171812780876953759841448585040640648197185986332194082183318216702090965191563721265253673615262298198522997706450172986915158402101137790899110460912960308289686565787896174587272070718343417001012972180665627349666384361445978606358755132697121263327716946934652836887108835897005605819445693925058639827147527169307429467181374946261562807691490004089371215505125580836023354234093385932425837131516546838913770417416841764554576212856775365345521136929129061912746374187024372454344075806661591416212260823135048572849667709315609560738541932046813825631343464551722786373090472732489563552775806856927923504310164431183029628370563100299805372487012481254337924864376203981976100345411589249948624557157916568230802333576350836174039241228818851290649065224039145719504160270666498214851899590751544366452889743983748772530897313781489151004373256531991443444858894692910920613502995282611955061133076828821900581605568701401582714096087863733396595192608609106151039754823679913718733394137625335448467840890888281520620160870409959967600030536459809451750342419277947559619225876934939653818806443881090389966250783210480123815236918423349756895011021256841812567791880118511332278006585514940892803673743962718673391558099879681764856062937281723931412179540400688209840672678577549379728394220199006153285523431404916176481962238319103981413344714074551614616280310514642281560242011328724165587207838293108189739740403851562708268904882264317137680699772408318813252927004160317169150275070922015521606798614307976109556051251652904925303182797141713201680672437580575918417889831762130974718682324490151882434604985168683590641881797043586332299569756509239730651466662625947594470402956866632526344846694490767180271877339963804695676705345181630056992801442984663368691722428603067124419083666303223217918851650495433940249182691907782509236153446274025652857287251224522618549518950412186338991674608816968343716111843116918799167729872508235071750814589084900124285877041745943333881168946540250011114958601002147126256095774516907934312353205184672555493125270147855678452818940842922321935415613745379466293015668734507946128324336918290804421499707821877135879485613857756844846140871125657007498058572502948286512639866505095277852524610471600793509720625739968326891142218954369321361464723290899015209104705073237988367041080751742836545808859742747972731890991914331677804690956100419899648849231686348109440809968928175092507858682178783124246930982818687445483263015496782255829611828446583848987744698842881236671375007536724336151145337597232859891578240754822745377659599770625580416307703756662300602710971880549653039538583125721913021210642237619121755596085509979415935659195642327998246141798762978951862777605175088109497292512963632648845636745009605070097017124418094287838472824761496345714430860788804674690267933624159787500671020055438329195899925774673902639237548686078580805846976223862477791736927623566613694621529288152118342287766923580908030240802343249834382999604629873360299303106605709175235462977185475312724765338970343235284154777796059070253430803794514156705390526926912469257834329901839433117520095871996081027974738542079051786045795637639699330157015284499650209408575074498097097140541783579982874408650984854682585276404758001434253834418166950503550107717830639864707085418902282082258393283812358770547784660479087425660845763245515462400194506865752469091168801892761974045061291277125197654987776235008187863599322047391723150115244845956130728799987664609450241914422152188524720369155204260445280909532472384365604038287284891319897518544301156814537706967448269750607353613521943624168919791362262551399299252336305980524436979796000046235613966056417022559676166316758065412119811928367225713027086395649198265975507222599838498285107590857699835832076581710712004933132868567832967787430285110628226551676238239880586612789858180982326550139433589378690648312572863835315393223985082253079519187553535390305119868022952058285901495092217371752438498499882970160834781404155003316016029754853133146089722550295768516348045066755206225353296733649234364298338873460435161498911665530703529856107914226611343627600031870627234841804572933889571897923949927646168558045640785946839334302082466169143203327721672040932289057110104595018690072432590840138990758565423521328525578013325134059786183704091514403989385921174987732846820304855802615342404581168067853119964838597324530496647233189387469972906109756992909743165468488859257464932556739860798058469629310353005593036593221751288359536940649013382418757727181551884045398901447083233437156325280849644137029100400984412823882818497909975797443640013207744714379648851531021509937401562616340700599952728626251035397787150209571308604934650098270288067275111622401193914091205791439950442271338941856434160012717594058477852321899807452586776328931135115424352369052111847135186572188189895091194789689491825190601953574996957259967400740214040258919475419103809063546848231623727966033487308504486439781194843238213388354145959390291822327713961339864787852864324828046036331900773241130068148257604293252314504109498678632485698995797807378229385487299532524633435521789934183472555197528378754044412838475986261370887623062364464686206332631262187851035549864967000402663734929939943461507304872213119271004985588653442580663601034637289352928729331479229820534636489106498602917043770470235778052860455180091318164849739756320672566388329462232579815708046448408038211096067704532965679509653417497526317034922302748747156042276171714112786703818516270730873571113099794860952980650958518041790575872318171178059844388944832785326366670402812704220935808357659994645676120508906284457682824530360047506368609519769018999486976253567020775705495169453559333892494913641017026738091985079109561100193343816169999165200128268335178573494541528297452197507812544265066383174662213411921051918123424242673090549201681375952783129543351121270898261267669166240358569698940167067486922225580541659775243244513078421651913600395948666517259911614408229037392626041139011506584577630373791941701375419579337688598335819904889076417819020349845442412789929216336711020874084136747936385912055665126566204852884059325625022375972179615134027486634354584436706007959365963152243551757486714823478380510128131868284227251075824972383993556391034397458125473054083059497732943354614636889515780800202235806144368809047750070835220689710874750494195640138066053757325069517149587137337683053189999824357297958410237912539354592981141101695867868420544242611882976524072569064724199381412641036378778585405179493909100224299485583926873735840176013736359065044862640207467068499149917952710289657782989610119054283497018066370100532194309590492102764477695399966162780550264593428394056610817691364051387680327209198901880983434794824768397997374475091849003223665555920710017654130922543929103898892282094286085294247564408835518765387769799659251741497625856222297665404698998777462875767310217839655280771933943783197901704015250230376720541448095410854654027883194155456671569630400888601298017094782190785747346701451536501633904673380696785498500242794007339870600696040483621673874531407757066318513444860478670044454043758524497799288048761127257147801446577772566229663263601877440210971584698397248096385377308464610140740689463428974487097779445985437092501867408725272376035627177429889738460048567002890712057225174069758722850922855618293123867028218142758167164432948353123608255878785622196369920570697922825872925882619434238083024580321237247014609847034684807584884438088010825629833499668227316867275742828912936009479724935777409155014256817096390376475668288252910569101751466336750709836573221574176562705207016243255563373781065066768614179693262544333281957316763374037757443691151506448067006927134422905287162006255996625927862719720553390898731360378543380179284507807655044407232072110530588509997393884886023928541647861463295153638549368037432086538077860830349059994030312982689141289478341326924332092554567344494724173485624632625381702084268337834674478764962799726657634775843546703557158067619042005223115062679414164710725387693922980194145666516005725914172192315510421776701227485411915701125087356518354590194615963842947138797373604545577497005099326393847384722714224610074765906746347726156174568928934307114991842275605421395959066053106124160273538224089664924665391875925231633587179276170909428125474073250570201426304247470693032624983910760228095666304230005972005231630309807039702845635918177183628661935845039348357829195485959355205764356637590911180115394534132171790806131067185048047073616293485034530489638575338705113748621170268599504870974602856341211049896262370977596673634281975096515358648314542136503817789791626530691754276709659565461793927545762390578965667839611070791174952208344236489904270473589860676829368552852916430638949526839266256801950072835086343361800809506427122306665187617499565997225401273555658241157437044537672437541378861497176249228925134031884175645560467715698922647576621387099613722357660454915881622286102368280262486163187628914796896393691332530375595570353393548166670499280604618695703253423273729849941344893742301428683576942140164157679752953669929122639344379320505253469282023841616726742821261068572270926220082079230714247107374647212474354973380134933213343739318503226252687974304455693143320555797013426799253825401783508443790950843302528120027122108312014985394531638187302469122683285615533096148150852304604893974861338263193413279359280472252724797452942992792932360194767948955909231070805717565346055031571245373565896370203620488085011487651024983454096528470694557723248248800381073758567096893266217071786458566256083278454083899955216063750939508305178153968560093041938540494573449856775133497495035386841501418198751144509972285006446483078689236980453875592028208980286951261758415469681877750893306920140096363581420120096972211237286664013222249224907098470509293735397758788355403931072009305598398829367224697941299871158726656414832804790416209674638999565011373887383948659426246097679735671260049896298241020262802639380757605354593248131109760142560847138817836146984765898132593054229271813699438149326210995509011672072768409280540991062942358711464029124742029887206881323719744356316194650258085557141140072065729133414229700252879395380670204960537298484937119568431947630829758524587622203761078486879734475039570663602885983250207253871223139216604563925561566494543468312313689266483879200436458159234475706010574553805804838639440201762962920229922238793980364544557519136672714614238794926576763824048872834880483889952737626266248821683597686296799739132729235887181436914729129746523509145119615250763991935716444170627905002705624283287912385795151075955278124285875513907547960240685873258673943380138965389107407817155074552862422263291908340969803618861143370628841412610831655270723634588473129149727333222026100059611380584084957518746667225913453814302658106142676805761896194621164157695722908035214407988700059325717713894967075257964731099715372012521232082668882970138800352036481261831143902717595608400300445516591422443701025559189286284157427048974661804556696964498999609651204130258743990281785102486606232543957096261813220490134479529820529256983572375426526622641580157708413400039293346674949202398544180738195686385906301572707068596434696580228215592203843318614609021615638562413895765728524037325426858711008853988294274157205378267643450657478703598023346497158976234094752049073727046680815920412430101284234536936242874552469656611927882690884858810143669646581856775382286344841361520459187037413767382350096384412402949519246755872746102400437089896009600144174727122111877503129009685694939706246265813441753034059221259377076995676329468186981811613929529221648957176313923570698018729081817973996370946083893122939449067063712315805478250900656245134947310859594015832807678239884097842691546387282887871009862861109639214437329684282814878921460031839106869622756972407355056617058743189976580462264921969559957280416169740082496004516604683703548314859711548713123738375822644712068727121279897656130324568208319287415733267624567787914159921019470306671229839441639791159865890914036806677477437389262982414483157213420064836964094104145442384910341154837369945405605931073190802546004232381767562447412319400005632634336049317599530871247479928667418021884435308223475895675541453350158230047075554974750357501084431051813049009269365786047830454932030125597302089057669252671459425782170517961748522552787752895939367826115577382042978765209770620509828573270203694762525662986050781986327875011808893527692892054001928432860444669896840058938817960534980564938909715261505407011618119308968368642454414518655175834649980618651508848125565042264598952259025601851152786648799003379696696852052321404287185975736719092497217481176805930628892151685633170039811264539735592837730188478033032769747775957475332253218980487656727820660963944313009178193029574739589302265795876179559293962732717153869632189093878055411773576351095892266054790663502632301840233443856324226799904762950425061739049700436073192574869303340017261302111953335298093074505268458017501419721119360187257501005242149432237017425700990562462941870606387076839469073349756010669381501421508515000903168069186340366461521204386319318810022478086815032704536779119638617967585372709647377026888382829021987751043758956759028322038904656462897146204836148168465312958097515224123936704354622797960003237505356857373574922360709984713121760695848389900609767161192202151621706589383374952755626236830731970439921167665967301097973806669228645794701907274413261149505570406860174177305139457522318684293135467293987017189363873125231367248247456955711606570250627273541389483748045576186817524627900254375346641900414714056682893433218175630466605919860328347441578466000567234518109461918427404806693902977792170955789014005632311096331451543400084696908688216324873763472514907994748982403457804146739968768223600027683641051119543102189344034650019680280149828132007312566014649068615813054133168559670576331951439214740192372789142495737844809391021264014311760656283363959263966509200616386771969234487159344301119524541959591610979716952281311210870440762064096554509481204952729932528156264881390273973850108282189999157208843598485435047451698651788492700957043176606828392481752594843031362343164509791558931812276160585601648808276171425265692023709832146954018710822651983422313140718732215783983787444512006298505029982077056201860209235849763434492917242517734909367449564693263361050233019031147447479424502936896540793684808368555162406451766664930462503235892728552366258584211172639532587636905088728683456699060654511346832528844036026847677610621915742934785398435234692872541300167010979833534128292473221279027786951809828434527767696776801972307766204305079876053533075895182747040525266351413393895006519731364786353543870138709966918323782122086537136094068803530603819121251651010331731942921300965739792468823061722045910282131588505456519010683614901219040116995455346312935146354345851088101371493178538808699758257745232083945938769132135706753016674316150478612938685212708470767876556601447985295473796730348469982114307395187955882580720719047904259351832116570801973136684691803864591393234265988905813277483269069230524778368055410275339006887586777458846551002902058977569577422445435491206882307964513757718803095087780639946807630611872575911503891975397070293772749244347704406942158086217893219769998648830638154180068827583454341379814750528384388189504267627843328293989104358125150117079773619604548210834628843507513284754393820583098047260072447304514238222620942051888004444041134194387386414496243522730803140139028284588628579204501763534517268833276082594162062869414506025710171135834421742241530400281862809324446659315735789405929709797856111285170508428025879245763203876274234267200884569785627335294325870738020077111000581905209547735769500163029033566913609292088049422999811002901026071143870461507767235921742693031179167495494620711916723889667362087382004847566274487136198266355942676713384545909509473119864175333375766613258917391448848763364274032226817526722136390057777533947639224826472352499859527117690775421781805042791298841850348063712973376705031087874265429452361249397278321656899936303367847005793210765774840004862992927552330216605744028110200022050351200397141696779587585064913405582859975467708517821344547501386391630522348589969139538982796978559278268826465974084395058965703945970865649289062056628713840881839936100901511511951276917928664715112953425144833957602934602095553119511078515842466954705108204729230026161898929352199427524679962286436350370223522164859039020388623623587600969922004006473986492919423966004039491490768947042099089249792996019349830113259890657472929798403710895047239731317378283313310327763740928125853431476247743624101617782718116396030236981030086740084899430339464027205536085721563010660903339393748138145634971671780230926874242079302166994661150977963901325769310992652933451915784872785975748023216281755308394876705377501220978202141539071321427082173818903256882736827786727888124516592927526905406093934119119462650228577795839349593201519232393801214533646980633985622004118234702099783232121640087748727687530494345858201097509785857694748691111214896987418833880889459279947622305326121584656037768537923911160536920599881082592197975176948035829146268774274375090265454005049934095437996881364421947468416599399370061563939466906656551007426243548765421840421691404011733349646143107984584156611987122791535036924105891540060756309376602880231520556616387068214204774353743321377500933198906184623388143538011280610705789197395210602098293056868582019648618627168294337457782279196247976815528334417773785379989604501299105562089075501579264451351093131577213034862695965427789030594227428252191818208439247924193481182480334680478624963131682495398003962943847728704699805898639197990002598036772263898061261537790728472286904992067934416874259832323055299608680198763607023801463761965630507965767322233882866748033228111883057593554835572524403481035104962329073459709250976388457790709262195416613438814635404114795727538769282536565098835616635298258131546999811407566288018561977494517343349805573280061704477916712767880272103629231489713983683406133819740161878808041726726850888316385805882307442760637302443167269069876417173359229513798876442447790773080824587134636438439079853554532755132550214478664782685885468312411318581066201096888560340890759583723956448623227801112692736615847211228870910325143909352695724542427238660128939075999310589828896171384673148684552921544869666316208195675297482167783832173882868091156442298162975868919238989591293279292801861143013522153902048247091377047737299140017248379251607693835316697918733631093230810542062475822418690426973879849172232918637227783520705529126473494091486731741594064175716227312062320595403123911012826883198057636689355302873966123889243406955499510573046553683773466363851109509732974277708961563702432042644402584422059870757158736027620076624741401522334577360704729836533025185490426481973039541702834907542367821874019329095710564901675773767939307937239983841899568795070936109552344311370054262509614139395150277352037906890343740129717434883460973932659094251016484530710251202749980659900351695289572935778428005502694929769454697341393598878660054648054703334831691386540200110548653098783060170737734736669638291188868402268201729156149656696839598714040404731112760930069404120385398129012253029686928818522093372201559307780346560534483812121425285429522594050007977472349848932975621666329126596145820230869547216814166789212896681993889503880110258272448879675463671365983771195245039903694970855611618340263226374962436925934750230191450004338998061100668400326468609474471258117110732410266600033727463826982130871602125109178013654424226856650830579157626541140989032090181703099448423338740589935999483605174699611759179554064074045480540113447997984695066168899921933539470373026364916144481447425306235032987849316107615549525431637118849479873352523834556968028411145149262876224348463146553041556648175181209789098879335453324553781223063776399475093550654213469816101096757697984758015905289579981121077568639644970806790567446221284457794105188621405943920311992063887647562155740582769937012561043712215607637075720526988707052762774214148217686405497547132932424162366397717192448964941989202721576828598874428168566252742767130151545545355252997898066875711502956307686138471861680185330843827235139772197701794566742966354558667343750298722533304131523459950301140460052191566626262554767646549386705943722962927469884114646609641550954899180841020762123233241340536577642381565113672385385153560808475263914697570160551722670462380559557483162909291301985562441677415926243971442317950527363224273707174557543706162613154507931817492536062940907254573029762696978565786587990958424475570936089782230535184075401485489957087017051931585266673505434756972585921428718346666578268116119539759969666841248620638536504424595898600570045393200386684124082562789880209892208997052271486329654100171619692735075483201980445588501541196732207727868789305321971508903961962339390236342874177310210258934251741042246313924884784116563688378746759888298282387621017219760929054500688209330087053931428761660757028044736317280408796378783354413985243594921140317336124445500950298113109614680666458039100259070435035708742981992053619684959380461200079611329851526468415213379623320109800988583190885602881496542682889160632237854930061067711285199041595897527089655521232947109491513250454519268182729637172256435598861952555708937662744092217842923912009894404386116018599035001033565955951747422247064021952215027526036169137073084639560018538389867812179111933429049223316808936430061345873001160825206034448417594313846796478320544203154068491793413031106980917312331306929809508337893818445047661324748728224980299675972518651514890138504921107716148781464433733503641026754827468120512301544312768236461200543384538417739204290056141611869204686581967697582430548051287075137937152257574147986228777851439739601422880004425036362907703531519206612350632070071631181526058540059928689151458768297680545206923753512932529247748645198453003106733521617820901306728772218951085642847932999341891730178895417003512897090068452938518899031649449183444253664608877805971635031394983451971921735073501364312831037305760711888618512117603295665750976008272860041403492368315911849223532267823717646675603729419854610782934909856289582311305138256564284430150501715697797695645779652892300836589667232320843312870366464862732721622118522620162658884569067944502575797893622524177724065338316882925570206586284671707904802985904910150019942899124049750411149103958673953417464219741500854641796371538233935838325286956016906869966096869640242486942277827577275351081323363098263195316877766005454298125561470543543155457310063768546877369189716494885917972383265510054774043369781185933185278246411219627081920945636981682251140955365447465270183933887350975786629162411108602639365453270031162885222116966877688377719295768563144163768096206659934546997524651656898607354321241215003824493363509048184632458158114532358721240236154897014023298245857734781869769311131675742231477931947489960637670789264290494389709073862394019053543306149836730733237459191213176034286253977293359120777760638512959486266169132756591057010744842012534154755882805467744255729581639664324818021844138820039392542725330750266870692738476075130194511992552998662693378916634969290527583023039529001033740679894416204274001413029042818289713240819555163538975785654253833969020918883296273578175202844435296394247842236391482802743068912398885928415092805476867770145230780894900701192560433049744561822959551807887364731005919496175296305896859320014378593466980067642303668853390048581111551703673464270535113661002303531712135473064009386656129414188792771626195776398702687760349016881073844515853042078420252717791287265542094046370804509424134732423528441871607182984168644653210484506150488012051012414011900084258187931064313123336279399477827669588469851779704583685535147435206849505832570632612061876132130644863434802258151412450509947485251009133430233689791305548929641823776205044906092950264965394060368379611197319104794654710120743094018392913564517383176793958572719120080869638487874256860337204417390974853649752777259775790891394155280516071199761229452567304968234653013098951749388655727311678484290347435585774895974221746201165236090748967973022358605629111954314681238307051812997916608090287821520482882247114723137393543682975592139559159224339096504457048033773526811645973942444859644504991841294129691236254666703684251226850821054923955780974386714194212711851806986011986958627195385177564356008558369722239238248967670798244297794373898340197667472714148191132104236068070618019144131305337594425412518172068438172925129061231086194370441181205567371227350873233539195813689567037569016635212123486225093802176968822179774823344722217024442911410330143571339670741876297869739915253015167207936812567756207016886672159090275355326881075915336719906672181176966531917199425812007056116069354832147847335149753560695811759472368999180865687737195265315633989685999591693254836038961684273255081599565680355812802190232727611807076743187843913612402244458114519067822176860004444492996082978561091736180341000503185934380460208773510115862937162906454862048336096995443779455781232115126165562909611509674908514449309349183502432339741684892522921886300340561868389210258605549345029887888434568939302611696755237799149842151160627193264628907337457073699441432683447542024519338904047167420946222387722010392300595866876607696148788718317077712058338682789487927816992745696626867770185614058812890698034870327726480445348484601327176270544251650130970043416752422686235316543320814422178291860517241949575977940493824542996437428271053142119656816903920671365442197485530445442628974935742905194660527371845110292747057513555652934129092361111888479564472170116065955763845037172752262360475550870336684533903100852938580900249326664796964285363760992146156986753491154572220961340991090693252908300827392590523315768300380922119359668282996913799511688202253742697476621596438385051321852318882164843981382677179221394526022609659462456977313035054737055962956287044644455712578757512126413911379740837658879810507180830705565442576579279782987601216913428331513149621735196934063241423954442553017888177879727364812371684798660085025394582473287756598525880863583482578483476556419803869615937964739170072660659353196746661691409897087137815355058896365779897424332890556146639219032858686086427024386814715962039516942386436486377830493963164712724796780374167307599701645932577431471321849375643803423872058976471899981401469699836713955945124340032347139277828946284324308082881192164764397840051787908403610599848520478962606157022577409274061435621006650870078339165672738747109828244266747942693839537202395867295663388386021649699562450323275147187890494273367761892015856682936641748089584242306696530067716434977563278176289802729948278360972207646085456672513642776473260236556878235252770682766976190410596717305066035837184213361235637405144591121589522375371645495829751161372527817544188307049015221306615872541296489452412700343618418327018494611724568473535608020550409968750518830711842561240133539458102330651813029012992553382247157207125653487129386335582181386074622250359950418372425796505080268134751366591330631689021562947245734833204671828698619774213290445726884907071953499359748587849906041350739747275330436184097776431102947854447025253302915943154286727783357156273327183264208858437373572084729125179402153872265050045112046224728976086200602784472275029763092724579712876780925738475842155950960037517952619043996459799207317797346148659824942869493181345655880023596762976428926223134087968561296873035853569003662326250007699855669304743482591275503924102975438220677984506214486572691915159220864966377568394197939869075381017335198388346119575447686689553983430784167755680311989889203084155452002944294855261622075721318526152186400302904223309937434915569845899613945354220425927571682339967853123786341073011212871363793616477628485113286420345611633639708087568429152188823576037853848425638435369252172348702163003886138877121245481648401666859504877020538192192831808076476765916897837451917629486494523192800311537500652071362970103958334606828589907989377364054087434832882949922955115263117608879761954957961041485685689295265491731057864907917374437369638740767172261746085579417583963849056129475982671136028312599074641472230974704646082558691335682758588823384335382827054539015517858283605165159996505663873853592368573279987596534777254759596200009914858169645355021195708912195112989096784205733903080465414001613505602292395772719555676980551076501993795147179486166594261702675363876469918948866446880675657416909901502600379236188695879774818699779348644142626550069170376005221549755695186708236577899408604581191513070658299485938548948278621992107975285155092615565036674128319737397288125492297283917386227404887881771048385158975453447335792880953224917328382716721297826972961995357195136503832617360766038739930093800848357654919813527410767720124314753933662367774139309467439588824862296821236387061627354008325763282071629638176303118884689543345786350092263341957577328706904623786635644418728574257154515702164901710649750829828789427347936860409481975369606177623801596650550556805077237637073815917967359947954733688621554770884982221245059989934752359321918703669459111192242680316015842382517388605767632962158592302657408833278195918454409303974420483115962237298088148930668360783055198777662630420405410151352416529797576795126669865815755044526424018219031145259884250578476286027182468987398182122179059357669967293710851031503594238743183358701177792551293176350412065671964837316857256265465445564296422885335622287369273031424613430116087608803889836086517080800196437165279063572241680276538878601052082917104906315613337850047225518095903004706442349225678865871645003158327372439667630784679140334500857904152220229926687985634365301941713577840708909062407447658218899373620021327824278427582725152187516443322815293652954503579147565520134843099456904821332376061691599945068325579033475238505707082016809668976032074835719804411403076101227004620286505068014578677675308773617891226870779295751984526344656567765901033009972818532410383870184618610375521579036270854337201827104043673071676865451341528005783987030972151453555147947949008531764665605071625641742682216816273024607123317374359460895426892257205110122156601869491573844328153748850263791608247707154006723658816191111589029969781728728072754809869554016100202014081155858989512912149913925714260304385420375102782096435205779959516341908854784683172254900652294773058568146125446416171132793148552809743316798334396316447181839150017966119103441005084386070557580067041157693432818525316379342525049638544064709363659401265940034099103274194818563758646078065277091797051028722821494186484528387440078130735748585863912179684103100890254304231134666363443781056371468958870318493357651013377949600207232292777886760984963867834775595735754477112492133102546282601200432065514957674552359024566515596621526015998009702608394332034452939906592587874818501311128919463908923995451597048084711221027394161423604084228959376389888083264310572750074719303719002801214216623840392892394644490396287337235243781587467475182939193961008730804756387287075340015926612258699778739944972998305292290958634454770221807163576422983360033376849301085662823419796405894300533943526727109669967772511691654575430097014532131525755715090774333067182537976092888220562895312591660226614197586955405455423090687661823154539166638721233100265697090208850477883254386931981022822949106891745360384689362285071174053516417251451809338790330204928598179309640439357647157336401093951007816697057216878003302327398343339136768409975327462210492982716005080724183696716001433748515496205492241669243642773121663457790358240397844290942713184786247388010851572641467469613476686279054333265715848717633383831390227202649912548537526803726540377304285519963688286694478502554435917430514862023496490102703439719042460703147908968353616305573685527230071551633209778089378971340987309772570909044912725605426600995505666865298518887069584288278657863834469609774910782857569297569498526099300578464535091775025645458920913752356313883571538401450709225173909848121538798882671536515778707032609522126196080663693004600633822480885353425190864014785474374021708134468040567406868374406291510445225140589356276903910271761967080166827206233496507286963520301242198687571580476869856449575359450269031334265448659495896059017436965726267646410618070441350143868567973773627099947300359922674372401869533553224040768843166731163708268266274348331624894826789024988487266629171682934355473083536868759542033119774705956514527813895370796674637022441742744715735104330434323100024159210603270580767443158411443784500487920078876899454856716096442933949985488200503049304304433890725890302734003677885673312004255664665673335133933731961022215840225254523496811307698694249164908151589053098354013069897722778450180632459989927716263442174524648245316621654219648355912910204022054999387230631665912485963273352020787453467719337284892569047357573218025162895646147908257606978158125436925826850332797335847152434941841409992537327210620654189011292513729667041090597354732863167375504624152805339267280861359102602064138761758380909855214500530703158683515474663518272230762529947145664545524501820868631136078886637236998483744704427204480008793142752086565272900627707377965148856070780725005442703437040092965209750745493829472091418251577151569809511107534693439469010825023499930408950729022055742747117955346113627553814720831881819862816811543491188169822565066148743086591243611726714554226119124016344948817633318478773297873108890263079869997107721800606549317076311485925973751730849073957212367026815286428302766826656806406471398686831889128617295653969961461741211420662832367229165394602946670250678863635370756789082025186605023784377328937796860914355503098182219091223524653008298558659166838807024633793932592117504209282194115308401520513396149674972383692761253268517663857350901195039103022147064078498771201725141900860809611362022885131688939612559435120078747842750942134536865616252455229121921002693691880510045197076565889319266295379083115719883311882683246859071921156622690385675568990075857264505680182374156186314438886934905280543552728620787063637149861969388694586236832577619624680568809686908336859861609616859199499879223768577392163828289735286736525479303680672691382181575899934321192567089763709637895657104016674408712933853687084304071893179946108797972877774517355509665301145671633619753432945636623507646263941000017891352459345524898728139176255909708471125484538395734422206783055865397308731568984083917790995885320901303676061399773743459922003191219932817377022310210629048171795256983356962448928381566790471652854789990166988751262945553679562003861795953785133056962021474363925793305165275572739351149378387315402846357324917095896859252234753361400701446995440335526696385941301027871106955116178475845664668626944106511528841018467086144512976129635138741024848542664283826366119964195996082114014578605154165539428685035091424682046862990327882837117814998059101240796613438262023469833788800649368399985456150449137037726484820198438705086375725713872924926583497357549315619761592036878272285631847893413548976316034856671275384838547530800074405542867924887646810134271856781213288387714488250232800079643277592268526092108359131815851046110517911538882336857072561577552984334468625381693384993120476809010365883455841950073041404927857406433216915981457699142139566845734571335573444318453226215144929917857275014409725915341771761988313202837268121790610342776224791530133264091066120360825097153466273185345950521758756477720910171613938563887821854715244773810545724178149903202859728236508899896297316529300401157835396405181684473006146608278270918937768493347224689904900119214500203522360556949924166386475145735353355786303564762114538752137404648921192884335526335153726049960828013535536776259869907105132674677489501381117023114840787866891328538649705376985009597636971892140342507105496384513412138993571238227226574532323133724628320787714019233148447348568069534463783639156208807515863035372885269470902541484007110339326609494541884237696707914974232145511554709298264153033117118303126534154661713527175074578785138217975786337396681501754605527949251656164978557829205724321661945507573811066938862078899462813428867433564449684328399424911994595771628601358842938533740070547861741361346104076212180089941239151599446004755757325800948420512275780871444989156014738574177744683580611852115038751029881576326215779835094622349039177827177610598949792956373757294753937258757323579459860757491762244951158301721079636158101505846644299183229306814573168438913688586701652869367472450130309100921156447483459318206929258055545122713623507927455016537026809276190805863246415535221822535189161586123790380299115651327752392519844368597943501742073349071794723291558121862018470245538913049397988306123124466963810064792854346954719665269553275963813527705369359003826811440778540406335698418336927528375610828275431263852698361288205751798671427403860050563895062326299238081018612962780192671755553686660016403081950981344155462382119338178614466285710854600670299889919525738750246517121274684179377133823860912370201044577629828804089689119047261979030830482416611379637913685785569060742628802196702816823311122127855382881110009114613987022158270222102749148292384039410460829366616364601331255168238099014571136047572379233881180391127272559893882186614215604884457138363508963450994462265338563616968715020435121211079463417312528116567018378078634646305057924675537482922651771535004987468135391205989603421649201860135064805576620231176809298252803404636458667793903586491002701015685544913947206995379547709644465020361356719316077711334255029707736204329563238627788597895232218847368146531805931657966744079536155260113547687259796404917900511295384135594987992331184318113482462578293568244129328680917595584563050292903038343239816637126483855359153070697060354894886378978590395077569660441529417840416291542895343494973587472341732731736657785045925729714983815138335357604505228565878201228619413768522762829783438158783034267111067353464773009280776144520110956408986398077298589220516102213409986788192374314737400440574644522090510678484759220515373411098636298104699274850580502232567183696130864064066643695143753609709432565596652480812264113449338592439859411553106928012670739563081469128993986293282704752470481281379874006822983388286454084292807087194707993485286981302589087338970117832539817812075873436813680006886185325212243318895922260790671485858765392311372234804670995774045389762576993897667591957999441348368931458854515966420520110465249216934990095444100806664561339797470563348182681702865073379927797476928074698821188876614453276085091967736166029377169250470935650478091933267780670141697988510571064077866648874888824539796569037153099159173557610601172072456097279269313559822718111627904887304760471057383535531510001872730467668578507704058101844173754483941885876744405753951859118441810151907121070362941693211167974604397105931113721591587389941598310733095501642860987813023450350541063767855506605562738634531401647881290351096800782505509087829181081543568137077862209451471728083248447370730690629415062291229374655524829485091075441752950466438479242594075653417248244564202391776360574373703285301126416695872679002706485887490456337911000456993759148780791860153067632550117001710338672867578080279546373959449151940638651368471701026042351480859421956439646054679185057671747080475813150599044733899867795660722405954980470639821661667433966821408136368177133474881265603079041610325278806318984091904641598285602180660280963501383963563712855878168193487232800070410115377755475229915226142176236679239388344158488209722060904355918250426962530376194800916627056506254466725194890404374162818258342165026746659167584795934022313601263437086953912320195820940656702559460373533614522050425954610065522796060428752506977220307113583322972584454010383228049830211350592137547883255137111167141017859236658834062039622573601848872939296547744362282171300278683198880033553059116528110494616728713342094131676004680880355785093491519485862651979015946201560034160052717557763956530224945838616370015595917484890394120011574528161774969874190830761814736691851776688770450075723559153146145313670347941934011724352238142919176568185822913804848811651989342760485929914019749592385769181620536509863813670486737105180932460443445692091000922045357745966373188066293466929927111733286242093808377896478771974644451091338667337451547455299158047263812628726110294875144922268293556054002636928219060167059056992707163925742779243127140687368776354185827486309526691934801647725259370511419003431766551456461154182354494347806741212998311181993734660867735778112178898560759750280750819874425165299572218934696115003148775478910080637194479455553687226029207891074449695178782027690788088142887331658682836088063879243067024203738601416448924307560559384146553280828977948851215711441615084791311294458988389260633285914381420458215371782483571006274723294858490670458708851619557791827603505952387163930374545480473867005806969014842412163115071267199246129293816991446715137693628578559995582210773192816871914410519239763242564028062014450723105280073514287289827002301283990975089687986778744388152346508700634547942793606184365324046534139620035986802791911681241334810211449409887833299182417137923267712208995172297886974300579173856217181980219665275240893811144589492371862105694553492332657166035063037794165266621541774528321773893286601062423332622003724850188355540485850182091529199480891692260601332714108859292106209730352990473075656205580100320033611371700272554445961458443563878094644633493302965761176119458760655764685647237353785714543787417984323831582926619007938122031781063107343584535529907620435530003143817523101896462409272835952316571633375916755983373620019460132998561486220092493877399161916605366458978754542409618118377408114335975092994458557370746862046248204586343238673176275015840482766521187592426475013672593760601692921515428221053498122191420220100775261242152723551573065922960145015891150058793213368320374395900637373440538244332435278263228729659588546877639823968966080362238982388540721928335643721849921074219925627306457124308938093351400520607454035343638081015910773916679048130038226174606015553961840769819248143407676472826032980286796150308496113673222587008333097036300649109926563573920367149192424565100820731703325508883996172820366154724234349919807054954995425253711286363090303620985972254208938487983779784252629772611394280615847931679131709837776125638934266936276986385495398017190902062633424829417637739586959256935024587141835095202097591349316554960534655711210495264954065632548467430949065211508275589189998494184774248701442716841176420799191779176535888527687930840830060451321149912464595786643521700602165354899059003707806106862569689379478873477083162901686613488974758669586580184658677987519625611022447600797366281620469838316367116498754877548056608293693819397824255822548199228176738482241883125512105182807851180788517608738499721744883529829660812795352066937858866356860357213082845388263636785467732440167925716613633690580899674041639254328508761131447788683363428503950996988056915287960302750767829813177204034159471433577900548566340031657770991597573582839682651703697440786204553280156168835534536527220787505774209182741303660479154030833186840472134285114169215426531701945990632467139923447897361065510087169946347507374244010902284122688603738682456785804124281891594260521334596134164297709313292448871812516269307441496412280211986911494300654047193361716618135603317938276150060950697667521492878213380673622935624378145031592913525886676174587810132393028234074907245748001013727251713405882174954877893425977561885803769476272261014390086252481820453536964546439229737369932915232651866505274773714695761857857935368306015406385189869534347882770455336815260706629161479410137718820183896986911487945501439182185275079535749860058795095151352114937476992698141074463264147306494235162094307640452923174358969477988242870579308506380489103090880795027674684834890736550497486897443555228005206028098687251578399148146477186510830213828566615099323640519259360316146349611170066405637749948204147180229442619576899558369514062208218976547393708102136720109187339558611652744892918573955437144490587089230598401585393961481949331205486315002066999944605474454941147100430664946984628398147001726464868867185786588785225593601690168945778625442827995744240657757665055630215094371632885030369757977058397189309896989321929511458913131347367210889996847554229180727401421280018446007180267813885049651001801883726000482125690246739473752904379758182505629713073997126883317465577464345708389228625286181396233064377602793082613653212146289995280864600203900343692480408049170616929507444130878883116808264790112675966575205890208344635895737832837040084705999307365568160528088852889727827402159675248357449169773908086407079034570041474174157702476630725012374319916630083132725694341547634600658878585231978673705385567694572518496665484591983739267723585622808629162349268862237250841649572862469056211149096411253033195635223205646197925074551654187482001252339123317121300646054352394705285518440550027018366581103958343751957087018717065614599195184137297566955698018254134412346858949479812155281598823148979108923287058723247219130790222538987090818160666712271094123270489397284351678181953045566078644091977381672220183376731770923499528235051951694937529680710881353269751527922922650318116910301693089799786612552070887503501097676174974521340030497993499622512378660779131275846847793779312051278564554268467849719796031334871447523706317896879545593753533961360864769376965109430443567299744292799609374565497555514840284662414515131165421676739287358635200797739286286022813127413839114225938670037057717278084616332575200556501923377447260302289153521704411824362719016593703547657100667934728201761371570955612355165944187688226698187461538420749821404768033212021927148258541955056684130577964552782746734156464105835492875299039332595863371713012760208011438480668958343844250184193710060781170926905705402298051496437006094112171898984057392403708832755065181348684958703940071640746804105555249919432499937145589426697702592748784285852474392811606188988040624838897924445440539611401421501695195025890353005356656754198867131754080281427492241954329253051681113404098266952249914375516406918911764000383071993165659848098197747995645110366457856573425323917681415808805817938950370470882366601370874297907499501565354374341292905489415117622984621768085330151516348243733376058787602779517313676816215282535884359204946209507175130075965491030919105541057293117043876272412000305668692332416567431870087864395353370430757819435652417371313441073995955143101265376742264380337114759290997498368496444688252961217995595473099471232054948236868630400361757168382688665037894266714782110094698556553662003472292514607636990384071891605108734406476671503604323506344171317805433544866773131044104941399023027323749131144747977241655955654229072479890539840257182562439021490898174958280446632034254202096580134665405332372967868458191854885247007705288533923063669128386338327698762776756534097743911174522575549546745294839947302758302613282560691524084049058437323006099215280025219154340045716386619729988903478204010387712608629641359729489396739902231413488670359793022827073533573114710381359763537006016310354810950433689531354078229394455366876244461456260862210440675995777823983852695344012820579743178339737662037714993063788808083741897507458333878328371694486112385670833283614895691930355360263691974611243119545598164906925052629851659032323766317493659047855333388597685720248318918075202684309152211215859118762830910109275301499136823463699744222738758158275104221553038066367280404430324247058366371978059755342839187446404918016012145568912422814754674662179331052249028008039245670713138932665185901058542249126281088983829717198739886715871825431746362588841821834811768807311483549457857062817744024324327766080389366312959562233081895941407210233888448918467783163584433937689269022632766900196519102070869123217522632305614474451805833499979572821694309920251189240103471856704326473177230190688434889567263066671847985348130507058233904126150433375423429669780528458807756824039129660950387686110420455277685130432491959843715712731182925113423961520262618947535215044335443314325124013541054113095932876053684173012894092671518505937875818702726329594065071854200593737135572614042232289208139410347167045932405571298486529844216972327131835936115891211517318987950132347967002911367839820806460930013089011627051574542750055762820578367760641868976717817449917465799055331605788722188788845095557005013198003993941299184023084086199343018487832503710827191845779396211616281588941793354703345806262192234380028635401652573567104573073174197313723703125927056170355879877048203632117110287189706688662645128338367002705181843649288595948762547565349733599942103422326818394235618118969061250932384810544264260288012746158459737451128587564718276868268778590645142179992336822650205266182447830678713092908890727793872684395046754639173363347049897103791796861644263182452301319702688322442751861977733045711933570500033099933870718576104018055735273332255993493932557533548778671836119486802847814386063668311486162198363115223594583936405368324931623639587672484978420457356054932773261583703782461694865370679686827910902148585206211425332252234771988526708957612368733766669628234902404492306382955299794963468895987637607525368157582906045906467485811075444772888880127482658962094795306892467925362752777529238217886184605681158146758572135967846100958315410426730350036350796759317619251976339834973309889240805804203535496833357168068856286524505557993561592026060805986547584272048124837338272629056376722522713445015345992553473977838732802336725726083329202931846934863410002822158898954696477203912384094887046822801863355488334637371163637274492480454528505542430301806688992788413443834853709777801172833798801829505381625368110917090334624969032657784901653854565539497349540681475940538531524599865859509928334415717761585967374279110428764622051691409149193427417916855441319716309451270187250347483353233936249494213202327560330506441711575240901964763029561105695654317969393087504022143119804411143423823077621572495422611731324370157731470199425319300803119734301857958683961210045037365093300152268945950298651052706982392101119463169246946088213881628457149748452994285655311361925997604299984680988251431834927841403704827111478535031869160815630817075524471793219477209851189894504005374892620656568991977575589041149338950213208409713134096841109557636776029157409399600768120958979474718821542438999636161542180735635628166672620953693454112181876838483701469988139430643944451961483809151406718423738256205972892242187205394271239033692900671513283594164692578013523589510668505720544553038454027813841624736787135564152502420950691321302300911162726970975380135366283343834127822920557202966443493750681630301528742269662989963286631614136923102830737578679401222756425019092092108275415563496866877074491969889154139950296558408360520382388762575346274644981939148754795383533694311467323407625380629944259079928068686503739217828954835616718423932779563209174108985460712116555053751359648042098583072874143945928785263637780579253648665520280988625156137956940485453141239124767689915646636082320780706779623061051294377502286692600038538704672990476827357527488617361896652537281907318126047037894650019294015205102655829319196667585054705763449641872047610351140998593520431000376230837654439174295500615704916031295318437972879741419789947073062115087866262687728404518589613557236663486232444498957464469566334807183579007420317579931303123373146907946998527366278877639482356834237179744035665416630713345662714482530813988075352807115947977243521551030142955554753151401749930303552258674928083115755018113065064346893401144467650316609673780486926458236387407883311470434701825215419221868114286142452600767413268508617845892920963749872430956732491282939621274918765083429709002634214967947084677327365559988426586164205947025398423182027196257629828677587638703454371039843992075886872992369232105123142938158793426803358479577077491358139070360729797745792070585873127996916249210055709447116640426748482154824184848313157379981756714578428843774337044885394123519097085641561890668362722570160556091160800909353628662955957175108251490007672529840869682853346813346801577059007051415271980865458620195452955007587546111328110259227029549025598694564979747100185071111637162966858120737816443366042044418368452944415683533031435551820848728776909651271105191484064476307014870658154240083338275606380385386365768994557365764672926518467551920671197126764410477299687146480726075001933416698413784521088015836130408606821783749510074196472649532013833449462944330315184022162070205071405602417303243872755174866922442272827353842337247411504174769274367368753129513610827918199997925802538663673656878936562654333715182897023031029183770570245884937435093131039337213648031160172120060032495734070083818981193362409325814061216362438430199937994493356899491030803602668731818103834362031210324938100576189904633738442337689464140340631370940892036054389996207679584465070116968933232848188848630848610084826965861561635584031213659222553024482324418759611881881991405998248045453787878902167294678028210828093447406652865210314567238972849154056685465863022342660991529797035910919417098085196313708497308613334744659862921309759023829440267030337150890205052595328871315413584679264170314622956789248380670076571045035608360839837015539786852489664612377962095857935807693321938753255286355217671621399896658886993102031557209926826565550289595730834161521522518009752861131342630563149526224812445638736652158513556585937657235727294266063798364494819417038871772926201810114159652967962158928189156252989132426337423809431613209274632787748283667617756135410150819371193057008798035846857420460441416754349436835061728070141322456398800246573050997098351528602103937119864205529720546745871548538998267853771196845225800792263519858351271357538811253808679574451944193766941394784997905632202857359021867914370671051781609508906230289968180550884321744466607955010786096683875323442845373253127469608272026843035123479760802409590273964840254985696884483652969787759459246490297880301083585840420941069464540251990938427397629335796996686555194203761069975485967210238385833549597331878616198608687094321407380030636160349086736931344339023229733940933530360967699462324365404544748243170759525125060748784314193019285979099812068248423105410998187216418688676855059007650862337569422527323750497671374749008658554174370114957418955817789823855841851650030193131057032844870995471888264156057885716266258697978512989974222919765149922035898093403800676120716310398004403640563710562406191187977784676861522869576910766685370292398243764132517103476333467152035531593708883811078860450078803214192886052863725050793513515979179455292615898869406371248361860529837019411086478832796845447921523534989685893069013765767104726440159213566618860180897502394100911871926717933356405627271593079648443264222809783607618907880177760272420688764063058081304712807070236458626444466799049495165065401987226717359869229262099210287623056045930878824377310098900144760588091624548179187041357320512576269005613199894486388065064078603697841660696647610237287709387277552881401452352123299782656725780128604772105582811627856779474286314545674287197452284306646597683573652889494502165103972290550103420951729427101125424812000696147621471865649687270045008047603061183736308494066211447732896666875308723985181985338991846744941425308654478603586266032844123897689471828344653233645030998868121786490433127197393933836900771757709455218816331509260721239138629047476527403478474543167365705990413968627290255622758090509295232974333525193521848032131575279786421561786662099342491826336142424020655518678007327421422106971050182751757220426757581685108742623052729956149014420699881252726986896621845827602449546296081702671151073560053192217874592325594038745895930608535610271939629484487374913604516485219264268490847245726876755547921947748892214365782603356335349065449116558054095268786066257287858328245902365598680315217921276085253795392143736172394583068125860995167421448333904905787533475552461998324539907148867885837851174750323871255975164000677969785778976493734312975347296816595394033697863963588334845366554165008349323223379459531385161959308435163010983603203177225154920138854274469682254680376560248250629400133120258025834617978782472601291742498744080564493034327884576723119298397911764386803016554907526233436410549905070659638780790003771349240231523499876341931473014207028963329265579825934398087865543372567072708385841450807142657011538011644286937377623997036550402020253908994265081446546816169993563239747149306839273388409438093242250109159480061144754915032836893182814827213059061842372437170419586438844851235908033158754139906568185563200319245268166287119032269336814552672735946752342588479676513771292026263219048442180060009184538878570917510335871295415578251363741279675259270769633531336008148284593115317158812876773923675642831039542997712713590384074688077304411655904129270068731908580609736317417291716474052218224383163490990418451614603514194315692804996894847501011253485748613718073044070933583105322802517887528821349869949381924385843727946870496242625803835307436453871883282273996953989535051163802026764137695456229855588852331159119698576361047853417000413346687195551574728492825328190122276444135470351830271857798797946389266254966912995724775773279868078681250364147582299100297169241795606968223112570911655726498657628588933619420999672176892516728061707720317644079960623880083773483865477931354465184624068202790178003789097547901274495781163880272438286342530896048110489998832244220170006349504225747780821700882381736127466151007294042110919648925177144722741191450345205235910889621547179934722542572725079101881520437767969259390774651359329288715966056392834133812739726413467197623824158884619382631255839843609166901888621994180016255943764647548720167018412171470575647045863281220770680345442346342655449272822738346822415405626489599636967547814034289844928446320940226511030006341182489494888124861560107223316289619184240850972037205638288770014459303808110407698743106084241416541131002107861333083569542065602033230553516677339780826358564976311427536176504523905545372183106902202709633247024990266636541384763888517002467586890410626812563040094168423540585874915876855735157583774880323663232522581981843966274485275987793128545696042182083024047467798388256612711055671175014023685029693347829649489078472343299685472901946146848379038410091407951886798385580830496654531172934729308424735754765294954789384569920367506870514407548290894812563224364015310945063808368390953203304808751139416793855464797984384922549357484948141164953251815934548401483616153336952244799111847065141665016539585760187357292795949502519272065523088123429502114558598465461614266163258642209349336124794993498232964286680323421631148251076804495114353998021860786060292406613596409859221697313989105139383984258348601722462297551330022364019865432847123738596430364751962032767212413928613177278492724600788033055124446925250596019114391464809964442147876807014036164953466637287817933207735412049875819027957295156517948539548142592653635108304570573423809832186737116705424939187972652068688022389408249278725122898000217454869854704830312843679925495255669483873970087202939644611537312881605560147324051943244383025543266569568894696386750255348614065199046146894100997836561307795345005770190343839344214578215531897547652069773939842683090837277327219289471469323383960482712268443124255181570559290275075199833908636225619805964359200980037998874620132623868243581725166381634431252741032654267154387544502138636547898205557975715717812746417356452733769073328808085113351847283574941410238032988102493885968961490499932161098692487027310171966059150573578710891088549722352453559962903839282367991648412571123889458132081571328097381229774308744881451443877585692268139332456554381318812149738800633344194936095622468214942656158863228687850593954534512849674273938273883653930104868749658286480856502994800082532263845057631746588955675371221067654168765042336966541462217108355517168833351477092543954209842381864686436640203185917895925612354694514341506390943013623802090518772526470177104339110270453974513734929245683840613446969362249095581610981267514677744740011780055982668678320179747121148084953192067958287820789975062461368289639936153133333672087823443802602444171157085322597222867788995512931684221912986985422163541645841433491929386862595498689320144351248314141290990847825933580727926130159708668490846327012416040772163057584484983060331255495165472255528582990590449299130495907771243888920305735898589487679127926296712461086776501138506046361600219744957748249552133190191746693243420862365770506134161995831430360735235044034058903407682395495603504836730106239890468785481217632136024809661420995526699206951251130654318826440330316038562531647306164126861376374767076624252186392566910936015354932710658590629598037678459228111315510376025885604309285714995544469696143719128252239306928335709676892587617707979542216729767333778200173487381377820384362861869567447631594196386668288741193204983564525187560353507280041683390115891836624498202151674855877937641538329086595252600276516299691814887062354072009265448760687525648596963275222580514590748011694708610441066143898475931235447370235530846268099595337864407611601388663023326703679131890166520475629709201062792049252353710187260773783357238459043055326878464860512244669804597453219346983986969984031039747955566482077331843482694207619745886039005299532196978751030943408990044158999128656440072109115452983432898714474685459503598034368392394202088081866046139612228102529044903922107440126896698788394290973779096965405981970301646944721899409650794029281818755534861808589457099288224561795494492576832516100308895394167724686761568973307493736586083175984305255245915520358087667744007806667006819457106685332032088461469583792878956047501009495279058873410356235245649648609675845543733829844858098040575722383785050830474837710291614069322048390702630388786700571178075925611553838749640680104763035921624585250448590177673940404508227513757173490738478471269221475608207181012053117051045624712391832695504124628772029071752453454021993949658862462442858611722240638879472537724700839411357109959616422363214130361505316085680967073301729618681396445615130992401891504217602679724237430952020378756369366053167303524076064183318302993099287576329104288649865793767988365816861223755461427784012484505681892998614116776970510039768599041015263677416820565240079592077468311407730033617127479212982783106984173867361095539870166128998549766624429563726987375471329137242113119608223037764036185237355708232360596024197455560011457930245507214280302591442530052744790041604502376632200542045218845152430784122488935976424731112487193757719874380164553478701127793786551565305980314199524831570325687836474144605996634045406426035482167125306492567478791157699938642061971265195712197674779539813477042231762372886543774346261540816588455147822519667058167756402140737906344479672538365247332770455210762087150950299961734827990290400955099902135408897145566279942552943930965572664046128452455795438448058225989715091449956469781801420648333885195204895979612559408052523192013904304425338907439156036035336476226930583400076682550080792596366974869474276369819868543050767471443396438291758946061920943645542314180253730501189240974936864550080622414223360441264735002916435137156753461452774025652301004278018657682468982222882489985672194350658544082424224405170464709652944936780906294116464054834681137172588099605441853764327972771178303774790028086368204056422788654570469867257748221934337148304792910820700704461434360110136213605002797905961303041518596584465046728736141351288696828748112550342172900777640766166374146158925540504771222679763214356715930530594121568389346782564448849754917625180350848359885773326210453484288134564389206272738256793383161755812858053732634892099335149445145814808991192065167329618197364223798232405802657826589098693399801720567402505399588962791381671652120446732203521508364942863653800338960016325866929587673716492132752975674829004385374884304784123480454900596362047211348784341927965037492940914916089632883050483427371114723136682613076518979230649033905371508792971633599311533385551208327591397173724417736519311030996405385195777244864900096223855563842156218506841843802828429043900112932118087396602333373204727623894337449636956331338377319989784518638258975767555422241672228351367603498835945343672746921801607554181814513317526144519194842007030199063856677797840353387783123109259618192908968463391422822589632330766869227267433458429690589156284305480571258684140001282828266940657322256658768791597459949152559597405032583294580146836008563561882397333635832758980544179415489171333799422388813696958129810675692183126176054229963708498714002598015836150202641565743247381636038888443374343000616185308776789625106357633004117618495140312937115772999275144871087105264146247068861740958878945490192467497278944863958698479298240577682959772866976646954363217505834297010229634896461382772987141949078002782502778792384067927621093457404559429016385416398246023000295928000801851849191489390196379480718137949981056043962160496242005791619204331347328327413727258544581730943763315478078760480911283163827222630397942282030365047939918744577085464554553923726595417627954408198492408269070320386427037743730650988092283986320888588147202551139531023810766937744805764985966252120837845776984448274313454200322171373393447734803697621820893330345668041789757862386506653824975146275054006207713646391927402789082023892203753929328770390895795771932064773905906879907164583517842538102462539968737556879093087251897392713612923136090908122736262959641902563171387732337546821712062012893771394716863321307455114976427148851680520121727263366635732197517819432458191762290231955149275921221357947404588710632063112283604896973542998657101294309759656564286782411632289607851834328433360525254333017083066937059372702794305187479955188202386357590435957062661141652192520110802772289690908315325738167201486839613545730049522160834872666426906332662612992202326595594192104648973879300660550648332888238752180883948505582692467963159568911272634545024196715610649025335237419515170710822355755109052335748892738780379985768193541796076548307747792037416993177470602728719205664187275165800978169983959299574493558720736068925398963153337139768283248030838882152831897234773146713936683140838487128974442575462819562249162193905730920823209814247798219795475912519490211852381982592732634935575439742283163745278516888971169608359037630532633711895766293115767094131127786678649448859678974139837209169158543824213620806030351655008589884659500781106729622022654664342274930196386183169649373577819983631359015798440831082874352169294195034462822680060971919905419544412906935197922827987869258401451608027208065126101504325610507458510961386976661908210586173378715821919208319534628356658726245312293311400870711745251079318241028226488058379787979640539832708358348460555073989148082134958707862872573101736243087210508978714635650763167731896998686901730357062484976812292905197092611681886321584627007797541089227099231482825237780515140234474559073457316060449127439201599776117307329018150373773275554307131920135484813396928391902069151423094065154866669878559443241711819201523745485149025848611802348941855624336964110170263872273633224180731213858488950295205743054391857923471811774327275765458671862846136922816597642283368273761383104619146438177782761055724557047189560379088536885168297800154754587108667194896915514803653003774289841436885635640889046596697007872016777881956134983005285975479767431150606649330146678917356878678284096636095418389264485543440589569250802760662599445633638575447966359902525347893873785185219375911203311078002474543754155552872193455470324553835622679577638876906660070566393317791735857733621778486072047958961263944236081403710882961821854956774746574967607704530964375178410866194969206403590991306116068473272084252830194128703357658684381334683103210126350789157994842151728804540988537498015327310185547985770992051103800091734288885202798947610307041641617606444955747796721393480422368582504167410797903695423702879007210790818947053008042447444196168291014283233159844105847239530448379084779984392642345321891211736987227231514112835568419136026964916406592773160725082222017350558311933493619598552057173467612052992834876345435641692057427475083035761492538487056587652077633589509170066083754046928921930505072151548329794491624960705462246865283693153145663300873741590548422830733040877715779559784692955857005586081513996156553134201614954777119082618003475724529524591501717565483059829947581830869501687052776497902978567996581873156894923035718927306544661196620182206176580575459281666325004903813012590283168113079345892779524218977917967196188792181060596201624573569881170764807108828440092938233815861719948060287632304223824263984200442830172185847665066115140473260156872218255487270962837001099880753461372289205265435855205313484385572116797549592840705117992607811600624684421341511949907596207537769135679453979209605358683033905777098692695002632338788453935063945339094838686559431683410078233391161007355709675008207016257243447592085641985800603775275108701967555707979868692951898194548767206528404730473841794257154951512376213615662388325869720781809498168613500250310637563441373455559810922619780038439125836671460168006149913664060390772488084141385757800466525264047255661748976301235695094799466715926119714593501035945865734854619972547461678435339779765353997991193610501280326984755702662837356241060339029495306949392239910545782792707826094766771040142481678068581784870982800956872891118281138003787655809211778065032229474032149175333790087070396960889802552729222576125841271512847256999614060221269408993072770441450638890185023104148789311330648704057775243450640195750845067234644573373773529369127598964253058517471936147602821437089108064125996655145511817601465440575247790812086274041241348783065650783865191077532858960814215392091251496698485696546672060605663942247189518669905334705291093498516848355971065688159455234432031821524998560653124139148801186566384246930508146646823298955718711344626674108851596962535495358430155172186495091697886245955141243203581036021834714438657838843392166924211309079191846077173118858426337518090566139547982208431262561165493977651277832574754255609972196320476549307685392083737496923620491409088730799415325325346820543852821854097630905915410095667659082489398056962163064573137913867979244872814628923073274248568834989029828735093046318051277119819650498283754492963383279392411370052466560653663454469816972005767209805094206338222549482124910523836789060291607399479062524638130195380156831253586479028334577448816846754681313600272449027965728273475137831864112677901048238513181298262007979758368840122097282236782157218948492842083807361041733070152918994911085063377056308733932435393713992375949065445606270588542675130135923056883784934513869151394229164362609187169005902075775958202477437833208703473417880175099229609972063759375959508417895281227882454340289522260482458609231226888996570268475891660346526163082152362124378041706445885157849182172029950371392778782729372954412111404541359277286862902213975333313472343819439010297686225889557094801855340918384870773582743902243401296325039634969441098512323655041201083310437552676021965296911998028979738638880680700463723718233953922508412487246990861761671921607163684205282650052761742478239962861759533755609951422265556352226777804902277906338853306496956283337395429700885134690039680953340093700422633866719739220542871746312079263514529572191643296105749972434723278889572616291999484447222373576043896989738696455284522010090166346644056874609077855286909246469533468448676507121246153562308424835283667467191282673411415309105588683008144387115917498022992714291147591419086342909731547541363580362977001646206203858102305855615372602284658077163793023733272464542057922632787777911184884031794882635984963632927556480345772054292414664962810893918010300929476691167408508692500966139318630427639347158253328259494930182111353353500892522399023396318399849462852377532422154726065535439210552323670625870101669849147242496792743503247446345247652168602537361560413595305379456481645533087821702243485916656504427270636165663923221992167271183753259271613374262041681461868183251381226574183478696555933406306269930746891373071159604263752538297890569186213655754843909206488087102295876458763392506916833894009249954453831868455743496665176697318917067438530400572327330249559047988450807919576379666880327934698507192934515157410476697424841080414792005281183514450656975146792951165987005293031992019934824420607595619261187475033488970211117597996988699317073617904857672035600747151914992945952368631235800213612509789486404758343114113330277340559457998625530777485961386608950971564026449067860125016317312752456030565432814228359421692551799295794245785301477393320295936251376510634384074528927983015778900092561733119299880514006413487276226344297911967546642840326061545219839209019583305819182546427064574604932922029618887980762277931098135334194295884041904956551810356917956281999079176358495620589918599193453941774064484067650246830099686155493476687369716261611391331312076201776307464567269351561197554713822519675880028819801176594608820242153671671123813380078064836462200962384376469603391621927052628710853728917854843839490318390481759455702703813646960068460863342436391145022159974931492839381554073872841151284104792951100185865886664664649115143502248298313460849982425625537780091814731231340703945699036730054197195690811589992172389221158379506308373906295744013475642267974481025915870649090022010056433644919168131633944268250109428732980125714935655152016176118068109679525127554801168490747319181539138764621352968288542338062886829034639689577320912247748294960671723173270635859086053077776675986595904507841069045908345609156269937802634449655429403993204781212808101653565258320873814527880608243573169380375394150143347209697896129238070610483526615681857753593007449497226742864111885036020403278957026884851099690581561889069254669930992733115595381185848896349317161040526639220472187642114830778951744643017923608432056266049013771084854068732913911459228404953280647180818395468001518695244031080866001199120250794807271460458957251445840632497919649250478513228235898400165138092079888644803327576288983909105460682722269072182632355755981504242521187761389189357919298916331264820034703844034689334397959132877548857510509838378248944400497450319541250987905923356440804844452468896222893043230114769000881711011739631775062568505951630478400992964159730201872752047525173741981171659031828238568089848209718254298704916492593180179758999415814817133276243228307412741817497999676373386102452323390641798286141646072718076648607106182432671284272930350520911633130143762529318938120746668510234146667046677050795234446836233210071186019761726828090198304824724048009131321865674398539765631658828251530776015301213945470627382297512663503750975949271620964163395117415511095643005882669354356544518812556503854220941490863698646594251629979832758450567621327390267268251400340689927754975132862011089265081166244323645282655842069836770448371452841402803852367264142086724103274172152738548858913037644915271583427543815669901997942154624969422254447297737338318825102649447450942304448682759446445263013070659072206602664857718708556868230559597994559321149830417415300618729760171441226414459151210734262571649540757665293784417656784844954141428696738957455367044593331159757096778209730052343457960937619462723373166918366885950264450053137485716254620135046297570908101213516277491412631525787662880598881069635217977051541083341783465506112100092997024213703935804803921562534228281027911158083485164592308476333455418676510660113240277045135130928144245020587913437506551591393346259430695951539379292522973485794555751175494416806612772985874105029787312123211583020828622140901036373276679783577636855627797394695842670539268825630779070572417646082888790829901350208949311397494248454845344789346822420258434031353477474774023502425678399635273043952936237758837973506889780864991044527186913690813978531125063195881413299652432239464833619907812642339851743452905776402467593491419049050745268155282443577899216783338709966360110054678342093698173606374230993646748082342731529822231342985281327852604302144527126212439089678562127708636558976938507808449319899097867323753130450880204510315961465180026629571876633801969852893125588892940802608305485173719517488803766009955786084765810023366836753797338558391026869593074571284939527721128490161725881390413554368480990192403446165558179941122770656006225683513085094129548598237710180148305840643644795570934427945888432488447205777227252245550861195504677574309506504675530385169494018167259325745648244332834539305042939992787174342066369226652835486784920210256612761056787214515570723649074873116552695136099620150826174793736190194089220227210196539247904020927159496536902198315492758822152732515538421101043234907894002142705895542989854015045617525329552406825637362906354236271749240758434170886081458123694794715964442689698476817946867066791766904099781797868497745307099391904028919868418219969156376856746658330626400184338045097748147885273723421120692752965137701099352410798989723170166331308075490434091352810484874510249285467639398187338348053609798290831040569156495229012567547268696812764826181099454577566506223588708854476469248211922749128390752791308299399879038265860369526889721202290224154018622076524680278908027864335558008706343095029863756426147159741785614230488353026740449191263596860932460209884279099931416644526287253609205301020002536985256008597997522542486792697431093259086507516892899734687376834630516616262096542885667724949064032274843032080692505381527060754749184091844716346818015363881137565712322992067607035447618659705239672967382929837242442925462197911956575619228416679555935552903257977575167391578583557781842879595542517251872354751517367288913244856972947847659852431994200623412662413527597880399026287479327261950344727855227721358511210108036366157177502676355015629170051437127142917651618189015733317480161491062979376933730752540808319936518751611696258374856114661455753047048259020466109316180332801928195241770362243683158246139762309181395324848673657339347572465367135274244696115628179122527923306523624279480763014607725058791319314201123190268678941036268429256017480774648949416411652467086800219248309885177296324258590577729587748071964984680059019673843866319797482154966879450020663830098671445730155293738103627217361281146514433693233281775693323943326734995716242437269735349632711040234435052727679085470372651849985802556852733548896579362122327992563640424952927034251898718941014795144285684874741235147039155029190573507758792024781631629725091952298898058958211017424046778993220437587615114573452640707365826376061559514501464547246426864067661395136892625071850753031427012997107282574223885159632082363476521704973891806497062518695243120468111134290448839185916322429264918395510046000519067889233255326685680951878691748696394517327649764624880945712488907351975316427453735039546954546854613935876143721172959873740262852427880681922788768012494240375749544813311195517605594720312313293244666771742410800944993980373594763901439940521295707443361451676353320333187197314622319511649399887669889395267384497532282666037383031796052909782247976213831443228173459736701342516556655401933824263563586092580922014772331035930163886929620568710071027098817027948450645626065050527573199317308676278509817324746491233789905281800583892196399754866109996642253602392632019150372750711990852093470737625731191276927939721747404308066132184392832068074740756985750037053460591579507553976273485953040271442258846059071545517951510841115704107428301539281870651949695221668632031869496013407001852290784348245891712198300360405898805641452783036713834505390583571950560697527046720594979974689507600844113157782681785295168173578391410997944274632288191723721711807122724187472612687612227290825231245723639742921320310417249684712715717848173875002944268088788843439416297093435513639675356542831836280163547547495641528738107911929487841781922706844101772960378393952699317535045538443564475691805537352872572197369447377247166607446486401505019372637591980255766019780198379890642350393490944503000980047109213425714320561766196725669546453441301438452043958359193090572251667468562397762383070440785251031255983462831101584493025248780356215395042098281869966466493915276395137596997074781461842535385025878979107966564268034005581670211534945523079409169617431162090112825473349037036113827820562166987899481248680758803510473846737769254280978501927516203977604121040230104923731681490301433243637520506754709330622986389672651432043018278425382289732551307969689166129958152514276687222776881780484769739712302269691271852655494103950136093824896268252184945556485641133871093800746540157723135801755237952221466154051367700352155965668057067606523721202097888970841271637655243128268612999420454728491864007430862372977067926457730791968462328935694155190563304704499293401411394759723130912083825637407463446898868318448560089047217322614261350334572239275854647736273435495253517368138468103451853308186904225321692879895160451916322592470428127288989787044971684199155600986473926640789885829439906026015570696535499429512993478846931755171059509860155382977231250771021777932890207700903043460399876589320953260668890477726857521075190279967030478153828712704719606858885913987469852425580686454707633329640889504772042333984007066396019593143630684648126097277186722383042899559169281577126749987861123995916541515455768721471592754326128795198903255642496797082288061145891354867924709037285134031947928818911856625217301736528709875019766147540441839121831072165305401047976502263769259962429639639176266407955803509787427037255278122593173486421529052443179796056728790751762640243318719989763108791163399897971599495557812214221819641308334406028860474729663015426244757347889981059122648184934963734122375237270655227566132445954576565665172618035714054146578819211284039244413359536018956920854080566642224287229633030199379133423639977138989405136809143956911562850133240513091618822650902758711860013414535432455986964297708160739873619822606535034579608881106880373104188995172499420339623939642944392320448584784132548896335598544033868084552828843883067378179451646641177865836583475603325897754638979943451771220169918397608576811393608185443149076384612964685796347853131504547688505522022358053472489020866819854387954508878474031549401857416193104328439810931978081479274953077199955289938565519541419461280354455572628995680536553041841994032520751067667006215171049519011006812679844390424191080599336157040732205434309009347271422282068873260512870706838789883731218656081809836625915960722130272134710927233659239737161726436980186200104537849491056731249771391645995017176194443268680622868989907510668716756370433733409380878506713870394736089813345775508600734254823906998483352666274370866879169386180253261904720520428997458737031569116881769778033462740463791779909575957059962917196072940608542726695817607502064327800117700253478310997233280457777738865435549964941811179733727324031433156359934817992638475211340791814231606660817365494018368494203485161070997468660935761816868032215834705303794978052263112297304679887081509305456944258377935545208994115550307455734001305999254939269901890165890712751865224486784355086239752705471518114934895026466023310401782017915113166140944122971544248246373980886126391790498122784126620103647400472647916881478345503780849094218681763641565275111382028446461048431900814936249256400919046881773670362688135910889219337725544167139048545533536760100741395712156674063390771718981566350633471525688036482133752747623171762564170697170432164400867283209599158510674588463111232174977191449124963983652841703886900674714961744530845821453928921112119266940916052631611037068126711310015246307248415980584184646931621139332387123193501074997537605714118403464750856818024419850854213820192162477243599651080601484504413086831716794937633519940394151043857197647470039451833015864154781759164768634694673582289453732326135913126342219217252105499825699230335621483792421728555188602720706780401359618259226132912443773323629338892484255732108156563606621531751550275875986954551282916924571020453913306303621059698370585815971985465616834798977751490797382348218289865218181214113489521564472049679197457663912548003212744680929669854075070716338983885780593037517836724214979783145014911520041798805004612137892875739119793280463406863208365134937077427384668562306468115479538982243291359566600285147899925782658209666072186518785881057081320974837305932374966444768547544204086989515614571386846593969729304826228594594948943038161283748080653291376775057137808676969013941598937052950487167467464080450089414899969486133540204178760847230658025278132264484764082777658971955871064463447237216287323501163599371958829352883906317756187285361030960913492368154052133784820845103182563218950131491773774795435377340293465322837865980135703022588904492398786121761684787812253078502129898510056290191898166201704995337514061861280703931374359368939539626829964198219490435139349046077518897434676188334670373672868928971517237402070800600136910030216410575100816278529348925464952466862234188516081329714572099182042731781152822907189858188215249948757517061270226343559843450629301781106741773477249025662084894096362703161139551216868631485717588176293201867873388183150382202961414416406071434186571910013629030117119690897339193890309333265858098902663630596462186018396770869030800588584157286499998020799264299571431440932932891853501552089091210792500696879617181536476747168982003534176626853464904066696161938765127356634243934082155607308853983135511383198507193336349561553343764044383814983489628097630873074634520098546561521117717363456292899076625729316893872604714035071120918711386927777238097001584937256591451684637346501278435813952134981278896734014416437944522707509804880397021971240244082760988470337833791456772866787511317362386077849895743246078373949818343069701962937746087064282077165021421998987553730061600114254304670260823907302998576049446776051773281308554158684859081934623601629243752522115630890141640802440292579005451009899249443117991090956198101888718576211591105393061171228685322742905895187917761326270814894731765569470618198428541885766101764850731537060622982060736200182301056480092984541454806334846214297268942385114975796450580175306866344900310088042788100175374562024599683504185359498715681189421710724479869637989437389698901636271870614908055224497837142330792225620058132794581113470443137040640104792417249895527319280878634613550002693000647318859934196348321296702842219647493274303274850674774754246682982262825542346786603667392810199155219838069695748016353043036806355176279479128188053709763939262789682479150581315153835000013914540005216294288536169258945088019244165897628943667816480222030869477854679037261699790370070155438038463356827984281695993182807050347825670778533077802710116010140563359966583921254977658835364490464616103158376637540581440682478533490252324154856680778544012679129947582162636209489252556076623896965520351346558172524808430687493110689594150664033293981128241734355502095264602574832022661687458026144252583603735775559623037686078051233391547143941167981712521746088259781601860483928153321696275730679455664023576217973221026969206373255892206031974387492950125798973812763964463695135575272407563640374295410257361972737876842430330190543052474418700214678700000459089685458692703627282732860169465924816358481312667217461794419124596612851183950694580691398591945783391783561589353737356917138997653713669879275301646317033184629205701888883958654503596517381457867278849006728873779961487780039848184197525799062689698905913927773240648706951830914396614287691464208537810324107252038561280678551271668859787060257087207998301508827389354208836839903977943486744597737080037004457140372787027348151660502692809079259047095712832407310083861941012752206156800184363653154587172503054906249154853291437010059402084025088970723138302957149118342448686067912063032793541179575314531735239318169423707499013168445045090681879265742043382238120497582712950637028701479954002737221805954461074955058754898461974844240896834429560829024894064005342646174098482005627722009084332755026652836619829129074846975832535243124422883860295067602350461511007468752939472557369987977920876909391768983512996241632521708375297485721574854628156282058775697509108371509499196299075226088844087766873300786875563857071577275740984365212034345243758129013167956956078923073180806238746283843770060269452646975577784191902278380467245603509332717226722520556960376581039956173880767921907188924865500621095577462475459721426324737587471512334525124257878639425897145485638990103408452527286787489700256427938685008650370444385952769768267536634825528457495092366641465835209068333049933510837451137711063567173299889231500292081736481215822491041302315778927021038622789246944158186502886617876107314912779710786667540385613423509370013145616307420665989412412271949165226875193610096447461616386836368257817810439946431048059822924582336910864221418520925602215114798018039840733387953878787360263262352423051592598918881239607976378875124263174116505041397474462968385539586398852371307207553250281536513348972518727703263865592584804815145025573315770765969962420710508197549917225092528960799546986401514269270585065551502759264773974181574408357511131169502008767356354324154075380624646715665455371883857242438654315104349923351112952992283669318037732459239093238101627803387296231523647186581031440375418672990689038364190636719677477982086052826517564131499731965392726612892481258773703589091683194321444918061619032331199045230060635712633164723218525486983643584835797419916765476959165026008690000061452982480909054445933644580400397470950875926211019671719795999357078406379512744251965073083916698372927886135568678073072354001569189024361132666550583579248724676875190289040619771527882734191875658253883148767509953771068648632668089463818841974143829673123838752111893510425067809870896971917795966033065643581891070764536282443873798489475779672292493333158719439564827232301154205368440786797603477334875915812467088348062066544634880302704379270341312495973134538008313282850341066155273941287881943681153983810457708034298107872669603853327846953367728505524185760771982555495011020348649473790119013060943958131750286600730522027983168619305377734437725772587810806181111702448576479299018449716254833817402765646525823373869008508939483990054909096898676563535569657862217209118603737261077084791552899255935872779252414927763041724017085131412342335440362692735813375574615914272073006254743153846944619718001901324517788465243489965139876152108192666306876823528236592295782088300609918997254638374026285854062019201819872151888352615238991879205077991198908043420082270532728001725044057133302397731847858845364730201314526569203557817845851871065762218800390547161635946423621957401758606474928973228612500990461292534505776329381736876625864054246138322915352680231226326483248592129519683977999381551849145160593757388083546667208146666447436686328441114612769566361713431518800941657758434146612443275488317961241522549034261115601061128402728612609388532977073119177815002327383878333001529010978266456779619500830786443723671824485259060177620367380207556192799876296442948925880009379960253006407182018575994230586451019543681785180199613328434647944006711247581958695094407457742544437935042327591043775284594525618252539331207498286617367167582862265466750306299938416391051293478585862467162414873291465232501553240346040685533673658732919236580154874831992769500098233810886957722958686080821337417463026053727699206937164638378475383189629365178342068034470319839574192151199390486153318329239948702003634977651863902092875380847830239509332009594112401737212405331307970008818317903415391616707752070358152023782306405435418758748083337714134489362688479597575820503545288323556761089177481249450355096999180382121337399357710791621891127249103106697478596526700605099484987861102693891082207110732952526410353254397350031850094840572707281078310073886623986130494927304735320873915296074920436583622074519981974853434145141702884081801895635459234585464295035031728590367344421463853087130572553055872480390270873114838428030823037518944463273723420786253194361439440708767070841732897932617213527114259457480966262843319668448882012234113679212124004987301536048871660040072017021244803086687410549836796416572636680717179131867996859947138283068939990162664537034335269342321327711313476558586818730737183953687078947076752732301703912640826306555951352011586494396205939547334402084466133301480171547690419713248440566708079955381500079273280331372752645676271355745283349584497605536559307222871515392972357481343376114145326774998353795766937925649581602879574152430812101158265378092213419192728700403126238225351024441999051379890504007881285894370681446196954588069247450176163317251208268996532955251272213345911226197329749967021173506285036914310006274325719814006449221167515855312942192388989620329814402520602157532548877099722111905568348990260036296971452101378794811786261199502579672228153497299086290984804399807429279243428079359886676959112277901035786492302767913082920290159443158334248644645968002440340501416099396735355731743459981513751264108483546991989107973839728947753764370341761518962425862994383843860101606571193858931241836318588461609075111353630395061683361048939231337448637805541586468765349602165019333490027606960904922411929910984492355140402447713424964299602368580948562274402594143030519841724282787839065696719335644413863930926046275639472233556904595496817331643140305317000299286534832381529077854449600808477640567783095342096025826260477633613065713565548265672161351227680418472712357565207082384007924882393836836323984277304237773433266774784996794899018535893410437751738534689243291164941041065737879169075540011296479084179163618924034363702185640090393195258321109681692261568410310274774778400877664312537321290698061462192735380916680629689224462854796498776499835173236486763981437284532726266471510138440072268739651268183762568298361102698544095409579601822217463626752868898320077477168530701660681317142239134847715410722535942887662177732385480140807898898963132747681454745266867741823496806671077442098804470754850113210268833091014525830228514035836052361768991750500033492816599881165917337179311542803746032644701342737147770821467704292030834094521155676991169855177389701924104443975497099197684960736183870155290155468465627742636585430284398710652794121129456132549461336139094191720347276496557929598956636705805806212093914472082868201525377124651587019686420096863625080060554298950426914668100435106948611780132872575312482459114613707850788283563538355292256376552260289717841067055469545567694824643679627242114431930400681680120289577788823604836769693039294325803173688113230281877522563188034860290077497017976779723233507491841507180547725173045738260696645883114758623571470422527835720372744783535736225738365399999500456330405631397521296395834452832853645580659323640669754383394309245706764027189772020315889528291214822620614907264650453377995621366035038262090262092610032432211916289836765460071508320046503795171516909841087986477783828373206283230240069720304161110130875184255172896642986539250689211228516980753234320753222371236832221217808773815256353186266918945453225052289784429876350701632570381042455187367760937181147235829308895433465758979597072376102893317035562625565025287377795808144223386010979284664678026604688220011281734841783122646315722356761153309199089544019148290707267477188217698911293100878909207032213559298239054610259703843580903987114612249741535800628721880725153799677492127972073457800200968452876582779105310295026204376660824043191720512319009790213186920766457849914516062330253458044037102838856724197921357558616939896902322913026257265304763091854813389025346827423835683800767740335913477051901630505655985067212929945760035817722399909084007303569299382391624518900212315014635470831534725855542294795187105502688033592292382751876417811488214495460576282193412619796329635555710226422886154689197094931082168555539675290419075901574170100890836910742862959725337879330949612683842817572328308673181973525258960498237871078977828971999684783949135493599388853238251422246475540112095561864151167691642352009721881426705211689287571144099278042657727503197437451602327033726174146337321935056043182890021193259346321033934111512811773128807413385514300645667393241097135520051902866826499474863063919782342327361873913827286785782830859467673770317711354150104993800357565939478474565887700513478366542953913015049709177203406925644726815153554185573057101256344471811654511580203584730252402722905857169469765370935954248772326953856468012822612261496697012438838469363458199750837324450177369482662288724594589742089652974504495483789010192537173954625732069486524619834815462800892410636279041145630354310370786003487981937127493774250120484808962431354190263726209310596111832685256155004905554393959092027714016754698917287980214272837964411543012802894337377268086045776593514250105977842925562546599842221519196062158786640606706652892561085921819489055663798070681473069292834335131170813485153584738592678964080902241332912837659740425046495554769795830815942995544374882708772273120596994215412348238672175748064121784197338654920555292920342833269906216050334006801823054402103045036456552488114083733728020382299568325425815484946026912133537913566245857942998206749012437027379737395112546967994226676838410669621603091860181160731423517082362144337847431430613040812387551502820317988095987650781390482318860596029003744054730615925260667723399814005021258435190778864056899388558053942872768663218761429459455526822013044525862509702388534656792293486749242712857843662636757800787438122792594845233648830256553321415116385702899560401681246685546942930309030901925220758140464770430869319186284404041071380443378154456339712796540293329194458171512933652264733312180762677700672013144318717393548080888577924199240686147065242700914783076736196975312918816770337361047907282411536995443232121661716825324355252242057299016127523234207816387985827780395189310406706363546537845657581083891448078068713128595257619032393951901212863714444600594668890259140992173875353581246896639009585912609748623378721066023430787828016014612063533681668109276895651486455596153749662539537384340621247485512375101613738453275718263930674962995768373949247311703382980629633696625829778793863154879752673332495181029391868272471461334639106404682195296605861403966136597911984099289788318033840071843981612620109884028608834758749772084125093424088271699544583632596733281022547134309186909453756317943182075995735798244806687646845753655885210874592625043990753126961456594033055431799301896314074825548790040727333276765843110062428111422277971435669726934887196697588934955335004966280608814536924279506258598509812224954272332559736479141024285339122540279879841114029814437208663513180259988419857856712222470620898355958514867257930474160937029413440386233144724546362035517318514012043253586055887965847248744141197973040391100436827518060422688342830745593251663529454086019137337315093485707803838641039237856721856510120663292320694467305775448085665190377539395014558286778414724114273884587023120378704526677724281425169988005883363488085060105685226305376770472443390684579299357189056855888658172750150211712632871416598720896824466247388658335225926378110039531039487476515756321029702372542868364609882888901637765267384535020798026746264448961882418273981309039802596839401255565111947051069947693596078957342913241952001163653069564449944075141763080507818355002161784609167179061876690734834588381882767404472982690761054259212872450075406350718195066325936210285056743687348500029473433528883071116838698445516356312583073545076787038055176866622229035297886081704010842887330858202618671639674677170741621636335085017381017850085340819677946490429551921590279113979874922359498545685881473068436188685887554796456657509268104779572879269431535652872795990921665753665623844948697949244473915687575413073492435743542850055842465713510631575860609976381102523294392318572372263029526180045613976663440914066037101608092042420146867375719414100235750398031004556301092263802291857651064611702617535252979782488268858545505324751621045119403013657665066336200600450115150446168146718572811679835826990179150237720837100140148867748269259407543782183016708077403819847127680643316933630274603915745107886751715698247629674034170473990751050233402091332564555697944240053138967892113774492403939657156474843086119473252581725205466928943606837306565035357963943103775328619522776800660726410457459441030338891973527073669527552437275226168831069806130153031290051523672679961967585061606091103575033136496530304592236961916011342453903430293697776883560839891049118244242360018625474147158210742911350902425062300350929673705421013846447205826038471729344020166908163237180597540420136771084299906679079560730944380322759960261822752797047264785071974861070403084629748280843781066315657064099616746967897900805961550060615232669194447793000007477168172009479744501873637404773505528937922732032441305392704976277002901110263923963145412337676400094736073630350892496311308389657807820675076598272029594849275186422386705639654839760057395828921867651915538579284609169699527146058798969602436390967468584002495720337085861053983355718497920675602911400093921942276697773483956472404390020398565648226288281221608608912102435383679520434105104779823857560052003799687135480214254747526080338410158720725864209082346249300663189129945642457584443156652721138602140478389939125897367562316193038012095343069616148973408711024132722977169679549255339989892041749556262524826976288816154344699767932221350997831440857568277890684141725214715659346874755471635299620681890999501292151969014392348162019270181055895160252110726094896616066230148516206728690214977292432992908936697766780304994440475782588340029720567601792156787135400735186802840267262371038115338959191083893068624971043835766992651049985263269306865357167481753554914002194498404894773929500498432749650905734979264276259076225422419123507908767925439622664965144155572100594674851828650178967439295769656467626686996285943972784117613089196649706866971998361555790483307714756417218858214516696169646367837069395159184724560858811614297858430527904785601940091920746454930317259571989399426324691244199523858286888616662448284909953965001589721722374818317118821748762252206811883675657707625673954589389373602343719106441898195215364228198355076179841295628037149362751730650514594179405310176316229528447109844846595003957237344813715446138645005258689413995902592864351612922289459739554164056362828381441286136193979776341014526261486490402159132592902473426629626146548598937420067032921899461758958781270951239274285630130659335009923791808528786176420901752928813179613068387393326568084659656164132342181258228770147278530623209398752276846003195947237526255971043209897099424424448229193912549328138043558750969549942742141145787542461719077822080670994472520620654443422600734035811401794396719906782925621188476387908786691547864829565527490892771852357348035494432286309702941032190121457476341447349615450394022820380965098405424383274579689577513201852163198644612589936273116671417028176786251436899645900697096681026381369647854957407309488847384472894682075181037775536994244062913335591159894630381932150158640012844605591325407597587111157254602945193042808318004964573504120373342298255730892739913881851864658636110703713966398644395517343757408207997834014566489610750285029271205509680207183297712891700449072927087398860044281865765856331310938867210185928383920621791527954231675038141784695975911799584426678094339378869880548693819049947050442199729872768102715341479906443422229477538678323159614368087307943291409439253665366679788769039636607887303370258964374868805178373386781065192068820275460666453660399166773036054556446890332029376583046060277326750908449321893782167666132420029450111681235107624054304922622273080238702089644652072421446222187238498779779276631640356684718573172830403970444429439299844314165119159078621740000167628861261721047828355160368696710472406701644463208364478571328826538009889730022361788932548012544525529554619153892671588281212311361796099375300724285440755511135737382768561519497765270163536545148163449817155526834499179208628668400671158324381737289329485697031523611756324125918796068891433361650104877964582760354580375591484960983787822942037866562961498810556624455502555817105991620299210115504155648297498791689724305607410079418988248572729583512036072068395926440510555327208238116317941377995831332491885581231809935497927498307826149885525476588170606916475217034158284179977070079631379794332024356179453025100086848515121659425558131753314314034298918231896308855545769023751213265276453197913021528050276920375052620843574137604601615052105865128863284450772877355414353936661417526456462496653122320719285556964545306311379943816918439631128998197766571954431785485542994168461043481037885786064438198431650969871354123642233002652763341196364776663029384271457401368452865145143519514602111413775604980468936158263705503616390483928469487893913098096028423942857121045911238222550387743187249372688476903116377725314078308452196777693970539085652454894127285024881377092877557453979972365142101804334093713063881663522151217171312707318554080063735532179898535756765727877945656205769425565958643471210161110212241776551154237791604222163611881653223671312859474249984952493216838201270027339080998677437440337735718885803527833308506587142203567557676250053229944036403507182682789394430935554444742201957370369061096793718349714020250415499170553226392794347203882166289621503705051103053426075821825489549079116143484416548770525401566511265582649283041387797493953136836489068379798393182037431939055146079595802529002162715633428463495495041242609898832006794827073201085675135998173941523458234425437171890065100576862979145863075716894413601937328345859704654291968306434426874877633753214766459133280225884590356873245640060637791331978131011495919691700876300375347109629814898528840232652781900927425664124916954725994340468688405096796575566028704220700206609061322353453405211462749640398178877848333425455288062969066605966507932380315698663799336968951188776233161234781666606770186064458865477856557590399461446139020612606115773062297104216886635956217268929830847807119009694092559150532272686550963141596361634856650521474147838312772849017324248789160759171246295998620109636537770007878820415881795067015611287488941453674280936833497537768487338546698998629377308357053636357815380985956712561418646206125479664407807679951014637353360952932593964158827480538273101443862408502643594505190090006669177901792128428029528370000659196974080821867906492083781625385703921338337086041629375199027767484442844045856889731042154314706107749444413772411407664837325140729534392408382925784223633934582320002335241365462938452825077459885540112598416351444540772094889913220388315013115021490822362486381282282409496585687258261050328499526725744513418539891218903328260614766527068126495980562926213477474302854835155123294926183955562111709546416395509424040457524418349651454625457230648873323129363593459179545199319056209991033171796461042892267729701200063429944018056475650903403427830745836653101743270742106703604593407915262191540008309766054552498132755479238075117211430654538575237117059124854408532863961786811435349662803632838944266461572592338557027608393036043643427019849691771027307062651211204487127305718786034255876669128738620503825939994437230941635853307440655647193590119007172322218619225353248392117758709730469131796746893951332699795284035162458437336316264308482412788997743545922700227550543330409812429587870711270505234562919402031108343476063146578996959898742555326662471294081482109203582341247357760164669241319139936457131961715739338660061079143298030881578944715256812132255646744962807835591627891284737022309533294581381521770795093180551694118695651362468914501103687807795260537546272874017836981203698159508200810178082639690187291660226428849712500690178949454194853963758499970421927787294488260413789525910655744859907653724022441316540980873884245109645255053612612036003623970877712455383135898925839335679047913856836291116504453570347340997319471509239471175789240812524458992591122857383697619050927479086534689917586551512064849900269806561518716180256443247767936727924146743522085030342155077454800022449451877733529269643576721415049095050440893186695232878282250181862759699154642313066948107500569031399494732046345475331697290671411484224055000050769702545661495086647907097192412243559432334559099555483638829181620566584569346434175248646347411443108321563127771534910710225718012697761412802393101591924924411116602582123049430063622918573149797089162156526864808784403536752049944670788087587758417449873230753934438185250731132266532833906295139714821003614276187872612217761483785605555047890561870778060161830383083547335103445126841868959676666840909525183575929960150196371020965118339925081934145237063314650484493613734599408209241090348870629603571154584114492412446831483975621049482608331498516515045287564085809995968236192850666338813182036536812538462723818637767209445185266533584631319117189953770890606837272650443115280142720166120795929802655109172760706065521414249893729840010313925221222383613692493569174927753200406594909712007434756269618921086496867207116497693960278161488795297599467704938362410881785763560956210033762328903735528153349763602505356901840731318127709532020762836618585814613140099269239139986447718718175680589866366041628325559883957620843637023325435458995511439690100772046595080800631168909923929827702743100949311858387810306910827998716028134058580516124034626539184845516703003902842648519690657340718791358228778071105541142672774501212550574347450818893423030307410574534562333958528789117268095548312184559226661518503363156027129737935150132936273404330401165012653025109916234309250084303054015831006454760052867131854804411316755282907975350292863234509030058927516337407737343335973200720929562030764264245704557253997714576536436742368837313409823500348787511056278591911186535935087972271168442093175789846069317052975558280360705471374933164003864740065046850607054416154198372741036316164034770938828302524290215641259694222636691377785232428772639168307221711578887756205444933871864213287074025513982307215807978670762519776265339179429939814267628073040234584856390760213843462478519859203516264562399029017816546071381354427797338033161365766138387722418320585958272149541501462576479774632186015254588068676329054042063245668152333396076256265551194649171284678586101895586766451405930578324385270691416861817900713768370039430598511264959534632246820152251856339364387766315360414167972090574635036817849767853026061442081996637297767362224283465278763901909171875327331974856257508371908939598830885243375119958164443019901620327887373923380312116551146094031346504451000934175301380975190860941245137162846395456316318806437194099685085689692846747958366298278080946408566400292257404700279685338262334467764291557304832565882565256546786087831928269790162679377643366382297153530293266612495640516663106135659074913592731719503303379382637108831361610570231691338181094907787147109416798636958076181344224613602748018781531327035906452797236892500862004886675058914019246765110452987484123534494008773785897619294451813557950714279913544929574694288041771385360509934298205700974098072555882517510907270173039847370932625939649657319333153962988369910960786795156766414437742240494880674423225993943977642029547400819392092798121234485215467739823590581460050359517452983732558111974575515278309635561852949510714967733388846196723780461808771879312666876006493223085758379483576146697129353066802011344932209774941617915488734402233006320584906396059316787088545115427576375147578407993443486112216683712928684433610451415842758263828147942114180370871153228313149032583718653091181599334940539499563696931884851098689178813583643934817462795508854917280277676708069618002935455990633555553469196747567611776639772027389986809974790851326791002694427453197983571947802268716314271671258821432520545926057770283240450357653503355877059397347277673883103658993324008216361157901909671588626373356466606286509785963832528084364959038284793570166001404902756391049460362255385387968321183736350152187202867202880276674636427489681727086240991024811035850090139830225432562975467009146297531779843490314524813627166144331107612832741627763768227221284895617181043281025140179277531581480573143890592378532359454952714353095671277446249219904431550669720799002007854810089516526308186881744845555966537117848774243689490069720702115501222109811132372402055522008677663978031625628251431686617122152870485985685153260848173764961563654572143873914766079576821981077006259310721997418658760052431786112736696963653210634855440665462442453515706924818386884466430907634016866221261807391021860536963510854285378580797567814060638117013834325268981020587504235184866233139057369180556716102950001487901205082919263652182086201839277982666130426181226930751755545264934962551334957993136419998666714044332733086671602615436314611661414171813658807381963359118598762594064284327243558308462653806458385501189868718476242178673087997614951053053608462849069788474745112100200997415344522261913239165984341491106971540226877899147249657294811034137549367449012536210575835548451089723793428900191339622581744787535424039192263602389615117983196290794813858379092402546550711227272847848499616923626732594948625382822655085177277406858569715126311541321318891619408256626384212653364058716550253975797434994064946059465331622977621858580338277024182773323720234812476021301479737529344160065377112088045789911872020054151744413438207560309634565615624055447575716029017061105912422570785077162877198359648590805095028617388979977246315436972436551694998318292882619993911002143471497926220800787230648418832541607569833668729329467070190549922243814807445808516871097965370864915014471831814507939830293599492572019910892070448734438726545308673542156921808727919201035146902335384981284427593572830850647306412217061253742296711562423623958141200835238917154998818060909480048656060897219898915450284378107608183751015310565129279375212860178975759347048406266607865767131982249557073983527377955369256516719881056934792203732004849756790917954550557627700650902552965657187983649733745880215528326658461695131196995130517398774181999174248440265913508763380180643693716775718753329936476099028869661105538759953892956393902284793484400069769457289107911829064585131029720654212950486043683167687365255034067237015589720034394969845024296685335274458170713097562609974156844228221897761844193455116251884178150907648765770767032070944362273742087501915768015715324284572222224214421808304634197214357893611351486381070833006405584516423557895060467453250322772932244997501820970143531851337588929364481144778957214632889234680044744950800494635440515171272791651998255145075165178295108708410799928140684378716114786767940970305288907329368121067597103221107600382723378192858997351511939864125635277468372647945471503390341111477835678039533741241412179764967811407461444304142607186532838444117012345868737811941126568854483487915123662655974856981349529267702877999583860644973622540868283508260985703670415537792613856814422357540937219025674982317699327362652019691726117814312458255046675625091764173322182634525885280583066922665497112391198316477911449698409873702116526989560876797330849545900662844973563225996450639017214502521130670924017468295161119705821217954639363233781655465274319074140016468848380152227125249373044853109571566612508082293609807624315767247328714711152741268678499053760994775407736895800257927838695574697060454075117669050523292889558642239389626469048343384665833724235704172030491115822159044924711085111402407500397700859067974689998585708256736399399473599456862971726158084498000327110004646473166878112724468458433412456621929267061818832600544623658851892439781723851756649265837423645215142850055281628983288686079168842121280765023926611923146433405183657550366874940989948089129588852871405090205250289923835177133803687560028853949691469410249045958710430324341586434261801399206877200307152128897140784775245416689792575925395184783776544975989185600064017574003207749422108762252466008563607509537987395771996336398633588477043515348808747214572787192026960402199019974971860108460964554292246191450031076223447838467501657512956060525415057852389516016650895153656631170456882622243349917436375847200847008218576150597071615370684627971252786920998066882016694887390339722082154537547685821644521292922394972277605205435143906722846305666564757811399311687191916966058535491039532962108208965394477973290567269764855503610379817152273846659393761164744247727597159875213551781309234540555811209912791183635496129998106093598174521539374059694881660561779736616518163958183640468425816795233130782182688243467316474699945110475012646996502412201209411329908130810711191758767485325433348363728942210457162704049484168647822360608776667945038252407243841002472985289628851193835339004747729379016874454835363937813811984637602244710601945596545754146239295881719769865141222867252836943385548396441375990775309067118925863366733998680392109086193947145448334143416421841008340193326405497751708897857148039933080983329378278688378834716811714123225923689764650981460772961951251998016319234626637149658160671873833114530413456587476969253393658740196967824310903707803055120369580748618019752129558233126356973300294034081067465873562537840018268879091830913804023999497637428936052277161094012385832531807178763358525841785646181269890324689896191651366795068983480717027173187470487177567694705193628480848812019982064879362350425309987924934877767461568951639577715460893932137675984813616076298868640579523087465839964748240964742430657561041284240487781938169694214334358567607818447208232230548513498249453391338513532343948315060259159163901902202575147056432735286052747578901197574091813970745249557435980781240172885910933482302996256702964401643898698637578154363255162001989659510284811668280588987884844344795543194452471216397748181188719504702605406435127589781096802154072963824083104984649951571523461056168616863181188198027927757170002011763723986675886756695384740426975274406421701403490495958669571402668821973958104005284487029626843139852399739243652318066573421848424092644544616765604545359742497776030581025385953535884042914194114420137695870193090375032959656404962702349689166858970732081137618050045691265971825477641482782824965615010193438544016320782576971280071430560850884247063882253730759599614703778632179530492225203492257682360513266157985263020555734723870020853644422195659608608739675233428811836786328537610283458782277257432889705777316686562434277269270199960525762689896196693269928273368830647475098572613657450213832329288001690164342649458304206150312799286182986531117916507753737517877627271156061461274198390196271042235075686496522179829902080471416341955709840135244343390455225117709742354814557696598795463582770940704263847105726149020727069178633851875616486695783067188955960703749428283219318295441707405579352356129616885921200206899066155195895174711208409024438697396613751165651032210671251933510007205400825675478885576510381735113860554032436692285615314310973440441073768782982558807891216842180854559935713903564222337613450062375251695254129560502993408173185555429239135377656048489782961028517993086312320331129485466613179000510463181144300964025006333866641444770092307752667396765740884309837737267046480750360289000233408614907611129068240950653974744632520658273366721597618998026196363284129999595859004645726586935450668339770716956694056363996935264278176044992436720327476881183670040023256011112275061447800622127827530174662343585785686613631023688309916314550937256901551843462817211207243772059824776743865801802082320484967784550664598298872949882240260110597925530770199968216525529610441013986477274489552007173065253047756187937286195541502330399960352679202317615698820578123660042226502793410891135249476847201353007953366611413736231832924064917313893055197349997077650143940376919703763265589348363130994092687211668799090341635187164335246681677027031069686361270195362549888262478588455676736019487202831644881177476393191223296640986675978671141182019626425656556974759232814429179565146142462604967150998826764726289797174433723168484664242491833526552046800118234870410870349652257077499697294372391941003752135092191001303362636839727561562686684432886943890425059294451453917707922343057592550505901007785576693652469447694789453728682881027647488502633194979517728388387983489483626299759067830635408975145615824444485236079640522228174338554780391876170306667936690249569370813902873895121969719011293391642738525692871914232459600098423680123997593812683816385808997640443656696747843784428864291496271832601902500524635656113732455657290528312492172351579725806520424875392447344569214545692247077545083176592780461187417738094641236438495453005643898752491066873129930874181664333514245670475130958495513697513235792427396879022160586138181740713509333232377175579528286796501139610039855459138631632498881864851483826113387367341073452893815695001615795303700532604482746224675971016489958247074297642449093594851427868517185763127216493331104066608259374059362905235019967618181009463880431960117581286658287134387740570909026512660484786364878695006410516954323580662234719773443018458554564063759154599504010551459683940053184285456910964408045347119981191890238358729079310297221315657375840224161269153497655462460901840983707191418040174561754461671222745257076955843899673704193966952931872701060566673092578824137485162761562305834890355333712056299714735629728533021645238930437655847196231238961655527236714329953522105087119336599682496041466651165624331327544029481666380585972540145373087667857655420427940152452586743666766248213110049672377374941437439275877938383344732736503826215451418390193390988969872340209793383012990932075724555676315734854223650225948387490472155821228204282930575206553019258404897734982204454949700787211260366072647487519279686475969702905249001558475122717525702218270654759495893142309048142824145590462170514239140553578958723530469579246359112848182275783992025353328450902011282022618696776160631407726277974792113662785232416482523463835012783350836802451760591970759284300634961513939569042510017462198517959527780684902185193560995503327183191081779042794384703196304071198526830680985577044218170133632369747402646572147975505718905112805786479433926410226252675376841441731756312707453111845359258504241514221133871559014510935891500407171618111480273778122269549962890472682096146482505050124846525125016958352578032404615299592439395013597073328498410049166022942249359278564401385235359844316554915291018605092624894019610860136114356872896819384150061438577890576808270371860122565542159268672871292341332980999760130525497420417470393413900165909655221941213965562896332436984334724853458932195365462915981681180852650799082820342032523763985167795340249509216705870532709488828117680514978357118848448997588375939654517679037952630349779049625095581895219323561379061316382757902251291810133610761283838236953086974850152174599292288166079640929771969079925471765539187288235586244461891928172659667102957574150695127447945328221542338591405228378030237985497435769926722739929748503571152569709896547716065849011710031863870283466998086780811007726463001121811487894352447673145010669842470532579845840525799264957882518137396725166765311598428187567218808475173478563602872958141058530267984763894761893499231355505139897851401970030778716835684883863009562934308030033442776634738399922437755652859002580216344743776368203739201501265458773136543334977636599378383509028125172593659562311152407671514268854843172791954592767794197471219214913672491272012200110750343858140382184918915466555932625915466893626781637074226697402733201826795858999077190094056343864814477094890953791437010551423947153515681505945230028879846428547305685865651456510967755273807061150482971539401958895897802533255794864067100388435688555129906728112950028869055922757200987741430403401034398224368493233801828880170610682063373457277313175199275745393558202042400279826565651444388243753782642007149413184721909522685031129403487153309567842892618695179120346070649031991010790475321974302466951087382338854413317403229686608040693956129048075218311434156896797394280639632070712449862339695996175811795896881924567364921711308429853075865132410275343296134667093527664774559557022716567280251046032826453140295102487046355188985353780294153728758962520317214207844421504694380163174443201120876968266464177838993302454128066509981082136259544771321226489438980116561220054066722943931571185487510762664088871181418130937754868770631270367330016126538982643731070275933660281367115919008146719823594101315119993797382403951561741066801867406882402662479569737590564075910641268565030054224677601663159375993212282162038515575998109356479153177052210938964336334826507622025462782008197175550754542340981457507702821284956986271572717310338165638606214934929501178973396448813889378640920074827534441056509051305045035895674642230079070564820759755903399966936105590106732512125246045822404240607968542152855134435937215775487424836638411348319223749974480344956272971339201378872934703473143239697989494689805228035190039678811112992627162452795163026321656785281231833927149313875472434838214771880771401710678728320444318497797339308100488022856313445894645490141748967569268633230084252015291051030290097915523936304355810825138537742724872589505385516204469498665763179791975390273294901943860017869342352526333050676550414348666714209728414660950316495020600706950466301889385264367386723999306997224411189800621853064545784471928654915147679429553356761295343712052278421472084403536222042921659248277637109063445270537685108118751455310284061838913098682187448998352682906061819541365690720120227247234715029242200766118291418583135112269689021623999682188873270883942429224374285214536837521138343640894230470465127693159245511144913526424649410165695591475421844971082350882949724547845273765784699804180062728003669032533434681069246936170160732453224774147835708377705383289062233668259583407984282895889769702195578007253041682474026593659052380689763196428596512455080525475330027237577033691926981838167171438281853809719513423878857805391481940432672679593537098235830781798681069113186928177000985818318875879826124349662630764933152052035071446143385673130699714837327401218798361025337540134623951346758968787173432047769017646212512333477653994951039144730739441047877296909193152473696671208338475807236130183617452705459940268655928279103410476080661648650163348769925545303189656273821693271199018282110068853253881693551847317883250104105499928909078935704314348267997510165037061753472445536357696798604435763597456236770419744721820503996391110450087273088534279273341739381136482245881714388304540459433660553434055308701163362779202866118500428470353656712930090111784058298794526928560193754060918712309372846107398197218396619088959686187003432794467367903998672950626880233471227178977538750473582397797460050732624746318824761636370524222822590725896635493638391671641835223881054370750051327475209103999921341741594720867360720667956904074306739669135610015972615059098766571827543483435231224925575936532011954532204007280885816676660845195850439758389852935880169743715895763194431430299157204780920195981566687741234027637636553643589575860562253868916490535286117313129139621094685859448070939606278738313097477138820002272987765474474244159302963362387944391608742247486269987336979752671381996894593210183865788292636092964191294915609617501775874006299951387295983506340406701686128449026392258865153205712243510079644779450006266015796980479325493778066797892006694553050058909946600092136235316924588669018208734551830702479723117445706230259500076065259517485987964972572617664435642253639682280673717910584157475886225171207262324364997204076513467615151269895002135045975156789436895300705035817524928247923247374151364514072309176038278691477265299979631597405714679425225315811656389172883771195124728394149029709230847767675351157113238589004989139409380868138718399235370447063335128428777704049238652197604242491024693738496613289276976269062513525433374011304678290525430296802736920591239331586184998134716092257789262880567007154351190799472004278968736245119368037852149766276061407187003307755371551547385593592295518491607003104791160991232158074145947860918332918714428239453594298576759430369412348648061243529382300984736599198036013194585488853780989120871942110707473744526273990990001081161840208151567839573751515322757579037124041536156218721917050165334399113945316567858211214298261524108400343984976918407825783567641245303851921299068523545017098466063429279757769588477006003093179122595154624840747299044953091616822241085480574642614298333644681990279008727433837626674923495677111941304875606232688962285228002119483126925211990955722612309569019398711179171392266966992474878804459723770754029121754045624237970547960920947966291451346647824828450388889590423881469223240110155797914577769843535034890058317054101043353290653911913197524969170852430954893726985635732812481487357454413939252967346297181116560032511328839522438246753338081828856063467070167311004191798165886597998370024864203273311786534349071723633607402078645305326504623155499227550628549721210192723887242393361135974608591574672047469496054269127093102441256247261903343834622011515216876178622978714574544057680749798569900663605553189653274163961385232573125248091133762402458167531208970101538615504636177860835922964903454193188310883620974583187071228820354341853395112597770713986692793700015880344621243087741076761671147629362106807837214185654991915878546698761451078590825656622705839064504625924325561415227245377688948708155249450390440367056519374843695240999348564672915825790496712738660351855339439772009432839767050570079981686307674487090641062398312164308824145190662603551956932025872838236316340490830657849118625360753983625980567419111133920778540284055277153243394021654842414783782423909290581714168318090503603388644200658296269766866813952193587742227080594110040078275188253420675881301781447609208209364224610466339682201350132456337087255038510543127524438777988183986209291199376321125362297876748092786729752851170113232540940539741349544331545852949906369684344800316858246531768271739125093537478653830995518816885184170224236005938249901785136188131668876082731823513315828498951066181194201230449040566732602195064574849856758155275569091034711468406055051352138327049058188630446960394307921042753347303673774499513622909696695961204339214287375962064090989484653682334536442296968351692285896191661014796032973983900107569255859443707641905160555472916928467927828574774631506289689167125458989329937303064962169741891610011458819693601070307177553269711211665379814780393434876579258449794065197564442366061199292738846564353833771555752317383011328233007344404507049760488398810852965095835179208296202980176777338207462202432482313707100048216252815560810671832846707143042127873888760427323383801779168522372211593259484152112472311537671162685386946974670062034810380619539690073836559522275146335027987237846598331831573378536022079733265239069267180984325227374526318249321017436423457702152312719530048896792707857089857890762413728681720284335490931658363941606978337613582300280696567097708681149979890053860722935959068362675730685062999788779917866690620168181597714423453591052519894862387711610974505744894244202190423322478178052852785186405502570047493446662925247645131003830623529241134984287230738461046409234844065497091969427925801025082517530169923905947445899648303687212352733060799190774429398545494574258360357188589409070725671710319638791477455185015585190980376299065345007723698243173549526295861989498785993224580109529442600362068448641164401852867785509048761687502729805020268205788209626403919668263093421189617179287245372304011813054851359397741683758536050773884030716264018331051315777750754448795036519892497872401889390912450056010087452937527920604239461317035765058048387644183111206270390705907625842801453884064048404301871570947942876455688262258045310443200383942442693392006724403046487780359821671567815812435521651145359215745011763365485195250564523402765596132039320704514324640286638215100710109111388260076347589926701319714805674795185432484934921369702957232802787483818929464816593434084653656428545190313896510349310300642921327185517091346404654963903521596105923885477841220589427754165499187019003166700216767716244861463106857769615291194552256637520615113778482214137763071594255170434247508009382268667182062036526273915610559343720021422267572055014743764615169768378854063980768860055918317926583994863768782181769331317112706986079181547354898216543938639670105583328185205243763893213977568088996371090681800961645718237092864251087767163315987045730242396902809955622589077169215629211175406748568188731974771615710945366500030763666595649839081449150588236286166187248854610750158575850732484039784290071811882712703750982305381322235700280062231052103402118236991735973110897042274841884578179585076837526886651478014005522129312536270043252567995866772100884899982888062785605350375931590563831934032445747226452008340782506447571590511560025854582973545787422979488284604026208446412105247628749580176871799940903227256108119775884860273004393470045531283062476451135295116269970728483181375566202286045240703613343115726354821445861980392164422547098005088810792784149853144052420115959267349963619828674960478827183520309227056658831799954184451972459435727731088936167208420216888126771833387479348794426484439607109655111949590519836335962956277427095579908403578042880684863846315575844207556093704324170874863753936285677946297717079215180441558591588464219587528536221875666887330538704914619625429506801765251283674296669926341147814134412637191132866566883584691388529151227070824958333737606107195365847019780475212899402426302123070867453501067791873838473699520634265651179060345482195887551509536443580740509237997477200970007365380286462700779698455706955283418620641170907037236736408844352434158477664785946113845076443201240168816062665761356752794594090303921204895690373142703564143930126144689104377954634478649626100933038622341327992425425138500220462097780752101771864026407432715858203871581891711313846671434254679698645761341410553273505674915124786974344406861177531840616860052161416569399143185593921514434402017457168493046803107080850681886713630490392146453463172198570405360894683890293577187657611501551306116693041697351969051186557598649433007910407252453940985781149414862720685052490900618492497127328429145820934381468072730680886137448767601556419648153856592939463513063456280131824384869232164303184627471662358092206078071599719394311901438523402078498981146831709020081059380128403503203640083971248891621697141980723443399138417588564908225464689843998743846776043937547522622986561821265218989210562035663297611719862136607185569601854252077040422012920826089087101930138276696838784536311883697924665517766276121844572696725687246187758879686198488631233251629426848684111156200678986055527814961981603493991522529514409323491313559859576551848449099844516878610589067608790061600710586895962981138056944360344445036348377602470092765298806986645519471094898524694546852925805283441239205669596874854306550763342347376152680792583802449614162042549417425839641231173111063901251586060345113212683782327597135002942528619016774454245325470858957508262454136870924050725137412558762276072640389010718060745232110223475215833698825433324785171796116466659955964281935019435348554712815735474409528595447314331169960293591752051678445093728557853409128160006639782598543349505167868220824546712989866632240900035948828581400275956887265980813498048418479713061375728448427245832313183515764660708434074922709330723277319761151972557597693103851666545320373809793169982853181424418776725416310530340216444033578546449596043813595404228709499900398689617455532393182358631128334305114498909805416249432309570104545896660429930586695380369542198099504869630781971010002051907828044911687153024638690672394972778162924987640148233663198982988450743764947932823009608601602661940621325632082297635540499104821863979814713312120969165653674666806936541225662404245352560000495005326630602794212236422470553835971504693932759863305977325509158933564025663490477393060559012932612412465347557223978398305900726705927494120156893589470347071258409512999926716465545514357508803667974451866451117537205708936965906038096025596942897226401782079590959280073042130178064671391802423954202464003681118366948218286413368170972799956300579487746163266713140056292343880946227716065332769488174017168540956694486274512514660388407279974690590340775357838553945920605955247813119671494586590264435781023968572422274572068474438957048286869052389343690391144481427621312205977723912271785187951799291187341691064688654904684248419932554388662676199284250694576226835601232206389085777087993985730355400959069001607959087277669506720287938098211946856047436980357375853053002966537468191171888285899120593368637807714452698460695793340805889166834577013900622600590501658611470567528352976749404487916065754255946855048836813427057472023876141263403714971031190887731731947291771204819729497816969670005120640637512752786225553170985872506870471913361764778297258163504981273830867421872501394107727559514852170252592098136058104893723136955603442445826109753229026551242834041814472686644952999541554245940245958535257329469647844749594252531440680620234213961567553128091917851918759738686968121086704439098274733742862627064551142773367715804141022426771917185826588741987536708633828133781236025177878190344789271537797554807791452678913955385565953126779403749036481259603498000529138260187601353699147691519636682945089012516764627248785738100716300663167173157074020582257536069595572972836033187123449848300939504003930592157996184136131088238608096598807815640077070914279648284515279574354384693809733606050945055197669689230463794435535571375686565981940365591425069564873114650859799855488159379727974561397445545534100144966749293121965857316547223699155207079742575241161724964142542119864841550139897968557717263523570765753232537726296398665637824405859704863833346187314510490525238330690333160889836825874816551110146633015697113425437806675500303979875536727236417121733453031234867152213876314393050190029696136466194979574000401262683656074527931589279073679134662258404354673217795330723496547873147466319987248670294032655461433558646306087802165699108377576112834274910899709548968026078693322029694403867065343777395818565475853733463423243677114636745954662879807251716261367746321244606580495907327827736057478902788143879457614813819776097699776488479853960260765007489185629112076481677596659554322310678291027498797218396667099061137296627414892713819746937811869676163076655388165989702632669057689096874656414118857840472132329288596888805730109201042352618284145740280700502979985854791148127180675296293148053365068317174837625518005145727561689327095013579887269436450947704947351240739647170002085629806008975807132667201039480817369696090610538830176089534860230487965209323504119049761854912585040743857605905487680958662696092180676073386260555258853083354762541513574908532168204075734513024878384067129301330265781798966106001478224686055838942591415950686332501318456372885404298116058705279037955998640484586813023323003580496900716529131817731775421245412861496623352411045923385818297611443988886589669229125688470029439044897128157950367588097419138220243134583043793055267578668193217584422054021109960673781757648897034210790397759530684910757309769424072319481736639704497569775174351883781027859711430191091219918795123264916991903333364661331801126096936869399379752758264621669520449425357133987161986152621140159111303399453658145083800866733785334450678495650896478652001279054145634431232749605497919327594632268569597583647679600693725937228606900079295345668448945536676143701518563997834450535611872691228683102795872788777621325555176877221088400642960954700756307473776125249000103523408644262825688816949260785932506302491035496132274506605258630135610312796618438104574953356104129469412707669243359715927927222526290838167436394151748803905781962668005389458745857447434202620088978434105088084953339597912731075205311210354637887022774658611070641949983216992934452999723405964484365896311939463228259070872416547266870810382180216998416648002646358737999597496047642909594487318279452507487874604840168317173794701685863131068232908678680740577874717088691182976437205732578697983886612523678010192419350949599343287710299616802770672464384692634778309312089441971608772994687576376883453078958443095711800285449214799086485841552086998679276508548984382813281845053899324058163494882626267780313181687520920945007230992512095557110824708126047131074791008747677447190721008476851566662476961628753613657774682460099699863587280950932006536934921799087298256966705499280228091995607714846463651311537030406731141863736903369078235108337596209368185421939496931528738583249201819529808506247167966567818191645618361648138248406711933716832244069344636312862773918968687698438889631030178049472989737896785515451174739876760638266865233560778444045668330383746739348606117884164529584565530509928216223707004922606501953966167938250113563147840286852059484870206044606386905160972326737335170894113789819782754760100279792829591850025039249555319622398539639757557752293006212609822434028888592923055033202938499495369616176640518132181937014555506159755333061935185350843428257146038036496753839667040119108254383651525887689123080625269882016339371114258762354839540780765539205844591971106231504958657531721513990976161646135554935487797112364487885070509522497598260090234153943334113511574039401336554660688501946253927801116471145069740047159823640773417135441963467285835801390029258887599025494835326754272030103186727697634870981949175406827185080009733560836740219752842404913613429311792554258701914602741541202203280096205992161553083843023839705440311509010192680910658718155398262962426373671069533003166486605214833043977637094964261187374987996760854176893485517404476698360996437539515364377991346465710250425348315704667988962607269325136874851549110414183856469967653029837425240450250995019730991232805661131777304579843276431956421778921205088852560816851440386191802915088130661374647894231802351841750115793107664465836812800493539204306841323858034147154206360515149605749605315245338205658700990510088144605376512960802659910841769344729346795458205266339098269175962704295348604732508501143098451001295246816885441166151942190294787884548503097211621322636198302611864656080830108880791883378287102159282955920842752021854147860513929540262406559406894677844544741883723216801739390100643747263167397439750338473908291932481014045673108502930912452210515065230453802254564866993325518273185222768815690060612940773612542785482066605963813854225057903302268510115558383429524397777344728238717519355683531313287720737438689516545858573071349538836906359576883926677214365877931639495589133137672920555740704775810055200803235023333514543091737768058948097752078825090954221276878019061734539766427707413183669620646483356745873114406626807385171245412115990938402934773120565691433738687138753904460381765284019294273555490372052499044416128750544817612670139367377289563887242126628355543816002050453813388198318735506428541344053786641839863177533771673687530099888626459646846694213796665774213090866181867027379852182725053393463852806781410444670696951096445980194831004784550168493531488154641639818932354913406405896279836223038845897711605704732178698766901326197261596524203278427751213033826386448611596122007265517121541182338962573064822112332686200791575273224624635707923028137771361072590034690911129213215516993768642964832983157670298091691007603374846280142113381973009393208627839523281877550542347634285219654695397693662578722981796673922271179055293348515686576179152728700430340876389238017584623345373154734125365446700899885558590292562312555631998425191596801356416970638614720513568853663630323051637048479228756553930318272165615359977405603372325751792832512991348508370093775157466438267186272841826134464584502221934864455160757932606942719385522048366279026226294091586322085982178044991240743451110562784622872534930739633328875955702138407021881779122504297465194623189056112572045644903716251141152312743923294453023854025205153570861341630476619453753132047684096483486372388286234409792232711126815620606504037520371470303280186570673464324698171339511834411651635399941342546616016929327745905367821908583532003818548637914106408875942384197988676659517789577636471530847748895900838697725789221695539578327451327147705623995665732864319269904204526075999059887495826417272052035077129161910579303164384861892101569526913946258206382895518245088936838374473121496678977003529601989791890661388899607427794549099261196995907081354600500281199862031046643567657320862207601640805548606472183366009595581511978276526710633577390024501701341810186125707125209848652968931698992982861001619884352339965105138565181115644496927300996874288115912748244390192791623799886494999729035638146156309447651591316764456475065876221041621396809787153253490799599990577565029306671474180551893559561169151871793474176152217844516603311629339807191439140756819443945435198035559730027049100742322966426058743461974938225072247974579005567221814808201198039339544571123223300729124612285602394408509132438249696436903834942263497540513612104340932318570083983047303873729731075740280076590050103515174365706260299975253677934299670844342134441051324224237673192756866532354382900429637339084887228474294788615756595307705751276501112949366270022748883456244168949579188301473677848531626204696261031198909768497085120391000974899096176853943113686895415074425297222777533977720072427721432953440633583391684039308986347935349497653763079931729321013212595796738521323472699987036390155847629116214702432960153164439929274696310874204641315601016823368270161020945254910253782164809590985660524366359569649241377222710940432443368948246789731665261591102960571264491678070873764190042130456970853626150827398962804739372041625597187027699574980410791740386874323154529441690453456834160297897602102115706238569750963655925816816448533024033611981083231260130807858513856978689636408907742048687953040582538783603625225935508575161474736419442847371547123847952118920823307412384630837986038513562219739144049994519884245880236870819325020091502487599133462722027667781740296860939313746543186421320505114567301082777542512751143603249000361315120805540956466352831736810568271123702833805076005689435358327498247669035862399615835901484918959289986961197639135226381085918316347368185999806194049961706667659730881897678552421371677441704951736592112992618022936128907016162780613732080623434446493664278184777809565879204401127772697563009842042772483648952035691926020224892561147408666285696579959912391155484127138347597048589288273595146232017146833940988066238836705020870390477706775962032249940179157812297502673062128435235825427644759359250079759470583660753048913067969334626999189423530842306195499477726806427280541644473954133849881616833369617022982239777518252939701944901386939171591136958224672749652995452238300660154134164173803796321265319144497320016970627007308167940774942103404444729289921049806625862109651410042512274690468937238670353408496398730631509400616381002734558385004231618453156452237129651457680355462032238316206104576398786528569866266159723241102393597776726731086402863115589119792951824166609881066151082902184618221281623843683226255052720256302592911072557733721997482080675566107701801708813666188161500610724535287873716726924809605336520606588420193372583298441498706126079160776763577176028612068058023563089865582403922825918263780725289893952544487097344220366017550016301866458599106285356300126533079416842915604162036896369601294486753279338377913291201963603534569485181213217829186530121858110138906633828049434423878451450205981643680902443571753111287566198663610492079326842392524851916965070610109839595237281277281396269672446856236571725057156919481145475513696798296535992847964198210315171888032246918262713051019407622187866758111709928490885140225937395567267801623181476222177063676566107747566088927365273631387276816884329141303365757189660172233251925411717034958600827598071558350844372968382800951489142703943643066874614840151223714839843323413472618954166353128651871572930160816321238868903750968574236484775498737660367044613808705655410575193632481071462558419926024642634497260060595603192289447745623420919552576339989478337971287631750705702813344898887569409041881008771767483636476140939386582932347233114344606455780003647488614564561556040100218557319478446238976545233573211518138306865394015488952677346130577005128584041238056918010824916035031120877944809151534114944506515573595949674815161509305633720437231295559903820543909022664989578685409089913301973455494475405040726789817644442693940415390528823995620884953525504285634346242506099749037223026151926456797353410562146614543609152514018240835111680953691037279399347967316313910513758489552861415221868151731493444065368832930021292449097795415801410930573674733813447722068091280445875568843229117328017104385669042212738977093327521647400562902675484254645239668526246908971421639572671199820224369843611618534395909236058643426130040980817213480619008560892496984156785670109515982050471437257340912833269423574461134452744465115855987698463372922352787732246514042113330636975809416154722071091221196065411847682361753043776809331644371728156531920083125703585244461998454118043710806286421939985156849071889218604346030418088014469077510372666452503805038543681314064742234311906956331252703401736938982874281915736436036478573134854728230273431189213315109512164534444501640053280987617562285657518747059577702041605028885164384634207672843153181384194681862063162812117809162978753710522187009915140526620282607972036842840108232335945977726930126694925286104824186024921478325876909521231863204139055691057014781878604093951944176746365363838406819666217775685619682745500079137029904721622233288299545797520441233905755893475289159192969350308654159093210893433721749449294097530819224112855006930713002289022729999055684589314239527726316180451602688458505048898500441287681994503259781624129145135685630021424357093473248698192317964808278881243263238746617248753451580594334713158694289364504273781630496865590141122002752710089603862828692043896796676100647578485213057241613133130333574578734277938835193926122432682567706564264522500525241726829562319705353578352514686939548275128953528203253757435787384269604962816818899369874276194227732010573122306784600996195499321393553567519266109386676980854898322323725531815592728904938194381274114449244418048557617695283007229728873210282049119879883615520142942751167835985422628399584939243696272820181394362679508809323953051561944545141724663298199359184111002436603874912387569151749738499960819918161400363756428344899846154546255171102456909748126320584460975070241346098004687230954525046518373796538368134703432309839817217080797639043369670183274109158704520574526917594057923246225580667084867127014982457388583699565217582831767140269659950293963490131677818274836535091875836291546838715129347013362917191438360451682217650396563044945980558030655257813778253917079932134369494498542967722962324799738773616649151495379407182413981831070039316948269654083849566074400523724230837362205204079166198112336668052628566214050138375433464639795710345011136796646909962775692355325940004941660865047450018117924597853658745676992667223153565497765620614646026475350336891216876374476957847649788252265398599235960439982857738284914213992697936472577117990954275753539255924340222937805723660218101100530915301690590198815489727643779582580327231000963940783655729457348618175494385616640215902073875745693506716990198533882390508143118986624908639507510330894549498395776121345500143146298157017722207083076852657896941616779597784417980138580950253388163678114156143446717565502761749156409903654030320759431292480266356385696659570579462795803052284850275784721336554940324411020352585112017147616514913845302016231545344510668063177230999241343353308487490704922625529529748279606419057777550301450368247792542067225968946386016629486721897913042394914468812613554790188583174383128544844208868863702106072021690101355761040789440774330353532251778289982894805195620078531030798149846263487496945900716366003982976983264165914543026084581540772523829247223750644375944489532494724658001243400315140475253482358078460354860479792877054963112915647184812083240058189556891517081596212331266651449542153536486830133486878594849243658010890774825590727340413105288153293524454340384577348539339990854683861292376942839398535592433971576505733976834925966061970457807033040540457438622966244351705234290180351578633184534725850630982549021097729799780548062074399349358775903643989602471982940627826871994549748745808430969166730908824456576434237054762884069163810034552747361113851554201204436319065937645979323741798313711045387342917859582287979097654838300576467104773144666973844988831582810719445108067701241629951785792995072028386634177464904094088072552094780803548648718938565897029754490683814307778011615796440987067768493521052549502250191899609814019274522277270389277211520033654743692003507901881624664230605883516344192821134952276481381225351639572071124007689735245124431332814815176747551131832169286315283800080207428994385122207249078022147113812477613366122495888941855395330923701337410855986310087432087808771101089778571630289177440323022240818330052726981149739484370158595246666432404830822848399009126078188788739502233829993825247089857716378972502455362235476833458222864365868909695569363467935734077816839733301779559344494289486685359519019014012617840448611813761592389733718094696519820111232711861174863556777292277066727405339425975616595112890151525830455890067735431229514818239499430327189713741520467997917589099529516269123067851043437896694344624992070261975636986128356061456499721120497533683714769373646107179829203236289223948901703858612735098671111748994434342298929612241714955377119300596911897417635621675320126245895000343173993543124516936770798510698298633814250117773329064112257743631889192745101528906402390174268673125627108360696118866706315398114936484291245648765292960556081129802593311582903161314890516606105224642481591543261174208672860330673601577438331820862474020557379247203155000121613509624403560370535014016310163512119421326608325056461322590814695671750975847620060257185085378639801905181323760267721706375937176078112453717031134960057290829693595198837040720483925252698823638590735165335387290362870855080346674096100235716797519997007569727611350205639315857663129508506733649638662306947509311292657509715481289944089260614739130602890228526223655072129054379636270066927345649496572358430526441248536432593335795317851318935911885869549951330947931673327272904287945989897458320269752168446544878064347555962609983125920789756591701596745364060959784365225335938781081843790609890450340904531264053898453819595022338264670595099717662863137903904253303044959224589660637762203497419954131565883091068368579403230657978486864645609504854193225827501948392793263814790291401420066997979195152989477206089248386517961491275984842690287500698893663534754891894737066807671244703970625593021504594888826005131786818658100991707769494180720486744169639541893714131394280851195758276778968865102600393903998938922177246515156856545969250355344383084463800534734496971665448800927692758443503804597871483742364999689398360904326224052212804230717270567436450209557647673224714050619880715974353438922581662319774929968699150952041067774582703161037333739344125128051216808039095623006958168997771769694384433686793361082910967775266971451721673282276077951070876569630757567309142533425732026227385653854902932290240801655760686397731081024629354604098695905311193843551234268597463814022390206688444909095904771322387894830527864861991554187636699335187209190176874532059503474534158397059242500610191523211799197625889991381002264924860880487568966910157645988439832910413118753469095624919010445119621350994348922396348915891720727806867051867641137282575574045626185458162169691369610149851474399143551140581325860259714017477458936872355625058926857651189187998028511592914684152665992768937120803867617908149797650731150705531386781615741284199224350631678487371102408274481086730619062238004669626944449263877886803996802030376157605174050908886437378833923890036084096291587438025245053274010970633192046112410749261213070355419153447205020213960739742566333181035451736064145771374077847186049898497945067048833215329011949442355022973375458153121098485515866065521004218459008184002833628839280586720829510785503859259230994643646541550879172948144247709055939533660782181287617558292327316488442154877132402397735855031073125173426441251818651237034615122710541353567032760766462871329500354852561003335089657572154319868155114537073281886347681541380756007186571475085233500415089063007775097861013732653622929613864895620752047185309659696758256517473665485685871031224898278503714153113181456060682465540523908775811649338214750189968180416591270312777933960364676889928438113331047069429604339026904350055505640926516982277047023952071462542977719572729021534945209906397627992415474962191504401472480701263002986077290648777733352332654583087050518528039234384623166748919828520076445171389263143062688503564032703533192971084637375703686533383844576981823373074927972726970201283863914461172572615093546274609787175163608356522263617796482411223270597951385336193431984156259681648521633134079458789818783986466385821794244513752208282705972214773632970811832231215347725550830456568871741271064346648667315930836120884377191147438065471910363463465420740462450083236770003702506362565922684981810465551101732178754488540947781292625804681208565007084145348162503347466818226392393524208451921585806874184446958290215107798367472329812936928723625759135136464390847645023233153618474920157455699283338419051794438040360539484229027019619921408702166251587687211885960562186518379862089824084015149815939551520158623551361973674111991631054346718273054678145486722906293587991553910242127127031746711479855844706327750445442877232889276374243615134842362047464145216121906311844608236564751958497487088189033541334715067180826868668806571655413149033941007045252231971329843256360158659749459252099913647830656767297690639393282044011273535617549303476355492925488519980634775444001299284682845952489129927775295323999899339058124800640787085269538957204675664068486816592384831492791724047983262385072759042923228891243001611577163307999835017286044294475593198088543431414234496159770504785773370147807790768290499966959735039104724298563231115486395422125087319165055178654674200009355860304869009403189023234337817724130106296498896264049256750856918666300121145777327476683461581995870870144260522236009165917320804559975622791892558543433688992465625788173235987299931497238412993657663263493544773552519350388240881341182123008538011906674447834338524149789484901383171957433543954016009357429450372835988631459719059504177024967196675993634615660149284244505530975416179912070512323824261715458632587798312042283820737968893936213903787854376872829434423816671457810860222810989853107121213318135635982428115057888176259527990332583099806293524836794284190803559768628100279294365617389143072060560737672468199177786010183714884705714300121353162135269227988108075743354011249780244813532178549679655184947797326405964577929773545576191359920724024304052588521592453154046117068781042827332300195788322434556567441537612295069491913187558173918013070817096972111815980456018847857616913435587903355444295672952306778413097314794318571022574260637814086191019012939255400386904874815354490509190760402640927259929550789606500261762148287751261585013477446077958982439499445188923258720976268203097175518892922063066260000710836280930107562234503647029630261155272288242206005410031003168861146901435040649243094328324978271515608626417040640252007929192970342130536361336104647553661225876024302888036461988179125571445882707118453733602190781285303029453953143107753478344455820223992224889760005103494946006328308341238812736697080618633535090658077053824190134530498442322478581371777302113505270422829037979619303989585905220453099586780287182017451443621516249394945617089557288233680499571276077146314733088637126617855938113298362654400319791768531759300885521167142698623576822731507601081710340867592800818473190436579233801459563511242322965923174055817162362582134116774845905478814328666688212096189706374639021026652859743647093727239285816849256401009961037450319670460113518629897181988741100832410153423329836613537053507961517873422879170616506894675179910330025632887703031420719322325238247664169556516231744690582568623206729677807651328683792535148037274349572402329349504829572539202071572021101979315747921391826237679044748236726635727047422772725981764947075840701294015022584143152546634613604343507835393551410136760605546812242667885266473780496421529962914738239990631509921231086387629404690495682019338052033639517885968758391683539285888519901350386165504911687858151449381784913946669299806296466349451018466109927237226963364336668299242322874794325181142246162738677741775076385430476714967496024188607507881404493140090872174232110497098354907137856359717453804099547258407626920072326511739065184604044705717787664416688794854228871536351184089690122402187078696438711528954261209291144081285188558547592323378494312886316536886600239562449320374035429912300413929661605860594101824821534654397068328126764964793128446603849130020649349755360713391860004721365981582792865591245924920864590545422315039303962032841618535068062361191359593054607806575991203320531611216988019397301049953998683747203742706787475059576660690320738556011332142912241667918561106201618818935237993064858005270946405759710841208394285834717991112267406334324287219204073319048998080552002280830011017290950989501329051540498714709638262140242912029716277344443732952956239324728207935973271054508987978866652615217959925893606642485335794218745232977319825118527170253566305517615425710566924237279110427670149640869528083220336110013180345263708705065574640528267590590290576312887873267846441143957139775106210082881480196725147485559778412847065138364344609845346949302870186593584702258138022782681842184728762077960974983115245269870865605538532347705410898819961797213647745945446584069741981985777163060309640907679432136144754929221481697176428697031744494302290199912904348507881779044723654647588628668494503908885801524620101408366191239586373181052816704883276747988240942058249987531954969612277701677075168398288155902160933387803731295172722453572672428244587833996763910177642408934862707469843294055275571623433786163455834985417414388927164904441430251957208988765162052500128071717687831717394425629577599338298140037017956252665673398896442723177778797233899231698022194394076881673127608892342602439599273800209370015168498459514312191624518306214621885564441707035819928727799239463705832168304252800975307182637527371134875849761372712399389105405637381425129359477876334236347907282894521186990446927358310027815858331429552867302287182493988001481631802976451562773868645570053934862334597405389360646635923761032336672878222072398244499439336245620040788574862191993941633626054842436068945425856685818134621724983480657183912485026423883759270793329865962052818920462945277383376325132810596211565346168979440753398469897621499162638430313314740066200325133525041199474705175285282990914167344907468540602993951294927846867236501834918553171625963898113037146612784545093095651572791699266173928159408918331030998771131140525467917895779579120803984626807032043436208029196414791373100032717673445223779323330230994036830578296755514126701617923823808386394549234039716611208053497757176348970188594553415075417310576915255620115123839881291571078597118651014679219198301209377639630654675687057238086320961042277438599985331633233552520085667936968589396012551088061169906461724304880040679227484392067866452971872316907488375133321149351722730176958389148711157084916225584863028273341233326121206800034609621658050548637804434012245858171310361427772694214598304424189697507688331288774216271295637077200116405002065091697587268164501302102642261305717802837643523292496086047693796389756801382584163038243649761517832007606241075778918759033054495763390191342375874884077626419835900066904891421695976651420046442430660948026298449016216919616211444265548029386923456027236421154491024016923225772180263051451013473421953850429408131758590246596421888630099453120324345008043320279109355281554511950234547337625017794269538775799694730769698706920689123961571684796005759746931101688994413653561646520091267327027550922831117215585942247429258395748450468334382236823311145811183987179556634355397519394459621079649828656543168073943148395350220237243375597313272948723937779253261612299661051318973029794090580142758808889891018400790870756619197449863622775267996261242729020842785652057567857972036157923077369380451317994486851265419574597583024737346319659543697972926800089117518502492238850863697852137170465764578160894013519690766887937304908636717224982112934908731659032759009734361951036526495520050447591822952410989383145785354812200380323195611510967542034773176587034175331259000971428155310772822205521185537781063446518268962079091857037119166927253573183628922254503814143844632828035530773169668990402662682294340479130421148053665381430814138902444428903639937902426834250598884087774269285955817503092335296890022131865498066881618122061954289498144994638107427834554735690349436802437321459703899259377421733266165556952834664607527056001290868029303995894160155804958463442823880547155409351133572068288904995457819633474419095782610450706516193497770066987845281088733181754637310299747666294298409462116643841883010069473709294455371939008079887950387405377613969737591514252095488933456542766424227795504793769557221111328349504036873766869881945924820880083238230364845705225576263023675581662700929930565043329442838453184035139302819409520410907003073706788037817448056165047662707692520403872510142536740434015789502793319115805759791272310671688345549372495822615537242056212747234935169338181220646241758483885587481479959840856012693763069843171631018043068441590206752470504292186170392465507585592443944351952188689181807666365074510506676507378476431010854523013820877209402851130543354778722485689283753249702109140036135902746869594762393549209228370697786252382938988410839527692698576775762092391730237342565627120620697395368095723911912616627404974609054085170451372840357441467299725338904311334034494383489090386791284849003509366032718621126735598522314226669160074488988516618653058899873742254775928589820830617004350718889187244039215729130364952474983778945689350539464644105114523936317368255511687934417288761326567443869079895114373964187781342998617595869332428169028483762477105655870783424590603605536426337378719989381481455108432961676556883309364314621681657936331562330754903004223873985495928758934853288371449097304874061850712785050330880969848937553378286424033019629356127385867616990211847247686691747176670713521678574694207886290030114099446962723440459399726747301556797577991632079057614681724666363525707763519712002011453796475822701594608166179310576493271615701833203159900994270313495402872847067087654632189774333043854420799456726324504685561320197662303297913840789269904447714741343373227213067340309548144465099794612807187134344913833832083059149445173858498928461916324261170715502600654522788353417420037941998901369940629368203788651557388642452904663786046655765962510051119507751345613805497539554063457056764599669959852011824658234439982863744746298159798029450315886928200194970394782695193714695318516023335367012874462777302492596335768362403671216316477409616908523257980888447396037510403872880251813055679616696669181812432740652959551995125549394198570112051179659548603061759319311340649321547061079607483818037712558420795969336646121925169557031221770821825405438375408331445518619681911613801073738857540098297756087661003475232959912226212532050192937159677099549525948324619786939453488930568029361632998029721067869400852819232788320917160889542874670165463454520266151960057328015377541400161683103178886656723421495122838994452734959170078502876863782132984790457954768463008452676696417045766709151917556531937741613258540291203794122785823677150570362192808376115222980342251102426356817518497313940789324109244411354608478290463866498182746419468273241409341572027780810345689123417101468585588428064073294994760824699622627604842766103228010683562561876939295681010160523286812631927539383369057862976976827165592566326128909232147132661430371779470097093975754022732556034896627965396652763252529037072361737742679038286860620166194150180442521281404759586082682857913354647618490952924074704181801922750498102186645386369153708911243540242812718719822553109472093915555416856985476492144343079223477224295029623321503643283548968107930234120719096067186163215159995661419892640129965191484732275405922405864804703384154668972797052889630004146014465532437727503346190290064581911108126755909312442888192255211029431191488147547879377146603886729903925916948903380556223063670595783665564117889401901667253778942476649779884868472847172215896873772065057833844383922572083784574640422283229551244193190434699090314213652784648902084934130461540769062277158701136236223091628108764952689569933390606803648172136375486350159221382506485794649354569863866148141361949255677163787226642587762234930770384608682632714552805917691600215034748344119511307537985600185582632409686239959036645542746805641024902643584958177861069404655217431813863381486663900097142031218473378874780571253717257870012798594963407629009520513140663919013943633023067214671084429399858226675705357122964319077806825997873061655178289415918164553187160422934937147351589118237543691958753177078350620717173335765550409978000528788644891704445638517211332268929784363729450789791272913236878042930139597031855962420087786041697221358204366690529165474036022031740593118897717469326835299890655025854392815665191868196611622092873523670367378479383357743469470153000362849826607707667001748032047009602917117545394563389290316422280356269644388617064567738401878157028860528173459644441337735225138550587198180389571140451799019802805306000940715451990898468213349229072821474453402427753809269377842500630245583526994994054317233153352203052109672946741938489047053678551882451188697281420233590836752221651414669870266577368951551073717375467891396856137455812850254017491124337278550719961995874053886369457698835902465376393934382892663409471921656454661372894353958782151150060269799530924469789837308261144184356243276603411653251879702491868934279017190196085171119164345739461554241184105800114648662677869105035626418519611291924218036199054029347331169835762507425316361595695211673931558468038949781458943478779254776394103740673538067132048252538122141998843861481505413801239640470973780983088343863242730584236646833337209802152221159914948318314826037769911195486171205886514799183930045671979175391556473693037764159836951987762396690292354259782287085243966374330082026657177377772524155682737380837962383387076991518705141687232033921024109390337927084404753340367026397758874484775126418301451185875112767556113164870782835133333511566253979331635523705940843817578622358696806647859019779567617161974491261785531253741290291732075289311197087918448929757220700099751926129444586641637205665342674558191841001158070610242197261999742514212261608591203248588953752206669736887091924336556800847782969130925814980634024562564797020970561842634254249414882432166199788489587708820848542775486937505641624420548894923164537600603883187143178925188797578280420476413989687542987854558211794084234266319710516579971721058184247670805447049871632784905268742107341717194081110472552426829613303374572282790924229855772565219795024515104710865092799096464598048420444284245927634562820361752220055049420454231921942203288469730919326685672741035250771784217506393046360400597394284793927487456737658526562545443547570994053086610088024669395847558591184233793471068640441793184281025052111123391114745605322168322932994550365993871625950887045472203898610676083913674647649955187967411231973517613915982254346802269989182867190626500528872033227369275166323323862298515956984193040196972180665949914888197409134454933207175570896356852616391894116886339358754782205079793463016343610943968132460651196931939296092999838064644548174992825312709591531707543826093189595587277510737831530025153413844296804922999476393989371801925602464213803311765210786532858980148086119244841950233909713613938841166548617552551279940549062821110283113410046877157305600433099351199945702657948772464277296759147448822893132349083569232403752025233822259669903332631595377588207107794180799026614263621258330580003216078760088990408569628182167550935108713584516797586678259902458660329219382658258080101598268848059883672599077395140445331713881297071058094079960077928724423813078380031064158264154664620491687943029332525629700887196076561779328057293417870906455854210362278562344728080825749413383272697401757317340175462311847013442813867702064065436859342447053512250659275762508736631755340120934385321050413109096954587475305092330864013136969762999131183161963612585607389086851472925838474431374249434517958542865332595207085940500065300235153547839922151369283421238705199689101565225107355440784809345112203142010716234127354938741407821789384389879577447159669060516797441586997209663982875666835570914813260499070706879234302451406879554010046511327693444924088397113362863371675595586215687762772366350945277411512123150036731189697439227931418776453038434619824898738974075587323781604526091950108118981163378891035473587383363601529121757342117314718212811776075515717248013440017670748753558179510907317047166274747182597104101214255087313889518119518764631217552010154616602542121492609974466040928256704795243460109270327428946586825447043835154651554810442326269422803519537286152425642115116479607652255970684240427162271236578596003459070965489884512589234444448828131853508437699610145750863120578660662421012873482192602288519006314157629666551126498967739525307522659877230751794238216544138402067720430675720470667290693443734476201431633771807380905491899869245728715539758259597025285019261275576850508690920498175642254146352058492057997928655503156264565412275528953898108042045274320531003317653165049276517066178294829373832569555685103589653496963982086762362164702445438278374851350058899316033883059707934404927724593027280587257136635577428972489059859109450999493956535747594988333130467712542806091873020015253549125253400106164101199310491595827980805973002121259819945536030434888492182633956687190428999158649784974469694568083035754421484018196801476711730595311641203367806739115257180735308735575379657576929304596406465119344652224492815024823330396925865063561047292466016120584052910892823162001061805313205266433016624372927052496953892649510046779481718818085049622643904278715627743097134751867423724814303091007530178031108062818271778828929676569931406067857792270137025573528889005515340394456322323345668131631234036059522580113547238738896634381986379998262526818489116959133876881081537762553690824937457006625066115566736729047172006594876144228550912823689652639782606871402001159394744614422299608763981844655802600104326777886103400781355417228281963533894941233730879182962153562109715038641665373889482879005990596157271353052431403277871373169942645578075600548888020260004201952451200949411677967085716381423923708457499390036215365677505067532018737114046211273271568598933562291774274423110738314753375945355118336976338521173663326088560053490697916579302209287497524391671860419535079356935960726761637301488390861918790669321950414528115087954745374944207675249558809740310829834448094820924536353023091426754093622444283766310354470914248334063388351930391342780464977061124560121287967497151142351636241488935648059872426504996825131548557081504248428236314252172252030143542907033478793310281925212852603865686385273911719545787389869210381949505729643670149895011798084025854798672423389471347552034602946604783059856521076883107488030867084594946220440934577961596897375407597349260764716666289646500218084239163163472135905960906149317729259169704891099069553342423433832580537676514625494151448425737919176907723171442909035615322969967361065204545040596167164896966061786414564517641479454425451474007326759848851789258476554844718777839269906748914016227638529420540288608589173765401727023721973349496754476743715499880261571600079857617356809171688097040219212663201575734347089472059691064340519214248209754513976528078679276692462336855159109964453035407877888614564967133850850494436892779207236039415711562147855892409533778942085329947425310140355682782189937839535536322256103537617059384578954430296492744374935941241322951147019188681017562933145866328486845057531360297054275145340306164310037701128021391861522572430878451101140799849616674450878973835067528629550058774002892819103470421811999380415020582980656932020447247131125298920128945320231039191878057501627450904847332469638087573482936178851393205151337179172033433884707760341458203031972785065625492264141206685073040161138305146950679971024179343073505325063262292507369681392193733216415585504218082431754191491161809688827358315953698984865195256252166554034537900396488799309951828201612687880152732754649523307872824198236441547456575422213438081582383063653410499048074010105766811610941223753389295129187061653822990045647291675979819815219466146065683532514844355348498605377699820524735310502785298065720459122405243997430729320974751606486616316647434109475996090719051508932348595942803955114337933726223248069664403322230408257640147205241107537590644322566257074574976495227307219016012243552500669966214075258601877196211634710155790820172844764950686022729831816255914712441422637816972801127968608589770826156904061388487273294490394928691237644669913788393330738711050411416428720083563526131764473882039897921443920940842295112838393213599595232715662387832525339997977402924940986104699791812371686433841358179504538290117492806644080638229815745761197988874128993403732005373236165000480081597234102931399549060336420296597401726976976943131689137805043522115939247173620685172535192523264085909222841663739555873016603083200944858223360673634593238124118118254120485260232442545808814308902113661716567655062661604335704815364723785825048000540384793319842369429370796723427954986181450320714228603180484312465169855306037098143152967964902373648127814831867203564911344128230615205792989070262803764419061878459777677602173807149935929866895178404651306496486696593270261334827685528275540162930504687823958926532264939964102432973171862813322180358161945270927646936481714966545976922980175019209603829887781251112281873514821906247955121903038653306540981407438149634852902657193481302307730994593375785525515839261365188496414891437774368919421270374429971882169177927217473636184418775281109543404365138357780145751736582300128331807169242669171499816560856107216573313909995607417383150574387773781109296411306049731052188972538956477979848744046292090145176277705714675631546289915558692805727047410772966551399604912988062067772094713243025263769594001377754161456868836046649080505912570591441922388366961865472873010710609203743986395646092213073145273370533011246030256135273455319138252639281331761638439153492016092536083231444136805340675315314645220637675168629481628807116038775948773089913090607394325223217744476274005655808894423625281767595115391994047263268889236643617558987881918612440172755945014909166745517680541454648881158688404512289800506486987821226634864793824238836927675731271964030616777438617677868877543976991661517596415837047230226077003803237272288451457746402532958746458224697770808760213350492556218138160222281389878923998363982821848686551391509472749216859937640851064695273539744510366314688626477250321499368156089995492571923844751981648140433499167593198832546517993731888870974015065741320193624925296887497592107988898918736720150783965035030705375444820756097865783950392394312055290205549157790358618366694871608137422760558841467592005251298740304787932485653552075118413349576440761317593204484864064559050512768995880479399125094928693784718355087468038674357669574502703413417854430287004121252034435000024957007844195148612555004202118765679913058873937260519565996794350888569513484461861510759768940618810922142223770986754274492505681763079685341651961240369054599380371236996330464858398576032460731407568685690058905649176891254652059216363166539197783146835086024330291395779694266898957437649559413900269347503094671731812585227227891695498808351836460214423904787503346430819628625267450520903511632766949264393610681289320878493474698747699516524860619055386901119859616909993401249061288584193573137297013832152651039288594080201085640650596306043679670225955553178700052116586366429682983951223252319517882316608911039324782000141745502740242220634428069577015292378640193863183728390079531938907798764974258125869581273881029997185440171696101270954878416597478346949421401987266195728416635933645017611834321265485277781635097970250702295906596906975460423253728284802345068684124520004461482803296369364340903859591577071620198647790723044838824217389924266141156122392318969059527864029158362940797865120660287547896514263216604981133115728851995690841432806743616120722872103890123048337227280005761388577779585505954393652307815826190886936605862624006366536226643625310220258774428482354463604977392211385849143556437463128453422746084759101090340787748334141674734245226929336435331625044377121630824446264357127058188891162530701194638765066383377901852042585163970538178827683951802075544634006768219746685264116282778254701845624127386501678559738291580262772456374734195183418027847318389529608047596947463949264632569872639560420351647911990921670097046746651490041373662480470133692280365038834732858154644876339199926434636221844050133292378884475052185482657099232162824808887012162812530036436973877472941128222957752506724264539794043348684721953857179233679223424299100974812428360784596513146268246099107968317730297785757228785909107644033217329032243720353672170236404169972371690384513023136500770231376019828013716030420576508813115036396676103503309714107203736615611145191673709959118161700674637606236525136945871805865251199757094221102092420764849730530765125817547990204674182492199867225348970630325410376711380319313228745719566626180436842587593269202273161976493766352312763613861025956065196843797610901778108071687869195624149186573992690197566876129919198615552491075616817348830217999212364213204401755760641005528954462087551908784010140042969906781151280562961335351791460041572047664377818093641629569147160129186145685427271190776795501047102239476960405857269779839295694823913001302032684907363235618728906372923631894569728030635137139024467670094368615021566233626907862467600434201188841785719647626342868550499292124075549811126663005185313386280320133388868220124649240767615420458036464653242578780251455652918209030059323866291959665576909762880006164889132128894785428573737271688683810104809280356963308600653793910146821241342122166934522665055801685780783663347195687793557477980015376705906606443442053215832140153808624157713387820130192461957238575435163439372323477990441875079192476655463128110609997412212861194377827049766147368890455952932414298665738540562199564377613618976998695055200840434586661167465380347683312593567861673176284362175823552142078942237988170885871108793111443193075486667090305835772180774723649893064315459048719637829831100708522603240651760902503684510865240181855703831600354319148134220247863610969256856507770938425191987811837231340932177772033593600322885515751971645337730003717542704280074549826461487969164923486885368624338919983725358681012309061601369483264823445518158020016378491556637116665099214189815990531254182646526508248945879654314167898238152243533591667658841017422615619383427512185185175354975454117425773603042463911599718411294783242088331807391255487599148301295576888148196113512516182203080017083126178774042606618286809871050451591774948417484218275115547604055302545491114615596966630856012520165305072936074987158288026879983497804451799532429408542864669935185719859177845981468546341059381105170629575833626323159817511556624499080807388699647796247696138529262839870390119619581021836715214190841496536088161987784305484822573366837217145447615596106213330625989621029543481119422187210170342174643328828459428583298544769522239297762655992844977303913072729068611458971959926019995459478146405474997021802903730467317212845862316246087885583973878748488217526088660762541621115288520602389868727179328256969586170655890834986023102887446275635766921317820459121013431277304164919180883675299447883063211096566748612745314166014658756568206794401706963429826686476112869532733692030578297720388094312992270737544570827452892155454972151852142089555867255050004151894600853685206672399516671955606317181903344091920247985657865896201856723341675092738555377327631126972512099794149061765985577359219220049632753627857218201688867359752517652954362951995390400325646223001869914193295392190989083242156666550928807214724039389609582942365470157657621290134944313622664226699678898442834766158294674508573291812482316427284862679518756639412345441878743799752343119004228846570463187996645779119628863467064310944483194146906806899978579121971106544133382364850094501356605838220719061670473895479920163298731770972967802647482418067875315234645875875631123230602842265148901271584996634902721158362318192785334652483783851536825022227494899718689602429554403431925458633512072503687986622429123266881514881266223762614905142844957524395911027126142414439857510698302095693525470663552791559210727756230618311557589383343124505920210319889911105342891748290214790916021015873337593022817070945368952290961711843544596382732238716368379351549776507082152906212959626523330149701004187214712543805274924589443797514109649791818647629070231220072187626604589741491472096233911262322616151619625334495662150925754459105080923319621651215458114089668147075050315196938934914428200056477343054714791943276421184467889979137012969805112846228974827959986901437358015715897667117500389006263843362059791028808722333558956956106908324824275080413418920795117281242557066883374306429011581901107494565716712665676752026756230384494514186867302474999846934208113237075320095927659428401936997206397074982020571387375444756203508521610775259170248959643834882205942249901566050535325982050342217312095010796009984981822970534365498752893205407885753500280130548283451273500900667928562219026071841036239656138024399921473093282673783455738578608014926909941457391104000171720526538447374187980368026664077387545391380802759402571089412580720647334601400484520341205048046842646235393842812350366224719626860078740591011491880754292613712157644489954591311531216762388326584012743617703203053947329782944324197800826693381861411202708719392489134397104914817477797844780652281836954504460142169133650369466248603599118919073339859529826139245318289862856832192274300007984341177812389900343090329792572977306576185586391023731438761216168057565516651814984788621161783861360409793955786466716955317383738373290288302367554882096059086173054005106896901731074872282922665411164358352388265940625403766555033707077815408371938938864230218661268344493888571966363310658896522602450334047056719590270552188807440307683753260845817922369669151046695753407108563256521821167207059612050452446659494788127555292103324786319422489658523561994844526565124924982266778698868738902096222679401797536836976122025138772828448972062678450274128898943632785998500038042271405673492609088174864916012618157329839563641684915597258213311506446960333229577959150932293027709003647154958978869010878442194916052912783862313534338870424815517030322200462190287092330940682078069600029665888211446945048462971336574213520136533504988399283301425966242143627147224213049437986945838001495662359082760590163255995527364501268821784609577286149141856184568136364141948502179804421184796003693883566007458004981700875182727858638660361470753243539028714854698586119602371234712491878225643282470709934823159936947645764050445609628082613510101787871020015558727343527969836287738978372994286772525547375182929678939674968501375434306122591025687584388074258282485476692444975283684946759550190461434560929405083433113933629590632406018790524379705223482578837850923597271306342531977402873355160480827087188097707769636880009522171958440014465278309891306674069283713084655758640093740589503093389468392857756804067520106069751726189131267610041968615483804532232406629200884511367470854688803832184230915939531548337778260265502988213400985078578760426083221258894777572890314955879807175931791233045526506451419916402629949313865465771599420624792744528150185115751900591619817647187730188281267438562469584100881674304861626044061521605830166355487949087945998472263823908737857481484078000371438934824104979816305679283717613943462904635460591737418234775365421223046883877624836509822306161105955147009397033918330771790164868769516550495841519851019604658254601276318102774862551758733225054831210051391683765404634139719691107543028421243028134060330169771993775981118509547354093059325087748427704063117660572359546496665901129145644558486026900080552263739937275374791375987244474481946654273680040724361538235558508970133003449671065361703680387047408552975930778925921475325398559494038336506998358907515522831408259400016930588601861455409547425009378696419135332378757738646085672993051749888689734228714739187794899411501470160180267050192766977234974515993935831924340459138159828173644759220883809705099016927002365141935831689516040466045182714792158026737446948074602534652030776846324399563564746111865025725447531952633318796275551494501473419877529783283727894642219551097169813639539944526631148696562832046055611443254692429906955374489968768036347739375959793732071527763457689419623660421679717054667139251066549164919337723580626254204502371049413789788463507635912836131236627769403481756903887743990656487460023012312678724287615559181865027154809514826155594493970814375238385377758198184593521229343066474916716732222172322999512111444170448612292072005907099375132092114475544885334907390957537363652634395548888116675700372217430376706980615593310637292021119611051738515971748917709819200000792067727109594833722895693573870314822773604925672553059288025821270026128650296399896914619273940935082850861230243667731436632238531667198124069197563505210697787968563435349893015467207247259773672931614565106991231716908447976829543536987271506714461281559358971262272743041671930701648221939374820508082967565624983701353686053319632421736987789442298467985763001719112722975774093051522067594517045534610316190453760897054955098046833031541816497553400153219651623230627408619175745582760799936445647335245915066461719649584900292378162236868883635105861813884634745809438102021769899096262765699221188664275903144313857731327433155032120666646687192870326147842028548722291202145517582267904393795315529054965067187989489728042569092980013316242506530581464832517489023292926701792727550097624423297289489787678005132093390662508099736228458415781307415698741399806197449082624145384349165935076624296218497485970279090015538400760970357235069007038175084049502509739066631381405964520718528337614220751861572687810723771369891270055124058508423590582538192725770063632219847946100772196954226317368876436105079665604525989140861652999300325217733177530126037934193617713137437634862225558197978235881022140495535819028706379210783266360908432128319631221201325619844387785019900869194017014317222024663220228772284782258736991712468220878323453040215300860083617764336331955511863863657379387041107029018578993559970005050268098499810847442562464540483475335608826625783196458951967205446505793217555335125321291552739835377588058937412642978517336974089537110579788472156266422822044515598991576687130318971401879995232204110226137036769020292194728596839855803013640632260045313238021450257493250183943417493621552421581726599859444758447095124524782494644253164316407945990358324572634019624682065197188081627493734907660175491438237564916693815780847560151254798260097832421513151080918300529241270770896749245810276279770239871975264361950629201618118628304227460846231166421387831632171272175231615478941522399913028901720124898451722154504406958859325032686153921866722554762401492082709181538738784183465909826802902970665741808285270493464927727891179758807870648795252982688563083266773969877901120861064342766824111718640596138999128509474562154905490896689638097675845534686987654832218717634919667965986345148011826511596671976688882429664395677814291730932570207340164653571542400676161775293828766519649917315385994780825544464437432678120445346769959685314204133284531656666378825338035615923687788005353665254443155449854602184246738947576162372918306583095551899138593700448196281809603889813998345073853328394420527507516956857147405432682508258719065272823207075819945494309191859899344620960752121066839299366972157823287627930012492492983932389876027027598194365360852432136841317768846158074104620711327788130428490979983067111430226261578096209518980860669182262162761074973727504162542955067360381329783268045352530352826721621512289787438773499539834739455078919362022167514812630773215820957047552908292246177481351634875561065214316749846470942811655266793209997497707262388222896017427516920750036324198496761252203667447221329909741249287145247302224082297405746675209533154859976060869676372347797480583169100191264816944994332865203847618322346076960158960076506773260971296871787648035250641974493087149058272683265484796280371539841094902846539035696960132364214238417024816176901388136657981755794573734160981367420412336322492095354533568313539845299008673847608056515518214133237395500015257967121316346920309808382055286672082454616461280715903545542520964999977464841618896020530882369611944549238521236201987724680913016978176670645507939661022158917140467741801803797333764335117922345636345248753838783641891947089774963466049301542366709200241026308085432387652717389234250191954369159144879448517454893553763815331025597023406856758336229066761403981673461450796707635446000328086140771192112407834969410202350708672015768414419187043678486813731736151460961621944658105077798030144649014506514736418970024592518694667260675729916835526324235110239649387867256599418194552347609301088906350152207879527491280716373366562516057859523955020048407709017266010972756857877000486750287827104115173555786708059007067376590822563030284472788992295690600341273953440062707851243594335553573862946073451491988467688179712065191403286489427461335256407968670084839410447759755555691130465800653044228705844458300837157308253361467563217127318106046853400926417499399703403105869744566619007410512259904739750317670693649116018557789092058398672969700564937053754134556204482220811971621165686783394324951929291553046136210083641224730478793502155467445548579049887385917976784955231086238826235228347853071431354919568604874489459430170437771292023022189752888046791510041313093365312450692210500852718776063379780702061683500867157533539811033697508685280539303962810799792603947953774605101932467799551847527590550504012160482138530047487523551813121049218065172262473605842920179960442957031669765469679407319375687641828433337187449659400312187450387860427173435840185328736001934327869398621560739836799739004055714942907210241745519189169436058091788611121543724927230475220519699417268357276049221037665616823678653054580014856936949551924421985398075992945341351871577536083265560177800948414999415766954129074797452553621608288034903708530859152471589978286344033145928271572982867899697952124663782777453922251524033946957491872175701674106787777098809372621208928079033014755943186341795688159512884972971989520574855373489177098512917102561861880976073299165509961459783651212270091301807985580544141560976446366612417639487181226340183039916800164243571721894751813959440525680014114241540509508900043159916096225370160688908628764680162419789714156007501002298867671523439609972911176145019239629831979727939952446630593971603714288663320358672663281536365246471886725970342593208764390707142291258002337520998184727113521839759952298141969344076423578450902524392608395330828346877505384481300301358625947420629976960323236921292044887980621881519034385158474208723907272656989278154487408250850747357907495920344461253801493476903233075353616930089023439067743225716310335452115140670259061397719326851604567663631800571520901229629261176477694884998725431577453471683752490244216373052779034605051621815803642052051996391008295795458219242879316894616019862116687039381628374428429986683391922083477866969398095230100329965267915461665074306558541682193049728636946145652133630878896818608728542774621329004079685945232039500576862034165049639147994041555699230944122330951469419197631155833438268899580287255999871965183543274998497430628531476903734299080699383635105641146517678709504450196744231283692204495831409961541530320711799151997590932487205853230512447228304735790040648855837545308284348095080484807698158311601685529354539335005256292645155545907712127103716415926643054241195791368937700701439789598382186302987541422624840800473195402261852546950910150791611118673944141676095727653756594114469016845072706151923499470064072029462297770020601420966185300313819637378035584348637133927794082033832082520455425323999749573895353501818484514701276909499932726477963105334984811613687216229706098117824663567015033315517849414315053550857481176436750354118891491123006981158192596689438148624455503776620437837160490575845043893787874706488620678464680910899431622134955844802525671949317969942820370931727296911267059037382714392923782812898191768071261361346076349765361185178705063173452342937458895984009309193394561786233925002153231518420913982243341536344448517121724901934858628861410939036484422887159914192448320463906438419324044608183593720965033470348204138116123613944306044847021094571426773457630412068707628229026384017839180550728280376882644398296611912110374402792974402018901922777281226863266859555758011937394316327733823420583051539078002748019121163853357303707536595295521537692718447017234308590386555457677767181319243170176007513487428144674995321859838061495825893726301964513292011940487167957571482730889198015574712424246445902407164075634172986274418022439607019891625964730350575236922210469351130900905918997943541424266471008805628860092208778387166871373666258882684560007391944576965590740043275802888347715673040172490299627815427994676985301334554725196066986703685180161194635697419347406189662420584176010816832811181622477251191222059541935542835863463756113260678812540896469697871772154799766334280571063835842292650660242369825160998741867376767550092248024633433269605913014716378692289629931607939253695510679007736612325406260661424185491640548196055130549650610411060158199650827254377997282506284716704634884685458117588657307230776366775877098429522567452536921636760260549403208128438330737189899215064413200803818959560027244573202279185376029252138503851920136433661259440856847108743530112279175030969637675699514178583813445394914110936932385088646525235281993982739934819176583949935251880298834624399882306142492261705179197984698180210727749491605454945254699231820518331022521089033573325209417374536596524789228892559402809647566708921267545983054524928377608582988462733112269022735770786969896501065374523480951918183467141793352652125086427006798843256072940296166871437339653312079480877388957787431047870616012413218387160822361099017852490373741890724097752274388931913132364280613805772449579150458876109639025026264221047694059521919864436915519225040849436496836162811719344550440033846616114790556563184400808122836381333941305077068026198740986360095753974593216168293706225959877348055881891190957563554442832497993782176756557070624305885612752261034892345296750303840486843822163803907251130624975322013932793523173459834062085669833431929553405479132071176309802184432295774525511099028089521906792707436849306498811601703948367262777892764583290009749245444483287347485931333122722972803907025925365010257901485268715280074410545849951013279221687899841060096434865281512848774792818902436891667527597420077966153612443052544837954883059340811300181575843190762019420862475211841729842555428992595924786863813773470856426230102990152754202856000700729990002028657769548449104781675506655962736671414121676869052030378991791337656008014918288612222438661654767096611082918336417230166904222280038407378695064317172089832384299077845600302202946071944807274498616769335037387952984233811797406549453632081849213345392839025947729872979923236909395242138044285744942253513926946312157448658910815689555904320165196427781606149869534675885062941513855826817494665980009539662642708049272366657917958052697120696290280230027482706474389161330737677963192685565184518059940637885425162009446609665756202905821594237210537945692389249853594451013120651690970220088871695336382212836837569089462276142553873897156248378525928538147157679403631386786668677736205321307641366739374372475730601004825239554487119179853817310598952544000330813700810189967315465147020375105063472598949141559839465859024359361402891030433270685682388569165600937452899975204119114405164976046360107292258570355141575978482124198326724735305834968801873172858747598727937815411642694045219036132343934584905323135830686328110487013210927117263669313056588257893161237119586700485472170779437420057927332623381328174905664531622796536152926337402416376521632196878876501619508267634952228289057967409864925110263743898332877288173884440961789656687899029867126277045180514812572132578341555838244352210353300820683574855832410310357040527390863464534322442610113658600606373220232609226562051841092929913476980322338645340164430041870398260588790827551645368911894958202762058479173132923378084598814103248172955547760142769837725589146608964616299558812693007492724847474676229807174231995474932998061527032765537868199971467554701201881548917911304391658595975961418731928104782540057423420342274638607572857778508914463456798494281603658336490548938416319179975924777385548063973768065698801545960585627637527029885083213776206151487423991043225003586002724618677772320533560705376294813742663436413304303072380765353245579203100753686824620159564296981016084870445970457209823224643574314999679774390261573452894219790197490924742344825886308690337670824881968164070797388084278381862277027967054669233718674828467117397241850413286255446276933700136307940990589585511974525080449939638915019178280098742393536214472196629593724735273970434503140776366629458125558100477857068557529334340655382970960704917870147901488641333921237907988452870070771699771712712003927830415031517682730641906537949897813645832887698106674660647705671446345223527505917247118507109937971290199088467921936040985555445176178715825451449158551883946088219259967865763665400033689065922689700726453057482570330041208953506379114791068335827322533057329143731062834803528223836532309397320572907599668636619919928270941888352182079938016658138283300634629548041160123999668316108475843699739243678852307198078021357924386155725798755734897832584968817894900315623983110782085066820866467066952508314527439516418140848668124557791063378081716569807287473745327562686577082682975328663502500221274231647343486829273558399057057836827699453262477001440976779363649244009522557847594509574561570321552056774157523120088681179233536165063901918636031435968977404738119736647364998715026193303860573626167103598670371443276156143673000312786923165209263491317708513443329656704209648513776999172332259461799354323682156307806636770681717046433152380556911599563086801547641748133261016677423033694197540535161813311946366367436738973216411216117729841760361127909216837391829885977460153824387488431882812562470579714346805789589988204405940361667302205722425146200983131605675992813500970227009643208732029531659281097688476164311404140667131154334140887976480316459813444766816167350011946485329043638648858448100440354795972072516645482335339244439277799382468890708224312431356206682862773012285561491036466614182517900721179968710917053701641093463468345250066832664657220097485288481891191016798206937058289091529295509474539497129801237088922528821420524286206864742088450249941985619366042923287917835788414287605959184658126545239593173046420871011088831752637447113183153599052635456057339455496397391065603959753828873045084714807075516026209219265224677052123579433967508628003778841297395121080404491558595234668880347424925004220122663919323380650205599011633143145811699319462485025394258700321832408908613452364638992078686227936845447685244717647761700943797785624743491997732544439649365183852479030048532880689594949418560688907762151574732199453058311810055334879344054314701753492591638683779855054568320657277460346198385916847434595423934195071798081864663604161902276169350914802839271283562804217217283675889238014731522412275595730826156284871403150676876784040482466319429234231505100758585816010677100083060233627095873507010357050960200169579404203194202486004799393402826378866018222168182200234636737856603164537466672232503026590499803684399852011743631857449433776113926258998154057700273620051407774077582351864102946645800545994405647043405461042682233871783191165809526216517896866417141984292734184861687620282573411026802637283893327984497622314710200717683426890493208789578403420983613455248484231217973012113964097632633476993308997448609589473039401916699126764120867345627695659079670135208924387079351469996991153079782727091671827253705715382286595040237045434977661656141342581652667486811392147390435036744795494137779793368819292169709606192531095291524730103414385836852751939136566466180918532144338571418932388304602442974006959220037787832263262538989142895656684952020260675500849139170123447184440683202639570408452300258362029553410248704589101319595284343953954762762644257121404604396048326341528869777468972560286265555135651602555045893691483637551911431833265871443077583893947581512722736949803183631260101307914096083427518411675933342699001721450951756077471325341803414518297393227655736541725825064044727311487398390404157992724847798393547041872890314980062222035467873129707821288067875168303648104231803765512932099019761344816562676556646490778284109727926769385037801233249038740641614432971313550504954238494136278847829939847496010450080098779525042678245509536781779177527802282834899382437677283259169029045615930591535436292013766963206130425987727124059200900264691792951141398516835931274411406386224356408364795071205894218180795854290276410939920153792457231417803465077662663220768763749225572083439183545587018504469421610237415854821502217699666597179216291735302722338923002092099213213784693896387380153512424434569544465767585199732614481634458711944512541419768893227894964687867251340320104596319606047763714826907123224909353577349198636042006739595145779954167862668574296032762778622978216184555972454161035349170167378417715621106523133029542357507229612134303271723978987719598134335478875637687543379020710212026950059138890173284402291892604681999672388627131871054722051256217669272833124702124618633767779812968158350730855114760305793773327747896612551280599265648206369795184812414837889032609782423186646522240420322034516434493368100457898241752460973542118847291288571911126950901655537957326267654833960483439140348209869175112743637765765394787651704689072332647712903513143800418440545604455225481296143062123362108854892270912644801199485648880776336389538348290260014276032370037562149883674758641903849026690880113288622103556244955610210826245514653763524507051115584259159475354619759412548301507938614896710307550107444929219945894594869892040862407413114172887129643483420038789865834847044833862346899903471353389210664698728512010436244664389129634102278115822451457215368544680190271027097309848303148525447994513242450418141692503604984891114533707232645018436241834853490864803666815378841154666593353618839804203198317831796647036644160974399666974510993835142328359757393510156114040464013647108289424646248495790123362902751919697933626402496861199117202442323798618412347708483709544399951635041911911868509582303243156738906339734375052153499900328274604495471969257566518909231516205632728919330563160065193041051175863643160659527415867639185204713491589597748554965982106492816187676619530267011542473714019757831273744411731905785334302052511808820724166491165381430922389546893248198428775855586409832778601243357701963140424245755193514259712686802417069825998418500079952173297363067289306415420919081556205347367311047229274584310692707428772792253539178260407579237557616944752540290255068319657798582948167868313754534674325066169937375240236643057554473676053661839776331087980046509571790055272170236661411268385372449588106089754801878379285139090176222821328634664209861501049373942745576669406644210629814026082689310894974033114097016116104534225993425201487309986052572304353894582884421007586781487852525873283957521377388438574815903413466330908693382817465396987970842620822203821768983477272974424680538581760629262542835400617762573052726898511789989774875033018744814736826325305079934999007908257843436222142994792162060887670373263931679433804204998274790061886202436903573712177032500267265544846594667457387750462344206124623223208466633465688170178532461687113369448480780341628338153930710077831552715703431769726733528838769663944761648594772471930565354233449547971348448280476479526397783021818618869052490483530157990144135460966887087935712429643812721020079596087368934627692422716450525620440229138912677277463186546117168344947570691225424002700132372928838589419004882173382132926798640319699227175978921355972891978398253678326539933842988264069803561150142074454306701180239686507206078332656735168838924215486364407777763205208287960410788354683993884269808703153826843997595746254560332848701317763958303873329768020518714001531011123244873810974622551728500276295551418647963362921937967663422840343867409966364661016785404684037991656640678392421879381799121470216295020377184695657013976097672154176843077234741368734488934374632404337102111432983804958107040664754919469732584560312587752612628691555461420224655593934385257711562184614134505405903356742361531486721938191457120283956334444962643382447710205855920183913986156455052086434239800159617461476185456131755205785875156117395912892492921933673116207616826654825677693121392190920158053708502959043645437061863238303255129813900977481282301987416240406131350348077884152360674247211333577601013716814541713143724933911048626166434573764369073490291549277520287199231971522546635363820876530449378112892257155110723650043984589316501218017615605565577677953209724552990009708618509889053633966810341865213026983531003160491482600325263021854649395873660821540153824226407469537483617241095054493023898436519542668541217285822754953771408484602146548817644319775384434204752058080259780986774862880265211165274983339374512571640784904562862710810934254888876717406038936905415975883793546633769060651841233896705396716561257367987015135483746653230632808617629667900977988765535262910616253844713328362965452488876957615934049412395139106511585165341563186260171916555422038105300465655701462134583321356112125925067352988332300058792385315814651127175649663559922522163633176564875776525728677235905278211317666102524297343586554144624922638896728954555916532618861903784244748689304334166867490133120030437108540416143712877188364868397249801639242884156018255232093491206116015244445902092260172571324674942244554169707621735701572122319020622511764383324052544728940217962829468803187552996592749548698493536239153969907797297945671053127910063899570530032590208283963420770028936136234194901757909302595278555779762488854189799772432785363753468731071697404193431751401357606554556845086365208251465333140295703233581615975267651352590667793326363757914156526775107620785328483949102387610459675334748448866113806619385539448281921857201866429593871350028782503070891157508199612986565642822340448841951225935244669936428934534000895474709545437174106588131432872864012952569446067804151738662185403505913119139787335154310153293762210640673475055811091451270502894955405777328926791858622152595422060681926157277601748620385182866924068812850530290636162381061180270665681933021548100331495627922437240375693209541406254820362012441490689360454716924371811699541651358038672996158957459313282035358506083764824661380242019714361319050883583188098046538115621573091385955785863233406046429521253586625357928157850036578973889488563378275413710964810047433519025716025674721507351429881798671998120836111807567951627644593453486652644088447280529250075647535415023239704882628262904767612004691150910269207371034853495881336673493032379043581190430136430805476443789415730555110134657545902219966391723072368520624258652494014892442530183163027343138100769063366567985018394976255221875688135617175202900810446976751727558698258632459280001475730645336341083954012062966157536953566073891672280386582173646682416899919598470375160627962845887779568942770921777185004795139845244007359039109270410188643384517865936663269850852025477494817569475279149368868166610935240166565204910871097538285016359678176047451576456957544920718873062865778549166899438023917434390151568138746108423631323078782810934178458577019757806445027437801022928431816855468530486523194121597913534224161479499514716824744326761674705429794934333258661809830818319594203324556440156249367314927263183375678996007890008110745537031142506079919809679634848823053432623551980043925293046214468067631670342570348758577333027169994867454600370634467566180926734146057266729712590900970275048740126905895211590574150456604088174806242882528406640770388279673738275939677262637716559845146764085428946831492100641532956322664237805690477458827795840994725522192776199280911073582251147150221628138438057140306514070220118331990336646187452670709007455121440839878881285899132363061324564111466713433941373504951523173076013619702180156340257694508216436750098891351984755337223227983764309635593797320472919271109681939421754012322081405809694918772562919303758078339358571697040744665059967015141072870722575657589064343847948835150481611027424178235084301332766274870121910403884078593505428790525234378347557356444479698738349485392688387191703172766212575221054813565111720369064269198144791436426121213843912543269928195250168872742978953191702342517434952961385974011845318633657319599989667004108605366006075988441741105772347413740279516148899666009634838449403666184284743873938541300714373489758943437462517636955124942073255162168871102790248972447725206801137449585829649921983325569942205817105684985305484718834745854052563148311015997041995656370562844370684919087932173258489129821923600147470421618076844154485161875280363668094786571249500925280614353693989723857677564776290882603026347312759435281646977181661863397427171297436466988529664524918784366131062355775794742446593214576591720224352858593434040812558160887178485751778419594651115909113821849078593940043677777407994997787598493746232945990690688533454889001714395941591184180317866971436478933011490441243732310206643694701684070988818251394285986167325166479071759000964224753431809403461262382442729341897601091674459416373317644811040492691704894872656113976510130757569136994548939603052272066607091239179150737369682351838861631282539158131560928617619523968776603888269262846180972532708663656174904513665005610442728340856183798665265016122833181407588140677847802184250605762338222846485975362448512034940163676894088874164086464843849457273547667153526964794763404946344176795837253316746065760443091623005747295359617343823118024428483125786519506570031602436484341973508896936386427859905871013580682951186008350922040012099834824712255390607849136865929129974595881506378782154529267217563585529606907098204336223544984356838185721649423624049304868777946672935990823308747021714657010519871940246125880865117719703543410724547593406686054430745900644377766091270227614806028035844712814557979508526866344210656762775604279476624284541813556866471245097471311700843110503607921275138091584765337633877991825951926027218949771068490311505659287542605830835929565354349660388509023389757072517742576289754788623724129812284873700225200610135455932299968165949560424989424471635793900815967912748033935667543906886077973489588402149966121693783226377791594069940560148067925095696291977578650542761280215957780461445287445527109984202964044963595326733663352881011482789615901878276148784177268860614985244812375290761019777773924597088364841008985699569674572261070663546990992361827143513474019662587939132183863529380440833671791759086949035277632330854524545124048250160616115393045361463585798456407070675849665838572958076625308644618737116326508655432686286477980261394443246398749368282102764321688152765172678795133499909176800998037308044656322404034156809255977039794750495862921421739845259290947193936796974464856883605454700094291125376860727463944011280266981761540045532316529260482302584355440949862368104358435490732353549556737731006080782028532698400202709994408563744596483103766800858783806892398801784629107475104797532341599241994982912036426259621053241792582639583264186690112055199591872677985457743879935185989636455120280169457880689766272486257820883933625549659088825597323507021039434410385940412080718206639621578181946251870499336879274444451083959324435754968121704715965828475034997010900099743162234685077629770693278393450665619833847406398699513869402975196737490105627659930322559716223402781435036159508200148835488850861526494378549687091947354766575163860384792317707675032212437933170114612283390763143851087070554288468609419833041285202516909087132653921251005924214982681174783965048101908181775907418713286953629803513114494172890727917842946349525275719198130024349352285645516594671176654407333212114153139879017594537897479475061531419611724382003394601822306359838782789034448196329956721398344504295129143781355164455915021563378274296134859882632218819632506223700237914639989019445901640285169548258415968251488540796016828659037173406756869075138050865981006309500852464008534701848345413713213835543531067026024879985954457265072517716297558822543518911373098766541399829556697786625454148507783357000676143304405805987372574441063973523052334045457490405482105497305978302279056732254106775439750728765810301298861127011713753034366861767943885929055030580314283733651329380788912433731407316378533163684991533354774436876052057361757754182330931099503495968816288952633596457205401048116068244866047131298996562580408496014097083055498968735121128752313832120497405315318498355428260494611490761676685564007265333947016196615171882004408591291854904574905480388712677544613125992494078500370317903505393787533890524259605265651341266577235541619927249052991915635022395904095353611571619528026244974903566438267789574668275928144588398483726932292784653469568189021585165620039231379242459446376822927139309174176382738361821982200177992715540086209758688075094351880091858735077621282913366747061511267252204859628925233592156316836612636699152895242663611421438529309841315939969433521646484033185919299178256252852816282008796432103771460330613098843439288342694521027918610191836063237768830434775099581551892805460360166893352454799862494491154408728213824132997053177230914481370842963891790559307348990785502300043823847137161213323998230940338580990892555824571832404613199882946780554625872940949599855483443043127303878952869963592472445845074757661970559658989791065686306984667692748194484662667231280408148271878629525776534995442492808694084927112098085463763306915079278758986359171503100072181251521556088042593251048006536535433483577267536689257982832366224324225531559697310238083217581736207578263216434840107149378794594145050775948863291368650030255588065433417287169503641612758301017026629990815112259403100110926542035154926554983586791025675365932531940756852744348967464853343755799793287561434344386098455345744529947329568609474828700633062320380171094275973463986848815008302980440967099483865701378568553174375196831913957643517442515746123554692468528843460346119337948307975961901523902466048258681954946620720010051957643699243546926524893925238345429425857896111694662677231148643045591322602893032342343187707536988504468075679321570044786836772046819590995607720585955730154341824792959380443469456927005220763291011940470361519554464712343398896846489602113269003848491679215877551340287493440278440485334381491848414248283042547177577840811374240751862779961230747479225531989544583825535018620344474383811255725290370642368032015267387656916053382997632498382532373282719860171381984966223368071851318361203885812899560011305051869901651849265966241666973468116055017033137451024640180941322323166558159250107868470077357543215920642467125361126328583567153667927937325818066048035422264822464079414724050333098137048179264787375804624138204049875737640200267196001308845239078499047489057381720519592694746727945104226380185518371751210520570984724744799409676818614686893543474125128137750497039785376415420493228443519829950832777850223824366481911519901802165315398341899883486826373280952752293623851628710499879998611010076637945202558390915118869546177318835061968329693423036621569390745931621800729882231037542524299481672574505540202865281438868017681126139035559966907398607109465220883400255126637921549081769735783265569613053218555721549607339162990918535651462550486094722336745984136124019620312244603661724810496012368133127618592030990168482622847827038498876838115434246435326619763227553708206354261669082834253278961394979469298991495014733986690447156304738744084091055097424258205701106894047466218050087669278661250995611290839941043909312482622895698499845223794659627753147258164220097719029543989731916887802869008161294816361812990975323372243423878305410818129469296555996045325859876830422463455152059955516838514615670952892637330792151820478450818759311490872782994191602690039195831525453723461263903077746157730073103143159395964185086715021778979592666867142875574176575281322814428835168867847683426103705795562833647853830883733374674561989090460721495037033458733697561995111789277440298993758784961726962874513650215393346932626611741637500961954390110431585266579909806503469106430470959619485394966881719588387358188905264588278720754802134204228374293078026818993797707062647113911543144590326041900438087974422557108555615782780432233714800236331492567137814169395269410604847880640684977278335181587932961500592170718936839951745448247797220869601889255761950505619663338552665216430196710317477960265822568885607743611420842052871043018773114632286011963275875398751202564292355412253491831073518972339596474799461225242274103783914657798588463434234823701733100723643639353946542417166995954752481292043400730515675010325050716534066850344281141764820482206239223868407681911485250053584740903065811938992145600541027934039495258081711088187143051459098339840696471303272428444772981424934547317515890159572584020296638787657192192039634839283754604833683170244630618636977877672320693845381609873784106426205341320425563265319573554118398035896946719447247795574085775930022473130680004164021480707454464968225732185913916665015402064590984385605049154927120215387945382489290490272123139728619754828024965959076464991570105556903298730617455944293041836046314743321000920775880424859286322085764479650966803710134773738416628696639035700130961280763114996443197881989160719120129407128312936927963613931837529811545144123926523296490604609115632861950154192810828378073585447370796291340527555172508430998538521185946020518160222967458138209805048894591903228343173995050980859810271541015671727319262093393299616698392732874377522760895020940360841734034725385662411695039328229258020464081562399761433431755732064842409379895318043881986014357300589698461050358541168108973321384048108523463261578795503131151783128946818110406612891551491883127073279024321780608623854883823006120732418836819285764147349130080004826375108092551731462557786759982525895299707567503800591533587793298648984978760700266270861309041750272292647231325736379900506711076439580308279136017072725638073765195832103305599472570714487984546402217193947754616612484266652158632590815660025854087115826580901889156310824634722602557218801304235640572186775740397821897671590213895192595166267544611811591259486985158743293800119693269076406796298520341305348347980508454716627561827568758455060360024792833873116090280376631273407299953297783776359309179786505612152552418686655642401530896224596392753682260983552249705361207155337600355441384348246442921234574815852548403690381981043026588786565405552033686203724625576137380694648768459937319826636162039221058707197971377033134457209654758980123999358903371851127406865991715195030097166720224338200900808225570138653396199786656048192507896464096252117920457806441966844488677131544855959901124807864667065839227294709150974875368497682999071904666683025359257526881853154427970905566757934386786014875025628538256307596197589487088696001332521013329783504490814045821544931321989148878542971335904468019869474383607116628092907530515241648333240751340977779153106767536085402297401623643638030830562933260709073124219907233243504545065267333638105584469717175770281930487728853345446892201059405246376986445226597902149272470184890377775904948816604928164663481912264100801362733605758462669942368449551127029218064003298072454019840934114340137717639006465085738771889739232378300916282278757893400909769129205969978091096669964964808646950559902750071632758146703298713501301004523337725183668009906090272690863476737568862659352069825810113101588219726481096369388520713774264121950788597549457536937086285752110309073832773477961301712144591263009281594961646599518351247341556825990813903417202577762663590354716535772439534625734644737697649045297420533493460477701041602208083249181366313460337592116082951694791670630627148216563908284856865157636277304086242720560881604109032502339066977291552800997145459115533034111309726509114102743454629873128526977406935009110486580084398920206874359403666713318683708255976858234470758287274751026637204712406094483424699616443010878908300536538916234489654465168954183653903516580927605479213987420548103730545329625540104746262789531535214075295599150021488668357839090278412122020928144200315823644306250777010005555719990545365817517214270596553030577794378550912517126051533059446007490159836505905731119254936359313749057851541207402902574590409670418854202053796855756227532379232476106962773789723623073639575405413438107082548863942641705981844603674198902314241876789226090666219532581011957018327519564018074631146053013578986157778084532883386359022989497198541568791084843639704636991907178262226789184045564903073398443800349219203434311200580603688496779190817319399194074173212956437710889132224500938215687434362920950738800374905259843154278172790932383203343933897949295039942125014286985131160850019545748500106276430111943656547765775246911756875887784639738125034082863657245565691023914196562699011920908926045645012631408481027767376848321588287086398305403270983929347365263191873179434287895608391540953124768279662088832666665984857275284862643166214488376000665702932024268514366696697468007533662485841910022205677984139780050798091614962935239750121102785033388653459427127718500266505351604797280261649276824878727374649877785249514923115256951443431379637760936116020157594844572112871167204468347890175116081767706195501376595037292030721058273705804338232835346880177163136291282660717341030054943140774405862246963622309206926021132997718602599678002757617187110990194923157369479351044730697270995103901983351796279394229964263487284688658945376714439616075190271760863476463220989452630537337529281987666410327923691402233430971353652095083801265970292602025221182832200273440763683325773033497318288678024732385926756414771875266906947818288353371702460932034675430722458964757820947610049487583514543008567565591773262977989289868445602944577871529993806767339387503490611422797792636906824007083232859658354060529933029690509476981733509474471351800503743793455957469188100432921664810104381835699447848082300860941636249738355628741001655927088082443734140504982859742260387633070879481094605768902079230070075681611767289603103940188725734433583349884009881921822360233251384853932904702244466839270958507102018142449526428582843567419477303719179515419863263452567726834350531288389268043253487929317674926201544701002267258298087424702012828608141548740388790622806092757887379812418863882746234876467315539279218582948584430114167143512477026849013634007808896338316799623210913965001148067950226656339354172471884487373217528279386418382298666626890120202632683470087917231725756068271539817833734220385145308818380677066951095851932378610635526161887077556482918737820506623921059271750950651505450392659349773875243122215045021581677660299646325361195147460695115877941751126124525449595877701474703532510227385179727060658503061953719134403442078489339161693755593374120273382131378164168736020170973034547038889264884472361574093361555040311452898436386172457977800290444565488020389061821921668803568810311689189928298769094661051376229046378894021811178214917156347666741673099434588078574211221200973781506330490367334169328013209108168306602828461997526118060639838423582638576791439181810830401377130069839338846268308723798025652191061189597177481964177755451676664691126806592829384729310572625434401812185228149082697592087991519382050891231837670753976952116706172984515630608955856842751347951239130077573196235263979248956967103209429067726829151540770439035792777316484593453396525479665636463376689201059069333362420394384874369949739549819783241280875875747780233524922825723269995363770209130301507596305336554959366258545175194766758182975329757172565572119419014410663144434197124612970259469211219619524220137771401776036229341739861428501518755063732133110574137579639304121686929464602876212336888841004745121532287085669449248520346074283495143736376502594642510141552936365294923533091302869455343653254444546835190467648398110651550015687630209736633499397134336842393333395281517535801049057995085028292244234558636307304682121388173086286873557532895535388913357935272708869649872944532787550633989433966477976380569850869221747654207302933131190715174461130465327947010960409573122923859168868498102222821788264315178735179371774503166145290625754921921653873339894912110727850280464457646243801189781164782960086546949167827333965612818911152499225208967559396927356678995644907093256837584636839192562189894797892580392343809214590502841376352064954115921670933142538167534317423546569915454196370873079051562930088603824484159975946739318909472684493892112328890470795932993004220829155020064218045284914466237797894672249006247636063815631166146252140056904011080847206953047068849504230844838166082201122074251614796440943145717054769222272536983442248728167815553094733425842972319400642394492304483871407680691525446051712355475893780989064955328825205881116465126619052824326148915687157795016281891826685909688777287343881103137590843899132195118568650375887184493555925821826451283466451267924575926664761381646439932393284418854734679245871227749091538712704941909720170198678343544084281696102009658368725947413296395391197906030805466431475003964406831545222798586446909259939183924602671681750350999253518515151240397457787931184385875182690239870727374069189251592871032566387568610768313496781641189359380746060945345248823507493884442672494931568503538639036766841038316666886584222843350543440057165176366167489274985013193741726625617984363653083027745406876501672109914964622933293364646403531846905569151682366872380743006640334602756897595881153456754664531419860001536209718579968690865338925567723448152011048879435543367760665527340234199146317900830634204483868380124772349388190762608970309938296726624798434685293170424586724930513820558211970805713623379532411121368643894924448312700949748491710481391901852807402700529298835899634747574481954154820138527570490826947356122573361038958382359397567932187190408802361281376311496713762928941303424306176305869994447757839974438913391430804423428590684149705248398197187485223310334463188958117758828108981605716628367256055448037580865607177773917024739502297718037474234390776774608859178431746379257720834150849640959114962938512499862534046881936098950872929265191638240763887770279928688242252530229021476693404031434535504779280146847877610616450146414018199003753327183121991579041343064018881742697643018211196958704245329493666315830897456189211560578396347795006468775694597763108188409591545322254739588043194249034418224236452907633967375037353149952326043853328700277306721881349725595781927589821182294974279896306184759284535676054242678384449746384521151570179582019507487627893695773500268476502329413232031080750333231813977854497670636027622826059736737246116526025702471564992625450932783786210730428421699579456608435983086640445768692121004728881293493375314568329687484394938937229184668636722928251857270309220904260176945390432683647649580462883768792588574021141250866746803436829877614365189615743277753786009756869320574974521609241400965367067408220855894883129346273126697542653065379988055953051989037060323292349628763975654269573254290889522980600305783154805189818609485559003907977355595876485047403529318698991970370989116509213147969860901053802758826894147481092913208508919609401382863156923597358656609672196144096551469622319839351820426539038354699193940988027200092185815020937114762736052199642307700668398941905488500639699677509994588508265561714041286276580243723264265174229414497007278266426185631080311505265210655521577351312320589155774077617396976009281967036060239473277285523634108397467416390336149032471527334599208437511899611879692218813198666674381171719273280743992718216800589924836246441859030525996448713337196907767118415630539663156759642496541221607912355053685704357188242139354890902279245594415907934037341404521424445621220371903569202458351092656855481111549238690170119093841367381889650773716295480961765787162128588602289773524027748562838204092631999089639155434026370793006878696676407154472645683871371539830868272974875279941837476955075591085987830846048925717399494181356288461568000599095548918028299507296945875434720224411483602898536230388287318024796614751242075382962253413474150649651888382837450668134151964782538091923729328556083850246146776539399774034745575543910194988126812536495685622426248691973657178194534951706397759496018388551058150822387447802650946835923610341569113878569148373432817502187866875382078167290776872681355776238980626823332894704802867802033146202460892471893897823702736156604976227272992992110661090081826741477658732528605581413033213227149240406004891695988040423752997819786533743794561090432077517089460125263362403960419384120614996722458365282055862853848313762256855599679062808339652584750833400212930600857853744363092799862354721985140122726251094605109055464310960653105614940942818391583320389769518078118415468510835232935697292228497197651885180316418989175204210412245104478474646206672269251645074683725843246666632761171779496306743503034902881275177290816322735153171374147918018347865284723308879602034323055627112098666251967565382225485030993437688970798115169566644925039546578968742859981652061227978420145507476586119095135406533198225090681784237242205182484817532287267806141111500611992097617442089481881058731922663429825455208670714861183296044741017442650057380900871647773381688529308130099255689430614128057905848140443185108420588906482138255118658938018634415514692119899022918203039160309581109891473277615315124811324460896245948082113641404146031905339821135361877910454613896005088198002856066906189008414579732342221956204742600455543080772504965941251329889920285420831068639102687689724392453617792111260172689315482904944846340816026708181198977269222964591133861009178027518938779712902972181255609787373499578128986535603674970777085609792550199880636206237035776250692442803211145144256386188857767870592137947669788034367448053942441461076726034332417137617160479543635541485866429691357739606757245566173682482463872086149742037180392046365247530192933655467277987120631353869885290155212818082821005873248620169686823783171776605520379777863992888297725729929974601052472617633928971774310051612488644121446387655875190109933985881618380123808919636919291656316492566266013901839000089719347114051500574741713769988778489970581659200821036313693773742043265391172284308940827707055774872799215203509211775312627922577448686505631928120944500128601588045080360288701694114081045003037747804875134320118960684468312760977743019105483611097012621299330529323053228782495830197417582479348701614849332100729732391367713187440138197309276386589512684060035450477009188651618112088359049691522618429228922030156579872645225231835885999920213908625005592678954429429645648610442439323169602277456837895465759860928708560255044015588924967168374408455332095742671591524543058053736624255056344214330877754589764012798969894742120300786916022012380251926084116966230696985246682440982900120202179056802208367051848895043777292301487477534548468493692607844756083230766964785066346266817632369796016556155949136012933143864675745006084105373603059537368824836451306453846982510048859618588342841156068585678372980320241839545990557383377302619239281384664633847366126701543300576068383416890454646242634803213357934425505561590375230670214687542986246341748989746391740768251047232578081163014413262862425090335746772523143088736238231941118372358740778570125117557806239360232109728854925487612780333670819888716219175835666900325618739762577356311470576417328996583464686228655819045671012379541356121524676754961317709544585589064307155533962148540262957615142559770145961107488425867286995930872017138760156000735924218847105343013853023401480110602226515947101662430256624787125869074396241388452185384560040586266231441132567096668912934755042537508776687811333738173703522958048652583903526348606934604087659573748894689098948441904429768826094499485482476120500543387089927221935303788507805065814837147481934869143985414790151296271355841696597611821614847576468966132361795237760445781823457322678917046477086175751497759518808529627991818827881364284960143491940499121822408164080178001663875148878774955677142800340563256820456681851403518689781854198714583987781187983167643596327608187314566939886907190468717109860478689246185956133695583133220748429951759477540427957585630034432370083438854565632821937960373573301077478893863643092104744822227831223303143044630355932528192165127587067645638374286857221262937489155731734232965812721542425161174925636069661196008196741541847052643675029023445983424570412071485801191443530250973791294915128580618302436200558156932048143575304080195532176352401790849391466867350733436711011598819305486155534565271743618142195334583260488614940759912904475794953285147694596418642633718729153441351062953459153780508890146031784350732537015069353987501665206171377745428148509762301278148013495786341101650601005938037118959599303366975686449705886046303706760636922583340240777488938136781973606457840057426838253117277372444156887003855202664957578926407895687978243998154475192907722282903058082900103843168024022479482544594668033474509468709162620396903790375634227537901296001614845295863755965842101457532787796504291184498911678560742319566314643941836733314374458128036862657942093763039531323099040974639341247466802076922588341994357276727436928489648268429622154743186464970472833972296534503687283635353400716344276455766444622354970952670058477684777317283222538893094399663734106466486873956400238969506546850012521372952342952608931818985051695840360149461515313855917517550640438730125451709402092431905292514162042267163686186337194604441609386893325011309764227391888948512958229542302765575349482145738591175384808881879482376758608408783719073560130674118179223045699356909557451464006109736591507968280581863198978593276536114827951889699308977521310301296746855314886483438387360923186379624998390540504537456287617115821204578180954559631272990557534142151150301387962899555253836965408157807212732498235100483537536339809132599141599255660611999449998714212203478420139635455598478987099440829209585532878415293952610602869025670992765862555329707562368569885634421884047241528868362841078098229839930478452633140553484355645628774119541272127736734476867046631741654203024256375722112492568465225448721240440459532536967960017736793786023502350964925484132205477901635067440026500802842842181239967316185503642804337593304621641673531182348190655799671888678065830897869404602521723755784909469710242467301423752986269027447254921232811766346120578220962552546664680074462768985013066838854846447118772882552434237375642873076230576696727661626696088129141233029729137852661029846924876167351939080720174738961774822428107971519639286801954556226531681367629579346441931126289063813962323741799882969242481271138809110496243850950532495131917632194421553083452207709103002498982475171814594708013191603248459879954989238717128516987768866256797708782900320699061268073742075829497591737801190181622149143000056417055144152314937160610797101695988819020727321659971524370324880967623527107778372390687284419383901513598573009746652730805657113351563302546159766233220832160453340787131105953331447236360835042972417846954211010497008160056893677990417649904787955927963441044452671247116586072499356151559498445770485991823425820311707526705233107398205872418950318186901642609871536881052291722033637718024905374064485563232225918976124400619234870725563802008189519507392076301805810022472020028694563824556310864151276229278481745918110008342193454878057453693637820015357611326218159159815930639672061140837462474744887498931568347956283947698152630056050084225697829627274266934950848310325532574591116753471167157862749554896324266457681594213388580200328491005890947778133904765129203803503214539025097308113784623545990658311164735168556976053901506002249472743267971875419196985575394423682823295138385229237190677227146481192106010620566938434736429791732954443011642763524501149443902638252232416231319532118740657999852672162914960612523437178978273925735148162567069279777016946235609696287766171176336211991154731035812910670215989501491708684869107159831597720224646468380478294171807578870753099004069942066554201915535173009369527476092385501954465245876007611352799198754087848901158390714295202922096616467657716829263232725177024078846784336670746505584709166470838984162869974208687098772052625838057159375670835964829350541855134458015060059398953788667549669357153214626856188424115262431504413000085255573490359363246889702730141416561790481027367136855378391451910159717725615279667437611798429610837467934013745214879678429188561024950118676199294163682476349758196647118956427850869708563876391796808051383187760823050654182017360558717972807470606259919952632176560998797407175427822011274045420483343268840381332061892538826295989096052236790021917589144125188363720499324864308482385822977707915223406927681304004882306098876316422862877061596917127643577269098143655725788898538849650310320673777293580834524773213657000265620752957782423324930601312470131772235841500670028031684492140967279359898803489584425851720928809769242513363570452302657762371480022780205508151455737402396336347334610268658208532484592424251281580482871586119031678345068611278992199606298969761947073679409583772042614235593690857123708205925669816129969719186377086055850037808749125322325856027231078538584528876102015813085666225812202965962754421726202981383338964821484205746666024353967469506498144275292316437833199855339009727558613600901965414644573707602423579158065390392348870983275786437412538531891414181771330194307468726900918519515547297509502461308292023081152619605900903659758127646893431427597332274103303122843213119529872476127407239584589998620861724360915732231806404893439264762496398582684292744002452120219167528280420355644011880996324725095778697732851693641002435743817641764868663958788928318934790414711196019188505326581457473679499893840768124963042387967100618060640427691144930853455162105619590412261335636494829060480873239621812351721813129403031830670546116184850128841529587913307009541121643941743995709717743676235587926658335270853235507539155837564105940605133162599876806789813193167014385357650871269661011583560691389868516889100380633746599056666223577228238234863364313443108459773078290278082439124597283726378162788391440504248743483276706217375967367106836721017843783848579845180688510762787127830989937082918405968840966104948986682112275901814513308140305637877484490811261420948769801809891132658481464074189606808786649285030210885459456199662280716004768322522483993493024253016587699184246423556687356960577644185012595403231134186101773588166485514997445035654397706272888889549881157869551136281899092605250066804369224334276869690216028989316579885769964425910509402264487183650980819427315917157820739375571795363175555420801864715249214944507078152158605487108594345097017982642256187159710114090635198476798834019294850408619179319748248848066559276794794690064596070055450596473148946023189687238396649940341374328063801249387821465239394738617345840721457978822073817088921845407818419694257636691164606261565897935332242417342171737682594741887744815310188964675877780594547789645719689134141098166694105827376723415191483426226142887111096099798946656330196899914184186798055379010717172032368352902354104597679926912879232102887025331041477328028264310670745706828248392038480449107005882862456957449808077239321708110482885183803086672753289429251432713545151166233608438633876561058942031316597876320874559493523241667687420831236732577432051331962946945828005623879358423663391796811980263040421287343960354494495506868930378605334924180103264783841693624115389078328418318394326819587065425936645186744679548732308940001951644719068869763924703765335249093441533118054000182148645501241438580630076200980398226139188654785035059106451197211458572913029446063527145092479514647270322277192654809409597990140227449684761840017529894938270978787829111541948058571982366023591779181590531206197650921211838942878961644364291132112012920163574518924419538635602846052147107526644724374932718628084103841421003832442955190156054228658890714996326443047621424343783789385678700435479410513371590121859762362765030603381210270695876941995308932090143065752752290120325893073709504760788467913843298700939674660630203074976116387091695496710289029735606945954582199243234784707223919397715514945803100999744080628415543310022796203459427788971574543979979959762441910095164100160507613124551908607962141192493203518758809423551926864943143814680667334006691651854642483990752051206794349581651859409181145460195073883256970555913405011783112927292248132196259135592513611941259949713077946810954910166499528539963327275973623006938705919918366374242170351739749601911566645054728717271996975244736343922958938256380643959554602194642716138460946227382713155847891080516932693604450916949746414369237104493032965922837575568368824044122429159002073397315256522374952795393454531512690945082985062603903949336651560409913664513927032676377949937486948248304072106202595288380019852107279482759955389349469028270105668183710480392367021790863121798002679592658890983163452647794733218448795144395666538104873350207714755867237264954180288145860620181475626043707433576413070400843248816831468217740995923268981980777499088022660684464509125903383866879027369737922750523075408216867423717763353447081073209787377427525747041722855898999313187632873698207899026681218410853400547073339696034339507985952155887746743353681871781376846849166564401692041432556193831121585492716831604074666938043194951690014291579979647707730019537459772771516513561500370691055243004649608897828551102544920341045732529362122653933627931308093209408580516381003838393123826801691468766570138719182838263233528185961888726210577399311649476012264793655871459888873799667309227974541625474836840351383334373399183899746410189092285808430183677334852316226169118586797904500871696617949568697056251941287051412709447474479534364829823789546121454556344923009478219458594324506171029189089885468873381088773857476967459245217307169118842225239697569304164576194592315913982093067230372236575302226035068230898948446600148413874553096134391413780231413288611078253996323779807137000896739855527234346635578999009332636883657125619632103971998456375749810413673361842287733628117753670040826200717763011133198499309672268214424352481459510348455221778133213270114868305485783623751192408608511713983681850810197317542516132885480898154239308285217371694500736601442806254651618186931519094648285609141504237034849707365856274598453431192895308471594297087112731615334071897417588340939622701250127550135794663555541161459399985763230302247886173604556356455512844569875430043357270836661742320987188916226881705867309868904428701266264885948704238303793084368724697677399500812775491515840018109136896614974136429761865538704242987044399912554169828360014268094736929161755325214716352826251928566449819090977441068048586041145019520896851964262183166711379182940781055033323435772346190315570578037501013578582022163159429662435280811720439048085888182558706487258752610321839571052663377612004866830906454202793130381620064159094982101399222580075649101093619135941335989194384308222721420935017946473644545520629660171581042086232813028178553450666497598921138482822411401316336390651859907500850237107841244062510836593624805001483031806981838373101393438496303158933944209885868831709405116016674019496049298301509178531795672692157877703985111421084198732077383395975177901741300397626709491384518632348284085865214162201662550035754449795218123019052957055652548918509570476026701051031737960993257832226948318675318046323466451345329261994054194154008226364436153751859588165990844269754848023712350405196886806465928300400538442134339979886202609155303437647648926912158379565864754016672266260837012175296472607123976954788341956776028940789832836534761470360283368463465449340556981905869355178668455437491708764350391611710324332830358069072572606359114801498523589339412056030270919798005593597509430977931176469591649715499922014522089440874010652219195633107198985302692767484728484911722351615148084567631360483847979093470697895746972076391552062089984001971384488218333457405693497467673341564335558423046715980526160319014678712188092478377805223568735918388376115585909238370215833684348551981100831798738907178576375246647181025592635228801982211100447879248917371259689787881109141971798070802301097768188462840618602084107998535385084472551754768991801930934246302023441498135124932349767495811950811594018635975085069537366571922305370037479057182852879151566587178753129015900370345317750512476849600461228154395763473307116145578380829822377842370313797562188861858369798555004204664519411715885875907076226701600602828674741849655534780545352575335055947111197714895436655183271913394067528351191616191954430562577017842293754499623388243079010048214445033978613791476629882377125919091358539823962055898183229093058671152695538630615678032992309854690708831457922999988024410191473424867991507189369432788829746215818021249039416390568252571174490681486097940689287675871394437714325236079685887975684005618676248755076073500555785145418751529421022772282345492160991565845760176365370232349903357625993488320208365174463333389238591658781004622591637551663934402501967771040424866380378269518881605628522647280456990291704653851250602091650182227549007626913785485759204906229927269392738587466945392660184683088041313226337648065806034915020382981467477454570404896841855291987991094568245668982534134035371900803683757934570168580062501780343503457006647070518575158613299401729924852286586199329054182425117693073168640680846870867044346023921565333058716211552103260240188659113766030346905993228800555237443342952349949884545159208485393499061967846157568084461661897193158509596634923219924970717577079095710451274222419675401511255548994942941323077046348591106409161511223410232150415809643785057302871107854843750956263636939208901316944342110775218059593902339247654433078887972585710367189747458246340336409121794872685257122649525236919407405661358496510254083765301789127492079741032056303243066959734850897521774346780935842060624183133407294834770054224553940360782326278753857520611575934185135192855727923122673624879963878245038314067357294931472593302759451661737709659619565941890575771637335142429158323010309087142558649399277170352184676850573310095160489745880088804089437455110789447563300687296827147314664831961613444147164668551515047117588298112112346237684588298461503229729141133566846713645893103148526642988207629043240223762409091378488016687346529995119400373120686149864478987718884231380794708962986837633443914643110722165790664101016793204413198642490194361627066239737654619849394280834518842568476372717162385921628833884239392970095287610255649086535918292763243201060810253748528175698662958990850576382077490766403299642649655487620378517095071967956819742751403446138043589440738133442147577436782329493743837929736512371870060356545130792818552698626482396330050487871357998202229676714124710867569474095955244782397604273956154234941827995140418346966464511777976857509520562533128788614331406133242734454186681511738850429002275846128329759678773285945312856124546350111708136177615839517322586504116773483620668576407766218635986592177824850455703566678152384461312405093990171113808882653354193183471066246303559494155920617913678036508589974103592024975026403467482455619436967153874815787551269183610939903208083532782172308377020420774709605288046042261838746685303506846554217345107952027616153045523684383871159194276153653963190138317802516042507043233871696208920001837626988519293527418059471277478624360045504919458687346454490692187014680400321029888843517021176553879157198422316092273853992447969649759263745927699390340540699666492311968384552870451775372546559979621555357139385255343516179558050632944289248806443811338790473610439415513667513043681728330028491314948427655531657140210973827642084984235081772422221003276259698723961606512797160262387225568035827791144020638465535661644377541555914168461915191371161258861749898842515909348913325122825613711697620738377752275424641602489287912340665823633371949846946754349574756833407361641387624248490030111231457663111608191700893069680743464879347601779464809938071603059322384454907369133094319086574816396562654429139512697412894723583271643158272060998195396067555636502795192468187586380704594354441335829108806437421704781599648046485057986485200675033420015213750923837534254895093306429889315689226136813170217348441081791731297289109245726688202934927228336726772924253941713675057435082074075175540305436838900786257768035865955479379449546299334748738688865230576303980543017572912774757142386015295359743909770685609591673087806136421554745699539777704855743698513496893801419714822194853641541726520467327177212765961312933480636345117917736361266199034277566808048695318314331632363037959842200505133847572284765385455886245448866401986394505974910679884980188609260334764495601246463719900520835121444003552707777891907932255610204935421820172356072440697032928489918558028666558012819404230781857490316472842838469302357369294178289382404014272396317172166100600695011989959847860694438136425744495173753087447740063782990433447358610205060148118888659405015727779822228176595108565823497556428647527168218140240891660785722046808240205732979048066743266784228809202113996425153468702335629886473624672414630008570332239894024452314863302594603139046846000354809692843321054106014302683342159937286159692464389807973446279423639930133668707820689080917794504397283442315329509306616078612442008274399305646735877621784067387853118914852971335224996422158769191047426829320977148226963435059384630831358550603813169257446174815858432502668352108482602684854957559601312927141239951987200379404734494465187289141756543092349311639749588618242940796401248502670805494146183459081835253248909956048351509049967672724263491109864106371574270623112079282185552911160242017037843881868873256113530825996292006217401479558307997272056030548042917538086795611772311302917774123135325075129340300938814846071154199786550989976317786797963555407260340293937139702940136629406556842420918401810920073022701535853179976302758541249287813844275683040411493999868311583576024093103045782786390584726826363379123213896798259145679565973392676674425657119767481475246849927287593306556952770195224795501328114708311640160052498802575826715501014280620351970034179109764100984357481250852752782760928226483591123604364713987478676517211662155070116882331837852570175929723084631189170045737516348764334510801776395493132356220469707663301371657253128678686359896082509446705915022302847564468639133472747949783118349077274125162222056876046583632612920601230955399054329568640149888925391225868933439464168719503179870993873873282926008667015024357828171731395924091735562362700065049268954457981353678370542355650515702004513060963600787363416353752201151569891219895871621822780933258019057757303579770962977300801509998404441842617555759840421730805169460169790836816728959604078554148664401166663210196680317892182154653766405025446895870518411287420394531590741072183925932928716740164597148820808196539250359798933242691185664607906888227466857774830972914784017000434029848469666801460996659877844440863876126150863943440580868498223084928112257381085760002600948687192405712904885947911909168066302918045807913600060663905023155176407879828202020943781204957455882117116480652383609381032258701167562399776889262325920410915899625978324851795481010602174415000696674309215589319575870710062873396493193466020168895836135291671299547571247000035399170219461165766981934010476455846924577891686461480031834232505164685819179354367554132345713594540070790753063708192077196368009856474360881279159521896571837779115023383139176563659167903000952015838626312079537881300101729616383240212939827978199426430759019645875610548949554434435368129457444040329235125224416517333288236684429465156973892848523207856970153304040423974387910204812033187022556597529177187854124394672437185087972528199289504265769346030382280631780676413023544005671654241147114944144072876849181067769799286825050827274824542886750069549420367674007111465896586113882954204201920545797825592422743043518895345652573678751029953466849845947795489313381901877481324873027384792837180159279465258910022090269134260215216975477805180103200198267002608559559354830668650315170407684864833647576977234932327826863144089407879803475161014547624115108417501324382259433562601888069870373818916876444772416082191914017961356651209324548120808171078620458637821788473129991638943720280813740064410545509559712099635626616883540566774887761269274785002291312548498099248318020525225951850734662064494428912344764732647344017526255692325279457673077420497176210769594282240731970356108883772937585299329935775192522224015088049710102810434368068034010689929995272468324452850187220793682015588351331257441948434085136412562516578781319122640554341587939247866397692884626420540138926764462818633840427124545602198564431256386196823227618776664132224060020638422798885999016527068550592732050594463460805535574988121252940155267469807102541172991788871438300132073288742051346425801471742855617726408628777715924997449080710561721576463979341591508212219573931497820754326073702640411382512538731053322742077118911895684361075361239133707085520333343070172704810913365411140423195824997068849844683808008823111756727951131203592660538800258288534898104317380123421441241710262699907869724664949711931502906675318795130908572527403913491516125168173420329728213652272531428476606211649813640671842160101309768303868086598172084786092644240565481613750505068010955228224122356209729213883427757019920731161806336233581361279774005946025464175163792162864973581560549704682520513730316436115185589744783134890888759376633843281968256708048627872097032644668470461560661117763464322817827440762798403099216313760729893537048843730690068418090761668240490904816614681397944248915030699990404952607497742673875910560559367398802793547309495340576374314546569710725481152821124190879192986407689098137256527043326636329582466393058829421970675386643306340417929530625654689986246253235044213525012539208675898971990735483056300388149852185663298311068752160604219789823565253780998162882141122744735030876656015034919984867012026818010493434056588928619431987565849218077690016100006084275844631559367518503302249125624484424264449563879596128844290756463616590507271737625786867848406784188913744794126342821355419171051401186685568894906687033223706768943629767638302401809638531586861543618468671036210113605857762536388524980913022184170826043914858202825319037318167342459467011496552872471721706681226379692700672667698204477471621663573210293147080419786614555826353071910592371064930498918200077468481822482735622813135547191760761238607870080340360671822166113829751214064114756040848064740490853296101511674287439131865618564589159958798973817936603449975265923315257632215283450025220461002364862631163440126858031000889842004782245354389715457677636147594955419439318406589244132414779750051086271115299150809201220011707069843320244758608388693664268029770196773504530504645536221595697744495710243844805679652429670822184179726612433588984551663424625572240644874010005882238141316864636928965270179010203919918575075560519157811292804633544747768809074806919667691602365551554978485374876124649278843586192025775646507591497503692986078941193712599157854480092122556034594434538405041536713265841288272070563461665812468641058163062674376832422361323136831839926266814147027133734650363953644632916656258519571405323005691335540494187883584523801810938812168550898604537923480786467393174733859003303648454522990122048638837783030219059244226325674537125063860584943817511155320573046956010366536627238093241624851466373942771482699773888426478779272293839275765291663780253915572935282492419738517482784631913321847849523638726067062769766930896008823724904599265707131660964502482967039040087855956822704046661221608512220821045106554476576054840362675720059432594862940240294912636380950013776464695378440248141666863743003950829715437210716000327542312937230961864576463102382577577703271422433505167428855427147447320944481433258656781073054562632509458328682929423750330539006594451431522183430717264111691656909565029420051249993967587160544421677800349692475888106361237100562851706196333872710005503724492389105304245249497368923886825921079070201802601364712497249998397920084213632658782598108531901667317309233426082817453431149109470476712423661560012802568167460433585837411444476206119774105084758645262628275953786489893928844646072820245701151706372276935642353059200585086779144939590051657787923602622659946770764716579183742024164816363469076304635377078272922985550642451734197338751469925133196303498308836189875109233031862183939827113815360109335560269675368102061087397687422935447432940009192892832747094160765266167628273366075184827504363641673348308889391218391280635166987085485424626730442194457993651921102004797339971861631647478386698867317393626336699275404509013271577235558106981155373282863645214842192808919113382575533017224731792941363051746201712403915537841887384710405391249479799405343212756899657730087949229600037968390535071353305208421451744157423815435484808314477566081907509412303988772894702253313848539087652741334674912825884096659079133439620239905329843014754289953526586322453111186284972607647368939883714033807399103467891947172175518920096120927514800609135500721741971062085018655508544585551231197207882845296642330552015863170617924840457609479503796225801539307199286267874549720390142099629279254895839529449206192383015095770430098346576082705171234137591933006970897792967560495569976671796981861961984675945441206357011065206990787046819521962073252479420585717876079274606161911923802495950957645140936247662716078856959830626716794095963127737900520576992169923902977188166211014065097316676838692596727548852737668903355005854262932669856107051626129161556577497674592187171352068292745239602904942266322361918668876879360599587433586589531375642855640449765367108387852077967519137461517930011781791901009750361842132033251892342421846338882730258341558854614036657239743957736225693730985199358822679842188544521420933798503412379580274773670550883120320487945719335165242568346141599429882717619680689861408415215798721472044139568535686159758698972602766206531386900535399239351596821321197587272744766327905874031241180445886334304890185174195917570206552298521112290296901216034505690671642973077318705509489267517928149012332468784691609612220524971707327611594604872735259444576503855717781117118630234739407618723532709070648722348822142662635236572585942654734324911584799127146873704934213327650053191068099646572285839288485642890659823578284103693292326359608709339471300911099986189136068937482125353925964605406613402342790169100084040276869619501460722722624986417780134446270782650405880521813174449390836458231450751590675669343285199757311104066688765169139299168411846551545725681430248673090527424247299243893188538973595961439157507781976709342351361551684838753493801892816842737073688629685850843289190361799075683943339618845752177753343441553994020291572406606514438784960050187822285635158105038886401845435771670898677526737480881121176211837814960255341454278226670006571485538120920266215836278689871861525021239884835880987073164409088539843905599875494640172668061299333981701996691703526366360969391210915147241986787423324262506438616505396624039034083793391605448946804615304051324318703763289013301201767015430004544001490062654108368501616589991416514113220368459101335985726519625253052594931774459812781751397918705185006732366950588716371044270123791998400809250394324910494852416981139396506517028303568162861295771809163764026477040747977784848507181062322318682256641986603058257734548485223332012806904246745237966300070674688504593531147303024565288435282511025120265618065639470003795820719958342797079943677504436922459747706907458630283389129493890035064105959801922089808627828005916527433557247622560372381461744097180685479747764091318833320320304331453352687739616156871179877365384572376022176996854430964874049569923609804076995783539788430042330662677389409195215336328066405066859756610439592829720980218398712136777653403793635046237109645431296627033145071764038799898253916803909913424080000217948804096077785336414739483287620376184246105414972200695455729278977117701608559991867171493653924990191112126236573154093513515184593939916010005437037722257086442671677764277026609131174847545108827873551877391900136456289353292709291392556631302066894122928748661703524183721398672058141524648591561856012432756975967007471685715554679261466208541197274419691991770603545763272506107069517934074449171070262357434882511705285414643623180586260891093184983946574542393057688821642863548612393695936736578963665161385690609909340546921115944448879231820897168686825701343200744873029425262611237915022573614690370689787629242786877804187036774921209461008564810672576971956922232037909197144764910601710059398399419269523933930840631538099070960186369583142827226290320357718326785183220103352508245773650147283033838981436891522785963042636254369744821091900797760034665442688693884985453061319774076983469541359372878734310111596802151113425051548338740103358744160969092513258193878086094722266830863979556613804994424628391603275045715978604862885613442928513186842201128132455806971418594351993064092991869462137467407348497689856146613698168269815404547132552564006406604698533650690219996140283233673280552115793311427281991512011877566756854595099412334655678886608770765720251129724512765908522840567868128990793444948844772356038666916171936489860308866370268199399767747403002912474419979952850783977424551933932197769381270283077372327706009164186532266790510690687285884517183380641853092343048557120784160052021135233563892797011397571775593059062720447806236522844558842202301435172456038788521823617518239979364548039753535610358775642259847136272124654529613372665206689163578338182693847911581635700864469116303677173601103464273190720084211727313550183368747534690814683895823193175853112848395432493728273726548857137879733220670328122714916555914794172867199319990975103970593993863158637088703006097557188847769898207543034364817690555891344541869041377018776739683911533109515732483816132957629568660381093412074388189419639194570410525874613986457335769585752442186430601782363423103914829401302794529459938486751677203694738910929722317048311581885117986991467470459837420643977388790144328005843411787724425902507702063495974432082938980397594675743590388166122946758690716070970995483100554300128120688842497227370632628302427897082366148310775361081344003468444994989886941535731158812982797820185698098593366936141971430767990616173464995372018879073299898436145574200614570018295529442159339612233042911440804216438203409822696022313675812435650022713505681869025192966765807785213250381099336022432063240753595210264256204240834111104138253384487709954376622667427949315105243478161222540631518510847068172070289902026334645841158136494856910408398802700197050594660560719835500593627632365495121346200098280751330480955268063439156475794568872856503993888775514507978272702459823311761362582081290768976221306906449585471711733533762274530180161987993883540674305640703361177500301250658869678038139288283168423942369659014106805611559533040726862169207212916207929601459195958075814914035873594444275320294399140681317148551720752882703166957797073885857755332943773909073784178725375447951620645015899725009419193545348435104609113755020917528846009911537695373337694326137993616442869655424465478760644689804312631717867995891994837949489391496976687780716262492942166424936364502025566450840555630484687197408492980104473428791593643708639000353559865323401160970136632487114855822234615203577414316119135788638628083249743396396611657357496129249440928033393462127892366518620336018305731743013883642249943897402680535829464390654822928051569074160214165200062130047073964983463622179321765304226333013748060256052970717311798054384282050983995925136711947983257068738537059029141943322426934342247775251747981345708998744440601397800437304010232006667763027194331738362598563592446372432189908297604356195741673087015210627940221205593205671961730771843168843184453657307361763213772204406951991036047652561504151946804607115441260122597256785271472907790336214432424517567507961923780252515629341957129338078188603718252565521285447909388879448721207176094488114146739430449330398291882819259375336532165329194080649110487511325878181270321276203737214526345440492908676950278527862154335124371677944819652754716394836383743087935504127294977330567948867776498623337475097422525338179746048358332733862292864960736190923298721929230299635220992220644346481784107625272494208521731607413711191705454214954847939050741769568787092833897534727665776793548243238204003721805842470955699029060252332161954973940394489610613489387337332034415807274734583259022863621446869762743211822226291564582124062991976262822629356831244440061949733138179507254049530361509323979823634740795310385998098671366691669061075473770968345573423301550300406352831012541530671767924041110707502551259577555025691888941199251529313035151549640276743421150533977165711505994837988610834516492940868101235333773369818556885257867546830962740170134340260777932848152458664544440514897833002625758471089903687033065989770008908182342305852268816528566485579823969389953537803626119577275358711991951549037856549989428929576976719011753206693019296449263986193375011266345539540606410440358775222381675016412385639262994697102289944085848706898224261274134083113856905912412457350512716982388342934126066828604704263016966390455705380527433025735018675491334638113861363787671881950139132386150867238705206871175868846358604051902469324348922767052027002041234872830146289475333688285407919370773707891125371911616934303492986494842464008287263313646255820547687997863784781202788071316511951706028149412758267878018382566757132852615586778637561890053074361380415191577984293700876760478846245272065547997757146953827363929830128032272133245053188852177665392847464288214802158060369616438618349920589739932317840170141039048597818416041110104573305438171964375617469510816787792172493783721448828509444394756604677337872505145774491216570272932526702418024150734675569107941872605152569109545307792158768767189433688031400088509340439709248017948970655261503938072266708616087077680574691891666698676645040087193363841107515138050098151045171366303690669566562476761513212937950362232081401846663129713467071492532145537778986315556687650441334562750280251538512839527185092280079468624956616613647686285341709388172753329705554963742255679690997235963409276549126177210278178840940230379237791973377498890559406561073878782324084627849239436504407893015174870069815852566800802091339765114211580842708829955756008796197453581138768442014822947758933424478138303718907570315326320572899459335645524297113886470126694486418628439135524632903808371185585686002274395549945764822863306369460325124787011880061538500970431269495976041399067258952281441865641901289522978097605415556489551326968885787456990709228711093826914841447051752975305261081458592136535759566436892675051631254460363245409472157416517162758879893953653395397826162354036891669335558437471049185412266675681381549062915443408026331073433840835293172883483071956483969994648691964848826153647752086297505156195864906504504977257265734219204064929575126275315090033691099640727202024700507972785254275480811945505971239275703875753676213205588176840856098980153782909207500290510684821351326263419539563602418498827104948241966122516336355494171805691043700083362904701183572274910450867223533308088930769720484083477202952114115374825100473458029369992741558100724847367046094602326573423977641334226458219745683138214054598060267909896222425742285469574625997205740873405237235677491208657806265629319317460214615174258132151668860503228695985390604374799228312918125589914935109101285108210504936948477851094409898513424266148282857027449242208257946769354546108931190693278439626223498103339625194125748851839978317343520801017091708978157432913675036804918163426742363594995944040341590525792128712977305589863920579575442668246889479115376702623145892529911459780053508959258761110202028001524308726864042310379422135066284269205553533573492503968946122998397756915906969968448062260307066277667322735269643732708969614344051419523067930896764307513205340061493035296243460735974514383599395298792286295693685870719751438422335741114893190629520769299579881532135183329037666248019110847901958445701860969029411699643361759252109584327964583145692125768729970181401917057779896236347655589096918577088644341630847953606598945944833166633411467260837851953027711141335257938949684990136962683143462694651048999689874886534291593037772294697362258372848867355122585252317689139146818503748654752801802400986473058323312984145582918954518887282052379169854413899237917918545046043454252905095878554059872471826325204800269455027456167225586246729184387430043331371083188308130714711877245435508335096082727859495216183574204971932458467522207608268918465658714041833921336399387882622810065956224769141840283794145896817924954259845767013719692620308719140007869112608639495001714460031460852590175123088897276587301255118642336808768329576143090295122924205919553114997864479265233275130589998786419761850056296118081784321772782371320782224195191968230562951960767775467718125487613149806504833394457171355657347542903371373916172473438176967827833893214555051693275675366998546816474960051289105661047713184709025449229599563784016997605690198300269940065867593049021627222236839744567943158998056665743376881196926377971604798649164297726365506514004969958107996541308859746950675784283741495823069802309860588004536392908019123309995336488520128619056343773888241350463185112736942674660948413699028664521671916473692570248085624559313616492392719912283646241914098019930463667954074790274320062177637517730953998714707028941144129011732434775195998438211460439820113615966899198254908795937857673735503125792194309501315385943833238809954770362037227620100108164932744631240484319507594398239283634180900576847231282969690301215795282288888898659860729558044229112724580314410726258898768135344024752954582105314745164370590479953827289863216932687543140074064400404259096181425422874211781892932461943713735386433095984780570642482556852377072046227524478429710424860399486369241196318763421987943886999212720692199543357995706375269824681145699059285716790472090091274687086377869574498227809014722352696806615717338633430745353384717754813242321879216108864164760697147982352109889876981531797925266773351701699229406462161103835273167054936280411228321662320583867318782231014581668700156202261402972830823502946810320702575165376231706451640621128842010853955400602288132509139966595566492328885375320892267416219841525169456395792766004442299484530230213871133375064496265783882798898433977959713441623261673860588969925408755644876722489085152018938922006209885904982894353701119461275288228905507860889945449857917304494336481064875458487259852801406923971042980588675579782779404359621256433531584482857070240621494168686854041331572206024005887408309653820246132716081094675303088708948615437845175623026370101068029399553734467251593227546219783797025487061463836080219899096049482415025559252054843049090481830024138081146108783547035045927919677183511099088718601727748358114711566255457584146335782783146641130172578393926831240877565107435098968210345990821425447634964546962064875267768491473223004019926029565552226350904477068028770770054514349546027388461544593374651006655450868185473333532430718422230418766918212148028799892618290638497590471447395461471016088542143499548142682476249099368423811527141048833548809460498304309598330167860963948040268695327424679380748207884181355543610238774485750060463786707520628545464417110635377977394669607208824318526047741654262240742447590379746258766418150131095495007034690953419480285235393966344666508566422230160835085072380541231249358083821229655138830354980423615553427465216957992730755238307038266124652576201463968227889246263164987964997653754930832472486512282282730248656928879668404668805962544729191035452376298090438854186436958422468620402687913522544398763542894483664253089041471636151570598577906984888065958821717144481523353927878070000308699870095819701405533592559544842500688695417273306441261045117032216282003839322593309714502158204515385054651124083511567215443080315746720655418248286088322475419272486373503323564830555289929645615833553291188914558544471661411422105599218472167166484379451242651944881015891656744158399381006773492663134458143591654211396752055577087667111364895466946419263112488172514126791660529498596099914901087444775234082659704713323258423168951329556428143337978762324655482796746596879768507082869720576785549059104164409144535635632559218798230935461594411457757443299516040329594068461699364339703140404046293518471567075929541005018172623189088288197558720496924403484836077473544245232579636622796695589921399302301316340861121000356894840191433465485026862403557857061328355691653850619565638888861685324497705479985182810677611121830564563980663518901810991635162843950460609699258581135245028437973879797406077485891633643985235714162379858315940969972839571842015671287575686462414477469031561589375652695564157249423606107343509199333805701633512937601361604040386859106775918358105968713377939421053537113055915360046474202660434141988243809038419324202957854545405877181960116429601840613753334750259144324816980094763665058319197049978178733586627018232071853921171651925224706291902290171466888507438559076511883363828717952930016440926646895003469235803243088085435024708195516500659417218370666574548696132000457635809740821516309284348640960592383461642287318946198028784724782919264203885243593390867580379745627773145339231184643322250672896142198062721725965368273864684568566212829680375113134706005111645366889897358949483053619510793717934211745288952033656986358924577005474205932164158818707183492162472355010701126222773364219871549732820068146634300946902449593939300172761664047988671118861941208757273060054738613710300818248657561826536119459270149278157020339373717375761163233128242980936825276164421469789035376659051102715063425735641501897582111060285219783549480016736738335928898266767159495152539623297055663134556939158758366477707897696066965515109527972301604844845406345067949302552523574531930716764302736972466835257999835442849077401733537206478925612566133001090839054717060263676003937115777873561492781108838918931576916936467558353628058926965121206645479059590027705069470726281764520985499824920080140426980340975925668500169437403843649223850550140608861396817066771110771215780490276519944145725016953684044360884980845114337536248093295213519020234349117645852003696673024531585446752003747064110964336273836399794840516894054937955923310579441333173632447210185444048648868848080561824436869285714492583381190868654454791694146950898687113328997554825048750746168442731391766420009466821193063715025966014008452567545526046599117307807677669915891552211002226911751890668291803840613598273299510912933475954474385568488246337812517722605474757431154578940905072530338107823099606562875824365669038504341265957557988068037877867597580073865013584977778732852580417574464116061529001449369560665393557454180037701277540064622671005652338572239496321513225629400043404245076420486641106450820339554413353210918273245767501676953516474854522471246346707608437008174681367455771378765048242611983901725090122377560777594070437329219286307394739257532141841166659141440933394250740102897705863097507602918269055006505066559055197196911057787030929859963075605562570239995043748409866467606178740462128248527178972074982146449841804930768269188297668309635730023766974187329187199579031959426224009792063467829884726762292029867634753892276571927790385966990435938509946321649519235831307231599886791079959383651620691108225094110400608891978749922267356355282449685081503331708311436842011826801642317034100996184524097581150546236230991530730665348258792720728310935226165762320738911165834544110358439381576965556756144195326789083474731131561165292324497992299713446757816911939560826834677558956909791359595613134029452466427917831219602039915493057134236520001813166221311255816840210379902579466903639228444670927118028888552068099786981031018425586391114210628708327374301889638479371805812533033040220441578970929799031529836705887672495469407384399462977966988685643727747100097479904588544081070854385492494871567985648701160843510690222794753321522364598065055438011631169686754682448492065404864206715763875546362735781959695964491872215608959465376544424212155475573671901809704879250760099243417248250563770809556497465902711103280808642727485832167411026054004282938825378088819688761572612981523068374787012760748175052430958159470584473686480634306777712363329922427066082872348555335073067873324578801504533709992106209808347472165098958235958048520139226493464876903598138707760948700372228001666953223847896577925519964059479499211366751486754224990506659615986784920816168736925207099897804256695473667982155069048222754965836965736990348184280182497178701609354467290575996447013173573233458188829227002707317340319669150792125564829694242452170370591917877015411807596497506961871901723580131654334308852020881346936197497651714327719987002423894643666015150106023014157130339921207424084855146577423764329398673179959461588059888128705964978574297239602810631268518629594390909441937881959105739194079389091977156613506335849773146613966443124038056813418853161114172208673644972533197126985739772702793920191415158599070943481591412534789762283457180869822668992569622712485994230237232168280075627943575724457925965106846096264517077527379362739090200023352241513957855412764943831436921133149156794577440369221368613722504439559277010214428919254279168074520708679185049054990622225145038779904120409291151842618675257063606493577910651530943446959504856680035343590186839737520526793948642795747162780397531703756710146172707101730321549119325262859573416653093123905267108998395900635278700498146541356222743282379893823518850555012553953030102335099598979180527571929203383836836676324155903446711053918649636098642349936008484139483939687044427022695414400129968513543930565761729964586971037913841183596332601461497056726382690220280058929443841264112030250376257843527741639862044758510054000364401252788060053344884443522873133634116226677412481578728687497413783641786862692307995001552357555798061883228962458488896501805195890926928806369837836216314708520445081365091955105615440868437202562840556163987288599654749752622825769779445508432345878894497351554670345884448706303639148551404449063857950096050674996568272797746360554846154013459720643040877041873304531920325251799574970603132788434649842353570016603189732219922663371819688080703488696172942928394609849467538079452265376816440024798892254570046893483329150510944114578180430907688847849483232693412711006138034534679461526456482992301819290221503435899420970867928543198450874860684512131476188172447346127747525789480124051004075479207874618046852470917794858026885295534551390317327427793867168087611834998632612309877126220550654135660944106482460140089907435137843154570810274705366451110863765523035226891258810141163649381736579940639886637102727650172982448828945041600611710198885113147900949038791479793607972661441503679125649610385413982243574831247223087364169704678927484003536685668242245942171533544934523455057682212905406741891429723627666943738274156837126703876167466840283660141456890331063778418875438133433444295405614686538295544843502580793380976520835273492385570999485576458557744930713886272481096702933285487409410232926854880379911391969433035743914803975028178856081466411657151493456299624892721407068486889788356062690668378226335889052829664271141531148762732567413113993137448787024521276120717864070708216613687333697413204289566904733226161308856859415314856176080688320769103153042154455742542245774174616436663526411736870938881729093158211079860507852770649130232172908461675809237609339976371110005213659838674976913139156706410969741404402031885880952012702866068825660890848028297522632376875045301602985852357643849735005433817452841978149562344139401064342163923238232249494062938737839625886248879027513893012471115765800474212758045463170382601519417452018078416186895728077569470450597447057454833193422707804687336389770724267879244312274557315262958444969516067827359196872175646256618232919773382246433587329936753936792015503393936569858855206955367251104757755023867598986047542104522384510605669219310237151696167974038803699693330662046242006946220293647064863546157288037366766652992597674095501235393351520004398798195880650679803908988850350256498884342695752372150821710679035499468280819646547355108090025024858605237229504243885821625960975071587708255027311480568001620791340297012575440340487280215713289502018454938020992374215608476476542824320946624215964003203437798189632473039252278931164224287220780694210944380110999903291254074505371351374278940023357691965833435634891234558498967010289606339955483867057412208273488442062883951788934478641023078778362146513897665901651858148636673952666905851169755672113036755629064450737013261369484412065605435642379152834151877305953221996900533609912573435978940183880019589164477076060359994328202344863351616875851255257029899892292280129319404095699775486033905992717287107945463836674601843684423281459668762429814864449639172076709097243139740052341712523699242213648335404911961681328097870833643787810931607916114754063772497513126602627974953328581376026488547733213266058303920578771632117842452228801450899353075064291690223264280591875377056202761301886671446915083416923934503262979642767334484988967299554951586590855306798932355514372394631847996207047304452452030031448083722807697399585820149758270723493055228739747395970849501243547147916498499978282721480504597638391630236131367404375072364525289289968202471488012301988347334246947059231185274442486247880348685938304080810104172824230534133913486143539404224281407835825591938881614504856833678218971114900993729643598129793713363080658304730293021718281633024230479411024808367478004885722287237062985873598622646032292268584220897406963158773810308590381523040047787579702294713169513711866648917757536819167208513076947136496228674339561921729474233742056868231439191048051498758692191634675715469214182279935303995231157225394328277460828225085732338480082843682382136021877076916217824534953593979383642751933464015159592499145632990432540130980648177178909388550451104491464997589252233460990002404838143248460106196569350987851019298957126604260445100214827879913548425300287886369942410707377656246166457187354619991135864949518601342199600149142162163106418507735773019346841319905371493061970597041942973863377935762444877628794831390940127687196861738343385922717973314202013273900265521566527121977735295806129386197280646889443221885151022883508853144088979534918913387850142805585866388050058753714446653656354211269924953102678916209485817152870898788029068264962148858604692111519260743039592752673795782221976152284852822417698051106734991637987229970102935473043011106347366566492202531021809520520621706281534272257837613005738359649935607035230676398307236042911369187688532035585840863949079807628879955033980126255826846930431215825631572947699447047530594171622969673377960910992982374869966243126657680960584614741728392201616323600347985455053212425718698223413013647652124430315748435487018624239209818141357800708443095997854411558641954973072889736789931699136473079428511057853250734970066416959532750591079511574963131313630899998666218714227901487494546887327077955542971175398322041991790137025199212092148046245231782760936576435217145150724773960082402372266810840012901163909549783181303561509660415946508977206846884425033784336660573750738232219310513716260722696767770302419616277316007254836336561367766683188759629252811184522719624829727869155889957811833768465606768382001096243223209438785085264276369583349596627130682277421176574947191068496311788060047926060636724548920517649259334543862284172228340321642590392991999514607258502850032266764306384440771385728134144190971689881585437298301016421799092539667382781131331097797414193984450973483785289457665083494099930500099867037894189191500770904369131171027519201308544880745044892673996823371161973037865960730681184367186314948971231079937103807639070810541985273869192588356972591003994098830071558206077799315027250040057965263766079270722973595451486013087381237489310159001061792547203262363345634165855530615059415480594721058983701023162942381847872384602062051582419360061683769021931335251908484588859223667909987055507577365983665715425818691835886522782132969064737294917904232267473554573715085366824034905690853027049146118593008206677344439947523839596405802836581045897675403805584592756160491250190341923688438798286046182395644955847415177290910337613827763057732929698579328794113707791534302736848172035443239554039426419165402155274635613671868378974267819746589543761840686721495979987791491750686119124993037879345509799127054775534985357129409371807076082389472618436778422007159994461099458276259980784379018953135792498119029332945943617429019577982004120900280377991743442316073877372070644071829516283599103231568242760666607638377965202404484432073647309920941094858225507422797348229253885167850586349173349923580464371509437489620135259452535075924965602951086624882652861424243389465389644849012515552690299150991636895513884261240930448831779315433716789186531482687140977556549329263726944933432321077343250018168172004467382070941066192424819486298999442603256737663302748143512846396286220133733246744600985884065757449019880548513444661728454514508314694600479394286417104989657191199800440447308725955380338482542176111509040696633941266778109892996352721903083542243438980929664673266440155379255799576431536662396710229689348868195023822136372319342626247923493053294535780564526547806160046181572832704858995889024328352518847051694714931800622418639149952608869503050273895330992116540092321004057983188491807115372459082988044004299630866071561270090690000605563030607135798473878763032337470472055046326111133740797815547292237675385273622118444760408470298237099896030213133415970682339716919410922598729760954993676034015549584169819400425050930798288454328946542867391044108109692390409158529620254134408923533428225497774762100764669104891546936953559390629426740830787975770292813450474730957472573961986401755463561343454387094607682767286191771197869117897981489308149787728195543239245207450671227442010686056126117788402736993838237718488826083952140457798837588618091620478357402790571773415861814678681920356631516154379637496583737617965628106851066271055234141276443666922798681556870112223731012819322920476317795552272500921773009388953206663457254305613833853009710377690727310086671946343838771577434904204850989687820567765446194905082582467894312475427666456113457754066851025877596401342416148308276990636316826329088354049559948667872334434235208358938451785621305920305028901809719433048734822416776239991082817376204707600474009335986672109045141998306806143276511937316441883625570696005711146507625065265308016299602788247325655190878661616995338897594835021656885830237026597175003670041432101743947829882913436950655193570393578248268232084423858283640240550698185043862427460063349219801391302377604719464688610971786474650105190340641887073557623069271300981448105584548623103051778546909872317865280723347994293973180319415881491529215359571241218524869397113350453412609652480975727363627047441602796308182669111822300833986787651191831757144097051704975223123422395892720488869998211257123886246145739220137228425217202678751519810875460768206990324454960889995143675504036457193772602400871486144081143615819127004801175279598349896603921416000294999225259403129378555198674109296075483918316517362922556560089093148511320685850872502541091235424473150530074131351622916348644896591283702935529647642778818143681147360279162457874390119770910655706953974967068651110159313757517272530189566580030223473572483721302876054268266100763533451544734248248347509662031641984802522776190881930386942462176143418955222897457271340165858161247077258817000643882633413621607837794492863417135752676400760149488247244407164162730595900449025855091930482931239143352377240217463388824135947955337712787519643095884527077269019717121178792588805513427916926749370536966403705848810164228703307122696001022614613751462826780789531091767873614298601464237909674530740988595491419810300907441027713074600529371451139626822291321047673393204733046426695282515908187693193471134065571967036487300031160176187924932239400071754520660302466149191549054142303675439911962768256990977526480466372385058276674389648782444787002295990434042910176541283685729151550365298000663929370583548058396632257235021023201099692397962621627933701640601989726008428164031796586609869001529598712247639697275935259161225805420866907540761951558169124609185848945758225950289496691345939607467629351692305057693249764748132104890148989767931202847539131848763105977565615833762554702593861203130513581202560209262260163006780701497319712524797505402956939526475472103605600477735960085521655816966157535640636023234321695913858778324294315820588153320657896812828634301011064310789193305830882812017586317412411542084836699305044418968627202940218664947917540013806098288750540182351643561831524761711658740495851255250215355463642897150614284875937700566696545796640998852007868344954396034769217907499051840410182042363581979826800679984882333767515751033298331653136581935160824245421234764956442517049248201200256917483049260003624296642228273010441069509705667072310386338557767173329273965016835181913338195508979852551546924942885847282464745530086914678270455695755716531302140225492136113865889611034609799321521270562372158694485335259468283512171092066557370884382345315346638167917345053526979548517716819048469763821969805604635698475817158178364258304427318157070515291462881905055506959523568608191871292231019616460830292359391253336090679584977158395927775210176595859902997551839138976558621508917084622324183834790478887075374907144534064385082798619086410474586174555465952074282339812977162212420812971169093310381900065312229323473710259461074538005283297947749420267949954814547244184326705708529526152612100990172251916299920554344885951782230446984981263421992382826963400877156366055734442836151691507165403399496203495625661702579016821336243059624283028622695138375296337795613929653321893493645708846709670243550819551586691900885423706355094628018083201330928435358967139842153986701891658876577803278853481923250921289826267630244025472403084411091858562834654093255897539891879562761970204652518257109899524215074182928526315868147196658047360878481309893341699411037076615182783954805320696744657622148231316560110042711901761923282382578245133783501254192964317165055341814330515321586157475735782963903710468418593761186195342255430351942646902352934933474163812167254375195783896703369954310905133492551029996245461390560916391350296287820502428502500995061393072956506931771785691905362561633813692327471240387945009242268479968855489982734901637335276020901399819152665983128018004704591799169425421711088872247974529999190494911901262893591308927762266929160321508574642228146200936251256976140790454639569004135112018251099696506152762269932002597437727741938066063997170786946713750875943371858529817152781538957731284814090206781477598159940653516860489680933881214303769234747875337036180717532802017472440240291282922521557040391341052238911669072886343780217488531132575425461420938142960821599172533418722896278587592371844794506080135659654259092536646074194203501842230401605461643079906771518923633193683650984248210691336380483972977297379045731596061246500599000717647883262361615042387623431862987471630552260938361451587661130265332221602141587787057713978859056825462400913016387899859461043841752306037063442920250725346592810887195713322856149165719983244566300658145666970518194516633969339746666215384651949672428084236172347967739157210024734971332142822325569796103013931947077395369611925687158010886583047707763624313733740893770586824957541742574589691909688210408803762894326286748973599562660644482036935283273532681736425186374558359231330497061437245900559046323865199740393407006242025604388381861349421007731933207822775485429708903113951817684398987241157899446125080342078376195296615442653249325349042998785589506086105519241439579431853036647763615706459373132805323092931091479862482249427270290271729469180357701468458257423398186702247357398766342884814815253859314295702120165468414582587865638679899158774768429618752180989387439229867395520375821234630687783863473713265807169590805773461769616405473104306093256392060055266989511992135719805904633844539213390212516658177640625504873284964293021151133690764987499333121382177518981129502443040577823747866920082425863519536078729206710566259411247884181172459658917222093006546359940234937084272926765405803872061559476596497473189291871044976722349886608817242518291422484884988201796901038162828134606734779008170770694121649548520231780771501801395016220342630319087105731542368457559551139011680067081913053604148327888330997807573699927132336676383543012974213575000167162425841223359103320761329169623234508423933729658151980827382039072081898810817972405034397767183298472993906745095082721756406423356422532099640707135625014134370278212694500755924940165372914986531282347823199469722799089433978963413976806658418825586875631520730822367887410316572999409402272323630998461006980073929157154208455633611219706749125126210077940284001147262615894587276424944907465690635891586153725953393254749764513152200804643078767383731667103703755361427762704673398339498256289947689762472181045945518975313423725698890959619368138879642474732463917935493514041594749146476326974467117099543699056248713119808259750754048740580855871068727709350459539215526773229103884398288194225340760745343967264658364306870047094493639971643550302646127000116876854526785467259860586179073228168731008454760552153543318423868699400031338741106650083125235467864613805006393431651982955642020986253945058600364918791729683648396770028367679998194055244589367516615070202812763102288089769819112026179206693650687393397564932709271363615225967989980599082583440950749152152721841499439044996511587265261914620466980688833768680216442278018950946382517929515483624282442602913920737172548900461679822189193643418569461532553478015335372219618810872649980989341401731640735048138134439385397916950601275508180982057119416428249044355930257953302314772147552458772860058621449375333222124605978299162582256774421776741329101921621307946800330901248432781335892747976979479042455926321548402452449652925087784857017658727817204069333886109787441373458103907019595074446825849268240955031005941991369812741339601143620870901050606878052210448909122497226668867943138198345714325541924855064423877319911364256140797443239991476793845777715178096096633888323157658810620905082598427414513507789267223767047072140486496228654430677607435922019193954256213400835820701675412427659935417080103147251192267055916038899604188147708196089429154165524950691518032688237406960055299629228943122265766628534846033971406459328958484822518244010231710213938965300134044553345828069450422532993296362195076349263669367397741075922105961867115590776090863185806787201824023708687777394192106730592027231870422996285755046505192873366759739021099376445154398629433354928056627888075906570176379263244707676551015579113795990286392993523422052359865046925687673987704995413782303911885827550482618053293961028280430168065014867346459505696111074068575681004261211381171010289727353923689892672964663589134563013936965102665751335348981770118949569820564838404857909382015851178711724176405095998964538549427867040890906552451799815772253801983513949383766792057247853301977853814153735540453629380428644978430441480788718557802256496745931483917475044659190024730180378606543381085220314894586467305014099111397975454410556737380235742511964923684322169534609753399400499360186773645375928938475381720239027569554812606817197746393921450861311971821469410746178899218741054269545613761978078677866358995054700285831813870132355425363195178567390333716887811871435863637383078742554909816966850275224420481162588824188694447200156764708177261281868073676762798935659658340662535031953716479795828322314554850998976882381625779781472142407685723716638701724864814148366738856380058300964413398284494897397500152309989813576710950940821952924125187212889451215234755798947740691881662970668848874169609153054482992162619577006039179413145491771193879288872705821066625015356933068001275973673478207390881821316614571604905681519641796969075661388971287667806014902052877729549091111501834378291797606972499163827875359793567712170331197618575427151075248232715142666477509972655757029766267119860526722532898567908471530330019468546015077766437104282453467632052323172743126291815813525492949063866116307828984479031798109969500492094905019664968739214194713521180841479319096760153289249565416336219673934472624408148985964214767213295586302558701133582794831073810815920741445403635179804107305163913851209342649939372472482842164089983522596640337492272100942046307714882650541022113938317263433920927686189056029911809543848202602052068753268599301769438395147620424036317875045425868441268029557302191656694544558431324782783797324668136644152061377022411422616474169883709364587662395724819786605136801272967609323117537435441156141922875789286092340590971406892339760638407181588377571111329427227596340028201782774667055444005716255477084839670052339540487742961428026486196196199005334213780387546620173380893030813713386113268574445800265916659596513199093173473852999449648354157807912804313751526506535838048563945810133841218294218991941677879957094819687102692606930002735397112764020349522507175986244603962521166503066057370430905378346715926845905831966154024864455129909020940802096859442204108328149416627304560761327211704175901905038961692619862431158807960832201076975964171477253350282040541004930404412485597276515517531095026033472305442992150318214387572580118247511658416341097750498539225946669950743269276620137652880572999741125621105264788064372835906857230309138326250670954650009587476027350379359409014234361437334011292039285412337605411149088033835311403274171441223744560127507660070618753833726584686697476425657123108782046719662321771157652693869277302506803236278429556444933707980369886739583182655677664929141104746383299276648494227278762104495778588592567107643150051165287036444655866318821674533254100972912971959726652641943992248486288745564018762213562585386260693711131849471303884503091534949707438186522901550933344321992869425960865194265654838278877064577629478264207479229838908483166742425843490795714540732250100259661371377051598678688811601923302932479069709135311175816756951413048065832729675279845487717654987761229197647914276632791017733650930832689658376598324558285952020704246295887084328072784247716981260159196183676620040035025939893058638335759706633363500744920016820912931318903206408209809312445387728188731759204440881580983672362578342063971879837855827576858667927942182606121848646164746789684971801596880783994061786120439583965444570046183711826646802871792979660198067604989705014890716304406023504816900475736498390533935695251338719257323047041623598468575412504841520049173123693881393964541381251817474457956276240136522738767261757345145038133410223924043185885572833904226099656144372122213218712211158065984321462858914849933467488684102227582562288814416287242530306361722337529658200974978904789910633757819829102282128325858301981176700428115078881311551255143920438056792017581220440422573633900700286290823792865418030510872746733988417377415099827489968688860437690034833875099304185622065856166884615862732329451961843834400961857656302489459377097712734510433240185641370432319892333163664318711008323187973353657552767883002616198530981562526475084210098822367090099788153206080377230361727343118637539153796461130603399028942586044478352662188659901177263484647501493041888996995377639180097637089492142797948555164558500130504675310744931037295563538879906165146466225661367115322196554107594464972857190296054092485900264635315407798582136489559278978381380040148662903901500537424087915270869580441787926054643451555294971901890490654614699783172614022564466911919090381753854817583398965789071075388363215130821476845347716491759215451506446643031563203209736533304584191665508787291300701961230769179998471081935125087114336171087616366123681371622635070684275960838112014258935165852729698158672492033005156779854542100598301348394071263359915418579992622646445760099704670995543264361619354319580225109396979363037610731878139201017015574511291896379649288221857213349671440056283301109130789231022423248031923233450768105264576797580307869805309090828703545835270924994044125935156893186942501709050983851768943635221359640871759903596767923757957273140240517422081937713463535789903537695590437578169834359366028745630233237441838006147872628151455333418321225527688601820111327482814433271172229997268498341798355650306016492763298071770043428249385851011870118697628414542525790987108059809792792310319882200307592276133351076720314361632988427326240338357218756802893105043722682818497777355599826824305097197181048844591491266538359368974682354427138723560937932011417336994741016610825204156874995800959054496616668597165833915522286801299766768617417178488577392875422916072441245170696675619937569666815600020979515009968008014496837747692851915490777909646386685849086095642334060544823678875225645397072229793919139812112862206399848653734986640393605708346400785408569074811401220556186250115033268839404541503662637215451888471585230122688375311577683614660930181965911264471440293559623286274724835658137118915243029561549813308156339918768769701907301138921459220511609378488510265082303615069188328399343898249964019219616693027375445740937742351560108138967741660068988418607195398886489150875193722374984682393719381508371395128509640289799509219492535317358522844846463012169134097649738400919797709566717281286486603594565524073728968708556940845031515132494240445561765221151531018217874246065307975962165048933839796414952172280068326455339756930314155954007132144510152630020299368130314000097233485600341452145006923723597230871324597667635828135789649998362817116108477166031584154927647196364020858601141737744374500141101267657175552758353967778682484445731339828289009050896708612768536460494345554081163751916020577560696183108336522069972396273094381407853457726482795823706973787485527380720869886560892791722078771706863150086593197714909298146880011983073743118702082019214266155979512496846907930665021046803862109427296810637334142995660127379436037942472652125678023327962241455541154341378153911751588998880770797677765258417905228705301444268198463403001050772864136180317338599887294070907894133757198767145500178078421974929804864793309025473329665683603866608113922429845459699377202491291404406833689031351256963900570751174634992247417009278859437430344198515552594113413902063636585158313405788744508169596899624361611046525930132556880612668930997629468259325136004433636407887501421418225971010197439666789602883339685567152978356001410569175349872140186743033543885937059663149320043008656771487922624773002309804239514599123147694671995724693184529411891799234169930784384805998172470476141171672325186393977212201636211462243128623883075311987803464936649973595144797478329077927738066676864489319444650487414828589347121562635484265719710968331432735857233685914130055921995882426082469437136721266556581752018917288172726035467681299593799843795838036134072607683686038464218213507219771445464601259981281257054220384989707556992288486377972727217598984175350632445879462996497342191411750711961076874972936419801436959406202252685566694459744317782274624476624590441108912838454696100685819257529999649063203232610376018684446534048904017326069137190094336536318547960829834438013217356703924107459598720502162338611595083709578698779625590751376367070883634478373488768854046273866542437448383705406399752008061783474116035158303906620465170311856844893667665984639257779047805418803789085547824762396420683949807677297926473766901115255451472456006519513882136230599147703032141790018272373959558339112943850248458234904503701517164493292102127197290712749266743355451864749992722980209853315527713858413186716785559733349187475960657448536475454924713162520377471735200049046868355180625587621068770660000183141127934748298243728235926958527109949202135025638028215108059295372226004381922998774394154811805622510702476968102456935610488446058077478379305206802383549185275597252319883110213626564120542677479037605191861715171167036611669563130672803305959373115338236169360063214117677861434678137558612706485196009432799863116089447973139525490769478959602634898916248512119227876086784509686290839774314845716460258477931267667167454683061663330129119789402281806208367803332508872522185854939915042900697368704712316466750164047061385878511557871744689203481629310294831683384939277393341016842233590561961150437677693943846588729603365738195119841048040876871967980391771754068228193239077556376043873068550038961534257674040229521198727111251253082502442525332932227650521083924646522551055208033058182737561345566575100558135095520754443874235280218355342472472331825030858763140297294258797786934915130469052680222611913319669178169350686766355915749554271768535241927521365973342242069808818954171799494724906524749225489524461083750671194492210155154873703371998873295228979320964061447362462273651179983416581935401928113371266157676577651644648366056775296469780772207455670780615281100300073829492707202475748895966484362009719409237451760569329364778607340957828998297833985247020351111449996157657274654432930419484879906820247275446992270714503884880085910536339098697877021748464355463342266095198725603496273231945202011690166602746949924431863739928775520669006501809199190587452954803544373275719601782210696313071243034020102917281534104652074764437790071877188317748077141937728405376140439499478941975065955808456349108142715828121797685514018313167282308540454768819761995859185368380498232280752678792095412513382931044508797378465831355326563438383672481846166092870731170998772309144420429157061567714711890303813046799548907654111701077417023508426855114429675532288289589677739856847949896720423351819370652890757632979662160008239280836159881765852963493141564241006615002430898895953746988270750417104222632177880518680984248811588936194942461461671018822016351828482454570934875188746119327264543271262760993571629550490092715108626585708803355437730874585284835047141047618746161670633525914535031421057746453290415061983279580922832007672686764895188383759397211440884999134057005353729505619735032138644863437579281686105776228017564693771650974633022079890410881053322821468261238209003986810326397292937478473080714115699816718995401625212604218541546558769745526969712641235415748519878234030080332939626783477345950839480650071448375712972353688060348617700982917190859465180316030969244148783769694314666271088054667718514775331041031346693424538019819876409125093479957459670877754252586918761641354427025314263278938365973693417641605258804682677118142345030807523990965284751898398254653991358434176082362650354226389365977272025755188777889546096145966250584486125985503220899036449315821900195718670039389693012825634659647023210431375971147788982093671623165941251246936286543574983605133007233267670470383082392331164146033499641189445535861830274890616350611345733582336705159265434173735985797975114124173069776677677530519745031140124237723413332565948068040853651461667325933518923687425435565744801559601517201512144383016052513712146630644777310374109165407086859552483138791077239234694818904632021380156877305089798810811919039447240379401036357280004622511598452762386576802908091983413535062642950459315775200736980340919232214976909456257745506672986387325833454954646973983607553170888581687397351574624775462876577019416930051972977773050846658812531601323101399947374203683471442761969932299731553498644517424565411839317097151233662982080744199336766730590286315843565553093470060216558098976066716645814738485008201962034838275223523693144229328876137472231930770301081190134567398862125489673024119016507474685611001701411804543634593058639090875713835348605707522336807687166499711344049124204138534870261829805710545943249128458989237489360578175709003404892516048002433061164413567165939039087372023114608987474983926252753658690327465388802122556879992814744338182756706863663469327832393486591648919870682002881173437312817942068127123051860539563705783079081974034497596196122112299370856601052797781076519938389726187350579020246593573786298404164497700112245429962570281870575908687109725215649737122499825623615383727940895151170370114002966205468122929862885282891722115747338083228561003521785479335865435769124725601233277101610674453038808502617277475109119088146521973575368220876138467600938214205767850716376549373778193108473589244025300886691900082801240778886716194617547502235279560887668945341089964707587099791343426258967544174403222203510971464327748053205954992031118942056735602346824112900792767332369470507567333281490855751257604618334412666459229081805012273504162727078897352291145225990767511025613425511449424139453325724066274890449247965858588854996320409804143412327857100973027386963089538086097815840423550801814178253805248464027117183375833568232212609237947312789210916908441168587784343139402881172732357535088398193627852881681129192356095926287534699892633251009552485096695560834600254499097456662936489673121579239686875066286867696090086398583727694426493414700832872331275062366299195192625330940814292394463670243106563760318975549632550769150990006148898827084219639516087664042780166323179730005863093492042435349640438904217155486644307658643047504358130290097197786047662997380881024474150716522520130038423000519819775592320683433983175209102516570014891942779520040247477551906223845592625013759419265454404141618050359683013533979321876225731880620100367918709750478688337419121430643215844030772358160365241272682687554552277398675678602685843860901142968976456250933723623455906674465545573561199821777404121880405793145928812141618207594495724747218591667597281250014520572372680967810432877844128662577454371618762141930888391123934661104648625110638785674191283801341736148386494047943390684609364969017627769327975084048781747002983018593287031395125824072071065563023183094276042874095388888084520669958277071863317365625514745962415435162261807767700590694404286851474992470607324361708907112483999705582164825035142632361379624013434347594299319496061546690616747418277246741071541177392192055589441162004479517197427315998444576215939312671852689718982087582032620149111423224017617989532254525056906917495631574562048314074864733121059151102568129653728569017331766043965980570011426582498143060986477468166186542247680731809555774870860495959889855393557010215342777529651367797861721180498279370212842998039551922844114338946923247987395908307136462327245732942241866077037877316569399297488747736932809921445585538956750433659219914867355206511410729716875309872367498626889631472870632077547757325688759139218830185125121811412763762160575457854438174103821668553619255565182796365013139518821375050737832004780619092879760788301745616030310058090374562105616131738121760057885615311288386714889509243606565208153073083264094576299112662140800207429094681160575347901721502648695366071393316077366722829968920648473204621798272539557341200725839621344860928899831106054041996410986099165976363778226508032632492571853331931410641895098151200544163256832770981868080294371294201206146186558480980611968946744124399877601041177654847516917915270645105900777893930097572287085811890919072442369312621884661165678275206537065195602808267018982355066979539655689382695417751696893736765617166196307201650169115986845793529826626239029872544676272752725605380781151105617508048450385410630446999347148212870803763714889053867168228510621622577994215661167991294230250895249236174905280698039564003188926141979514819232998398894419030883324870815770578699168709078637707280799290833343855309741595078357742148000651162774811706012365583815279898186930971598378666357273199823988010000267428191345258737271017430584345147154598537866691421976842306238300523635474188015991951088361888070416213079353797809110806408481900499808012452381579958699805145084352175320461019610908515921526990739115050964457132129955525685504476282809672312716737739240402177719652776852771505392487208442178620825823297519479978095246403981524790373857219885337763846881134629925036456986166735358542822209450996665067563302992468865908917558557779901033100663890418218058287983025862298136954514717489884520764364819010231127410632771645201848450950150289464704029482274678029961268270558235298796785192698107858780644955131820465174034045733308681893473411467431171892059639970415646381774186212326174475146978039973295846340698566045335198582468114323701854816792599327023036444805200950922644370420440626047621632644583106150981878676518917613658542957513320246635483091356119890010653602716307496481276978366895130559860661623516306109987062416768990266181604169986446156774095385575099174947387421466188624063563729923659519453783020651849360342574634531758537400422270248897629205523736595691726997113865420699883145923204313596782096036469567481180652149232764202069218583105189649983651570247084041904658373077241195702843337453708271749307342725132510348194460054555224555850615713001496818352327796071978123783697060083284162445603761659629912120789808146204417195536594817268231694224549536121097284737301247346225336129477242485888634422202718033307230392400969162736379828775368691048629445835302276189130466151667742670082916934087194232155737874064714905169924795054110972651632830882405571311994303257750264628580409162439572325619833090356730910704185508976369049879158884182811831387668238499679338135568459497057459734007562663078277140776428246622257249067834631210530031278117046012359434128168684445155776453413625395607038734128261362850954192894927118006255421425509117938502904711585432748396507988690918267634322991806030292105042589862528514529118136731550848582037697072867015562821165509724366155478302034117263264390824285466734499310225509123975028121846840658840781494106939393073802623830030732109395434547062485626369540619115563438963523893731827372026849273437281187840052003106190543765431363783282769027852130706871347210574598821671158613367270214798902900544199656279889576025619139049599344615525044341189779283128931219904479408260324030188997901070030367362592028154868396261720875448072461961123986646197203380385766485108024575741634820829555454447740789556546638128226197307958345788464098343152480919625999166799873256653056741454544209088023827011799074856115204681166486933303569005313968554205115797566670076581496102059764879108308216116206369358154141241630988190023203597426415862322952632845116662797978253391632470376308454280105598799528922790970939666106153435648119487829569457905676123518324753146417928958131066962250638387254125211185495078261342518489778994025781229162361962475249755724831724191065850783662285372378374894694038302998427408199614642608916500323323206536927463696350491965663085942614915748487046992710066622372657454492417768101663558754414100660540811536588098327259409499709533665332729827335511180143973884554929049225451220506122108869138796272594707388533395818252443360117666206863811757193836739829954458099983803478403154222226343196224571557605992407616544390806405530004969087767776455424178863548541405957307370998226414318709323656787272152995297531965519899804667936513368591182870894363672046211344652811020393875226409627673651323742890934022919883543716014515189953400785514204676768321438801065802342886721630980427181884629592689721333171902083354408559878659177084699706541086802431292469075304989991201665743752041173215320024840649335666080197202063526701094899776252275558592158875838224796291455508752824760501027529997365004222400002831646821067295316272184832561992995802492903848723941129412333593015606214658317942527393184055040333334231669136586019112278862020193975435263009769373045330396045531425626979674029403417633300100022734005194481168590766650442076498033074066168364201141165667417870564910511060998535616217306461914382183475663248271219301954088424866447598756736183712067160817736420587281650041310672518618074362177545220210913438333468739506314202032108421776133424438544419250429140299065448692401413711473207108039916555270229960638805200920115158795372391662459379211527122118813772121946259187316076535961163707848732408891295788935001987468079887889624285083961959969027562337993018635264258054194470519316333295993030999027611572921689201961921489540971901482481201082337732711726800361477277495357871093216446690016361950433010827758608027264205635221340887784228779399695526034256871970313746011279146922606885774082418662916363345162537247547840507790384004466685032369316641904274040934484077895679795953730855222677244456353667748494281609812167509679552012396171394083238869054206905377850350120851387078500894192393260479848758354522142851584689663992246812540402469236352826510118373517716445633390925710923974752856889611297161606657558582634102168769758515524509994041159939992235317134615422001457905621539562439708683837468947672786407429359902948691601034320520187274504285509568728513638200915735155780450557408659818353190170402766477860634203287058867496216876505804606971361928596798034743778606794992000775185131055032431686746547123870930523253073779677789392528761502348746648329870058656442122489829505111825732956584351355488548515692637776230442267844120787447363175601195013613627067729176107241393543384594841806039268437890706205607671086232905699174106113035171009344128579700372604552333803670472409611444408681334652743166774470836003340797202536292549688307486553224912447862401580397898080197070105937785825575361644729048623052883274595218695470876457696764499998879944436576666487489312965359318489238095642086742867622466986744437422526597270322242976904688407388005021183289040784717930403195823843629033114297843569135262028047117415882849498148555079510797120852016900863419825812962223372395178467185378838199889041944517252682809641761127716912673840333201424494279799324557657973735107658824274658325066049731211681939665778281120332076429795562303976717349774783876273688221189702086965872873856313048570056254593033230077489185040772767089180675725862092804222943528127696668526421306952926264970297748828805649074237963548212470168685740744106816909552554124196211191408139266618129240097646876064816826877657326296119020068771870590946907525184093971473797471565591722491869438809090930016062515127088022228447737431434801723399286643700062380084445497348644090108814513716140465862069067332458233590370556547775965444629285657396287305710039129063037089209513747622006947416025956934030718066070531622031760318188381427569937231725763595806044618293390330121970109621140897347694099892025788063553574386769831656715090104033622122685566451824262887389801661326958260766735857516915366770148081570436016134049902222941172816830842666857653401809593031363118481934408928712485633516804670547069276829630874310964612338725279347253013326239122295172654662969811097402886504337951054912293851667912621549180095186663141706931340174947383150482826518922808824335867113498831650048013808535279883964471345178172602133478599744736046679480142434122216990175401406430710353708512898191136376978119640189447597284017134797245596971810186199542562346485087725430806400469842598869162235929757359235819234822695916192467904105533634245985468749739930664668872728798092795063899802225359335361623739788655766303549853048122303273955176293874141816861106242884256600477965458372855105850781633805847170866395357325987716074960028481659787359226729020970299253422202517786593280393912374106945955729430456989775357397891062566315734026824481858482053837929383219368823752454453557380542899492417717236952412575262225487039264838423674723581769623159811682092218376568818725370826241495899902788175234791336560733332834700706574688484019625054756275791462336366084815532597346828310989352478241485318012801828083645418197766494815135533646293879366829092810780237123937766948070134770397141467465719010442422025530979242991633159863298988953582282746376118909413198806905209154644155128739326115416901934945122354060390190473104645382882395668834453082783628139353935806505537159228216556301625693323427217760199547029806429618650804740395386110636239701480045015207022310372403265241067399688107916479192617792743670112551008125307221273843115695455428662711653429831066818330940136456560982896841996707012740330660447326569980658215826359930987614504341314600119902761951075172000570997867837866988050530100185043238390565869206373845643355466679870543853492749750525674157128122748660311007206798782261249813088266760581740340085167927524534697219635403217411582584897711263104853823880574180405670034657913007013599628578062811860056350161746495136454204936214601201621119206760016393147289748684360939166492170638773835692499202085214005205278605040848951285477825253744483960500949085801228262906536836986753183839031001269932194787930926406025810508695335861222250453770642403867089723908401492623978436469706644852740520364313880075077129608395723658981835380200795208950725298037470910328563988824206486037996823217328393736957990933427577125529441455662895120287066529820375077581224583323091422876774069670057160823583453257092057881710661725419824202108421738091319786484984417532286695043537249176090993984273314933247162475128835481814064531605093263178206807799353644551704443647413584227332727702994296929620459434395450217113668723539090223012805698589346888305750024549704892836834749470927996540184300829724807621097201382789841918951846538307409682625120728137410188565907392627644343648060526168544407831915119770078611464434382420766339149633055652274395228091385329456515085113279694650057457045147565671276984178637378664675248533049268728771936457393232641663716509752104174440544134432307555873816390610966257236039859775055633123937780162429857467911430242375685411945843885468010446350522610714240435116548369277980456683498763280243734781768087716475437542723119628665041165433842203122239350459666060485028780805740963919361201850920535830528918468979644804452987546321711667338239052518140130447537904761818081561280873964983690277387139650261719894322887935201627335365163065850984480140845503266810522991852746674242143705832975698091344569640386528616862504264755020935756930801901919835566683595366718844791844013155764708025235329829574758125277438365380692247565377890165484620730800180767152841660676683892068311011659119672523402083515409081265685011992990385203054156733673846196268356710729664674482553138957848237751094195188048872799645699688333159319704280191563644327566187028396693313857029133709182830839547807700875433707095181759297083203186663557888920161966937997214362093345985522479312456287412845831285345722798686527596941518770046919690260679530482834265329636745036238123490912656482615053605527722785248128033981998487308525181505521395615152684044482703441503242920745510571662027148762633632314061169142291103795758651794641136234010808305913752947142095178340939366172737007811091785927687658667713465018146141242504590859553827230181301928198634712237598075309372617654947804103811757576829622340937183428641585105209090607464640250838138922820559383190619261097671534303472106034115883573128174637785032221172024424603776666718996002717365973939599290789923598718361768761419229002517861799591718279995721074272771866410113954518893524390134327416625768886296806801717562914464830374998687612351339113999078412180461750204878511512882545337405411146751045197444281512318377395016612986274146253462838084601375329867760661711305633239098238124933099162845399394709573796926185017530066103144255922772425496034363360346275638242858483441691549326610105322817837676286940482996078355436993754769139913214865858154956070176945354317620882457445871314871330370557236189936476666098276262314696938891747219471068292469872794491941465935173314380072600751288890442043917531964807368811430301167276151729844560009031740945971130829030657662634374873576347987241736480488184406517652485018591364003867020298044433927149872067018532672227988620328464690461657558905476016292525883177763535753994663227523126566802212822499247422348749460466457155598356599990970362064563169421274851644867464215647825946704014037201571068453115249289751718858084639984088749420774597998633862510396492895145495096726850804298185360397505605623134198908376974018260157975025367199870798359493202965887559361756670162727954861719493456955688191895445776128247818997164910264126089719357659620755464257290335686516588641615319163372528578648140674315488021708009972594607533067337970567933979990287887106108544040576117290930317264444899255551745732806150584143387918541870521312314235989206053001121062530814282563868012481433373819048168789317208831364421928615351022734298476047426211695014033924168815637209966596123642828733519707995677555178747140157987871403499679701485006936743768497956127864479425511796879924472171649384569252153638949078816861442519386539596402125140532676056391434653233990393822950113127478396620018890104979148143261406979866908204402982559603392952864949990322849641981358052301030817172619379469705106444280042187516553470617740344590365504500032128624885925589342612337251635112909391399173366405913610193867155326613983203954679468950414770499108029412741512453308572061369220508208371025939450021336605158693707874835217504155686122349971345237597992576823081839562386777553099976716187919871440972452499500086586782819941949889525189190030325223539688389781202717944422741372636427466419855053627685381907866915283136203145861133195143986749606660643868889734982927235208006185721860390522278401456896993654829974552172146809498905549859625929273724206988138948003565353335790920090160960595375671017933865347937625619598754382821153620280736502859874267752366038520453095882924056816507312644692285397925529901738977640993866913250110234998356836040972360397881130871479040634537722023694659861458110969625937456315978813064071996949879713557775516335751842016651551830845321939169428284633125409797916744803746963126801404457873470155738009502186200173873127247631874329010885301549104685803455641686510242356931269462075947230486173302620384949414778566462083370402932066445942540574353602863498492894288284467960361855602776651335773369688572036602972351387384046234448930425034738428296173936916554690493562723449182357862644400386047768914523031586879498740494867089192787805069874343450845092216747949759074820305063897007454489424407783160477999286295884224707087582788859631219120554274267632718563900893078678136066721883486504823160187366637953738625270280025697962737022627096033906586271017391978552811736422403321479522073599122118862246926244096139045061229097051052532801697378769046888440455402147707473075399432864073902498672315285856340898599223774423604625581460313315103379541733831353248250963913798192267727537813082175386530409903417001800495713000355646512944303123283713666065759779169514944078745624455111103021720458003126087799923204718783132139436560288313440510314128415970437671721854595710004936140770756993776936975848993335479361254542120491913539402651473390201902930976986196193510443381267260198756182312451839537396667549949913696126959423086854613812705434239087416042459532933564080512782999959120628659481221555440506444074417671541455783819099861100382070262866411301278003097431936490359357427186211633898713961416116702909815358902423759875249551210053219374141809933865723511830566009282532338067176192594112464029975518400651012930134182865440118879094697115717697045002673184672222407227391944199732365429786223033594023120906841222592250299639656583672439966091664700656107962043986166198839241292272035031552367977468608154348788671617901890271744346315876463820193887437123787757989727997387743642334202002567883865090741002232529283200163395788406307819078015733974342833025489805586866727003778335706301237000423892175892557329493447720290226061669210958465656705245455253541954147688632903150784124326742658786425639805621459650608743358794628391801590532191243510584446161337631238082764222620446437992514613383379839288644565656248083881583548948200598690683670205351322470342829065685796595034985752795803585350200995684771026073028561552520731545665264196313825968353904708481337021845567023425443227956134769845120407903254017091435794785515273807911552405591322524367583529739356063883701939155565519585961998859296500622027378255037613770478252318724994611393398265314823619438437089823819962113515396273469500407265243541975845971944839099250009036012195367513439238148339526972063856402789136270378104919087492807934881302491424646541279608866684492324749133063662355463296527494609396640590695462054564067451233284191377282521038310741110278936344988921987372238447524313898756679518225019331118353018176194732544220485355824945458371749816836389806636688565021764866705652539216411692663503279189582590130936355382760436976727495200114267262383603395170306678040424062220802170596777362805940749843477568372265396051986213362782352874612918598275398765560367455881367347075796789013883067899227670140430803380068022979220491219184949119927963606028981274403249206372987653445313156105590472836178673407764846971361093434944812363272437906290847511536748874157348349960539516402959664767960221586590154238004439455578104796176834753886865813657565934868807459134903809802371556150181521342227770401875271437522064895200594760282599859785399851687373574877920610926051185703126395782367209098425111660262497187638554729941323767294127880695524013192835787385817228415361374089339289470584627368639928677710018200177861591668551252744379507462093405568844456906944399148132375244477586518888489635732626175579734749144551931094428575242199760602334439514993173673091396479341230610108281428816452750347017580457600120167942003076860328132827074443806281993069565323625689391176217131375529303504204871098755620251906250823755026070578457960734671508726019719654558442926330685331106576466378415968163107375241727256904140666382185610594651999576443000166636609930058813909740433787875682200363946857232623447828003083670065630702623418640682743646664871033479418600014429508161582255279686867429027657981145079302876671750288647183066135557165700522259398291738893902897881146715308859195047135255882644231611378677353072724164816768600806942428030814682232163563561428235865577458624810147658829505473301121776172888137352680965365265475753122068905687077947816857003837568620695104347841831830566141815009158334489059622914354052943456684532095367917187485993154129519779969819012686857419493185670356172301298465079084595607241291072065421871342099315523087815040221259761037320307449269843772721333848269508471171980259505261693808136059160918579643182217983574111778073726546295612727253489815635348091789723721849636948310304255669759900347386812586378284941628229209048725470165101161649899722847008077925150201733184208651961836026919382833173560821753270373166466758911169072651705034503147791469906374482562619224501753760967459724319199783072938195127078071598852307421616646193912058092748245456526346006369196415533701362223871758476646228185216619229902259873024608133793209420571731710110527686261145952515037173370715871213879632096197012298578178653579198910583945492173605059106141962927450183144261869613086203251866067133214296140171654397337928028876009847131509634373538342590371374719011885799268745689392916027682853433564058860429139065824303233157239835588560117050364905212106081804565925430058103849756578175280750846881535758196570470991765131433646770657872990134596121159012612225244311562990612841958560288994438710190052973544729589647115782775955272858764084455147508723709476959111866489181146188839444275482012572085197192782483654245423607981751601199416544886621646334514157946887988571426000448862901536883419078035326485991932265137747230845991377802188315918266719128907482686891448192727206851950411893126181053112643711988933011614474865110759914694882449217878012688145292129124200189160052504885599987290980579853700607424948149057625357474509474532533034025046791651538793712604829458358840744024508751856933561591998907347471847001606488844426513704391274526900461801311936679803581191110286953079821584255313058171568513147570301479668139872238630918613152812438296612066987982849269051100882712965597207908565997109520329792462417230206239270023313168018539182084066725954914099897976718330850374061418890780186028993709888455022520015203666083314403256037248982375286477677677359258141836918761475826494217443711590287009717087736953504294411758932175704740421955958331422544679546953742471936691017109180329558935923960950924882871775447576655164354416533688425504905858335343986208786729529831000536060835118678859247314237390191851408299560876852651805654421026474087964034604602664151334385433128532533305796844592812163136254080309128693203889298637447931800913618432299681425970451176463471209237846752806190997707914446977495285134240469151149528347162362135145441196159303247063676154381369135417215270534354974306325588404071157427864439296205589833073729119476656078426729404232245497495441766110341562223003255130809109126962641475029845407768788692277952708227880144739488821893515949596498369691406493168889774903906097390590097053643416847424196585339426827359354620108389577642653297003064513799938810610595908750828885566386559932063208295721059766454891630959841351180274982589482830614982896466836209175307227139283321023214949138640340226966494831657167119883549699491227326749571286437164125715763710541768356715813875818878306703343676485238897860912852555264330554252881369403061398305790625278048668444117584725260046837273889490499913303335785105535044769371337467089942783145907428543099255650361055125716188566636764673985169780880754419066060628827871474514992556761402736554320664405403355136017712916538162409152209755260595347773885211529757211555623325980558692824242215742925820558306291781560592177954426586887165068670239097303901489974145065338373429647731191202658551693083733337446017038213485553229128389549284696828077879892699748182562424594535376886367619085250942457312975613415841628027604114243945624707769405848307500069598432451368220750824648859113253514606298369399612748678267788381266036933124501690438601278199016902689973743117120360895838377821605760488813082098731901959053371096183014440819057386828946706034485552486720816525010788758150668325395989503717661714885135748298965518666532366645898133682438563692194026641401172179628187488065899307687537679768803941553275730560440885627917934672910369645128398011148303680862998884054359502513966662159276366308521233016572241678899464398876474247158408902112935078609553395831467800046392503966105221503122508343982250122296317892202901073419646975364134179365566121595613336820377583252626172491275349877979817334982936087315345124275492499519574593439394707195866105600897780041803573932086908486563182168378302787873776088799195288144966530446271611058840925681257000279304346457615059731503484940244645671646474616320264652205973363240547809757275672718902512007989255868093936706465777107381947200429442702289911986610084207288201140753674397789925695074482999401415387010687767686848548248067816852475169375564376316490059555192954120051265000385000793753493054730891685326047675193218181760420443232725590645225296690481939242115142565655897625240352124346352923647316014850266052285297443249564177476377263216426458493675434913193647214880691411978649695357819253954870006381253180795277395825998661601374422470968764744698336664566892420013415941509083415128714405126127935872323360039896475451699221150879313317344809114736198554155686424523695484847575622692884080833928477964476362518635762449013356260756560095810742940694142632045647285803977943461091657299625122562852370797980066595437251163182172389370898095637627349924304262609589244887967485997845837427356654650518846410782426314547043663549075650662814288251731724250070760005296380915597587850949718194097738119811718654228323168838773295478648587126487801867608586916734607586632597421129626261582599389999423453615878130927741346165925693825492837149769147964403987879069196808351113028089272117425525597953476163789480823745392976247005012831834565533030546083945489467171978360478758559577573027162839333603775577222973937649768795025077610255571099350353841292377108501827177732616175705006712976747704927100176627236998229849871670637610300778129944726479960087531417176534290048769896172605762990505093331281066837703528849365151355679191870226508666536450161069551438004893206291959922900796921043500323375173842393303635163763174448429257334134593609345432397402189641464761642076946311703390087581378701661374064634195717467568687463379571624482920839642315550000144535780367543081356958691512787729399114125271083498807666603299722211388026702348176533877911921462810513038592159220066226773113296337061506171866701604374629450536813750683250945058793647829228359838181945101328339046347483824902644373162755102044981578017499752943970289000967696402036319138732963353178746148578094090443592341058691572703022917629673297754613829977692817911973109427056559217132083254474758885159980565640168467186471897312187608848427192961465486698488440524032239388581748750375954042158008157602080236584402665758651693363139020330383580464070378258279705148742244665747167284267511404033281048960644342986626158248820145089412654481892951313064390887485766556747486228068749026258697131270927472032286747036517799037368147355294646148281125364999787102268144042144037428945947444263257349470904825199305929439632576492574191509652393359669307729068864737739756863379248246866612489541829582014029308845931650629110809591839858947283009311289157659537678901101284799593170457831421933287001685543041745825746681296683960390852269225472836522555602506148344229044139351041983483202285065291241024513276553573883501492236020604072284833636240048391409024467017525846890938268163683238862998254072768176465385830458079124738704794112938285652758239924607673751041123996638497706473729277676672253542131208511815399974416701627964030946517245502614784555895195129609372208874505193519454979682025035932036165485724773573094901807425605453309608531426433419552075378132834427720167858469107378341999759772474096816761847863327079707946649657067052268936325761211762262251613683399421273637405890225605973242273408060529068971896703692238717949449784599829730144137588800861477325814647252521375820089747795016662510289746340754152281509957726498901163954321657268690595388996851019177709410518439826693531626622878271942758121676606794706028667032759843087247303507432994217348100198688798414590343535042108781575191751520147539694578997421314538593894416646574657674820307676144650480713036372052544503844056899248170816222870084028383755835766445317479342280631549351342686188409452040063870151836258248411176504508110547012477239028502894024920828051141626753299707613169637252561937654230260026230605237619510614035923546100011322218519654379130503020970749630042259141840907665843842749392975934299166732715418188425334887972828324348977763614473520603426964471314713582185506510929873231768164018710761900312157486668283592499257399786111015395268149987487503051923667094706002205440684654506362096590492439458054732569705678186880187004931375400766566141469786947348036350867963779839569272989178988496734170275269443211435994518436422056564505730247490105006077550713197705185276486707377117271870230030333328815969149153782554086832543924608052310422326402491161205696793732516405954550082803365490393296334345257378656486282444340536367962954992225527619577506342488218713804045520561610291262029178691163108762419673768795711262653642978349956194039557427542299945265979106569706023061379612699079688817937929563440210599899095883318410121322818225413848305582029649453047076067445635769523714871392915140663386679695345379484611505621282097086249876860812537163790904539935257616174458930907651661591530610443154044421645712616551482953435384381559378734990345863821016575284504099051499580474148684535527438877779440663409290568299877658840667599069212382832536473266325115208140672875201202161539919303700833673939999268285958015121650188270716370020333760086890072906463868506707708483958727840445039501376587490495537915835175851082694960565719454451902151852750559512126439317934710480863512126593575542738517908285557785364612222027456199943133803776056645815640103917612856100531567740814791057050037847404641644015573424425275145885628363370903897392427813334320824949152643332128739682767285483176161455495061627735669362109403953528308141432031594916088324709105097709284171098527365053784448613302957106057315076759302277201258089527429602205844345937868264332979686410188491026897161425816112942114072867702311809215229077415690769544219601053521294570667686677406348808479553274109465273996673023707119179950968505600069045799683131570298311910353795609961957942898698950206162728573053534951397046400383876081012785432889073871199759686290581376487127797141649730258075599958808374468553468867405706239488379045446315261559499951250152229531774665949213758114190030608985634694667651335369368184096337910584433890873523043897912239516452012729820391988589637460797247613883945501153233468727269693367121687224449479621269510339582134662272335282817171450894302128859812218777630378603695340825270328354642755754540526502099848526060871682523292589063319418892843021583916464112685997991903757444056785117217511328880943451368907761974889894039990217365387673434973975615260612151832400090751838207931202300792036526788932021894535121778444327991145823033692223879035472362756994428995857726160940520249662755401446220964378469816932225827820080227101959677634887094113243361578182398555219783342920413456382854996204913465707039463189880048397777493649857404530385117534510378342134801780412501285322348849149477845365738511815556207841304773493011318085299581386291445214616803911610183432988018534673735804981133801520506480008379381026326344605183490388775343821600826200345969952896228508258471631232906008992264129142687358987122177968105493182076546095821704998167666060159838029923607368607638584473643231056866807867182627462287100994399214655283061873342055574003044286868895346695579980119297886731500719399157272002553757811334633226070519152931284208092344153306179760065530692441577748893729616918840586901575859291044657634871729442667519845868809766637157714841890309805842839257258268656794500848420297606007842819386790443816804682821434031804118176583205217363074970264454312692886371551882837509872863591462172763148937060284561013806824144566774119585324339847265157612652776318543234853013219445725092216861644534878547554481020339472946684706411256020776279005947468865560112740783046543292458855801757774305784250737467289933732923764457516036599576237480540711428880282013399057269561828104816385532414556654812309914074425263990203134894831689903600203671012246303031902674574226829759126389896372747049387707608937547754400273333325086139627022116954005607735372617518641328838010524225545666864481227180861169109049575674073545468747724324865213652201837002428728630089621768924752337571530741460535398936546204183301710697639247088031379429674546907941582383519617837233447367380813219021333959051087546572353649382182573918543382220046282218048831014631551235639880377405065380606734694112190230798748806916942591170905721648220227484820267215530126272424728649231058622634561079987668460294951352011313968915671261999478123772715695255890516419463133656391835930624552248937261462445779555743393760149434456141536986050876370337139683802300452489384484040831484254905011142377597969276831895559697953038553501909401909891824232719673807600052718518024123160136852518037451716511166257461407419470989500096817950638363362055938904394733010922435544146733102456142854857869812111364353421662623433718677031340126921288024117251422778946335661559518287353479956561906437159509623165396494039580307541461641061111642585691833406118741114762112069959515285660853345033663308260009904517811621942868369418984305972438563792861243395098621509023391415445732273138515507291640178674623871942735839326404075701854406205761674041793366851625412947970594826640688414119735928945332691449988475190857633958353314725115197469198792576745675128493277977909503981276606079292348049261025874370223237736527517600701084124232257276871955273555777241865528244010287292594591555478041355889850028467972034437794207891377217067833417892675067232504754287358468836539174149560852896429727767483763498333377612389274039927408964288670002730164591267142303107905861296734298691371773032680227608680609811069683208298491055640794617200970990802466072331941681381298328311677826059561387269143790778474355989082428392290781936642850547159841033083968873224108471474722570765286568757813368021524339702955346401631477909732557075429532994854134926406802567378310887190279042279677675713889768201050920635813980390819888642351923468776009429938021433188320230292017942554005407836060378132910862162350437154869431423803944844003062987203593958089787169767193325331402482261849149090272933212106507433266451573698307892011441052279971868343765081787598645382194843686177003558181983920467146693667562899908470831785177910976757917811173639617803707760954292107250055807327848618890355583352124597311161668627110731414272408737436309972465027741040568910573783040869348972176943664641706227978310829956667888136493173421984052969012277679049350212132906525837169651929800935486464051123829048939662150436269987711146743020119455640605729252523736013742331429296057083606315316415158964404835992862656250830502671446230340507227832378521988887108178801032312123235746589569663778245796375360225042214344571081392791419545143606269667117972972303839668960128307468430795604462066776385090408024793080511239180586058129681919822460571797910929038684891039614103564528439148796529949423094195368380487161397626118319937817706330301963523759979637904559726387586454655641064284183244542523754849467571902312983384636336843029372317119986851697701503876199800279862584603328223995989711499729625178250792785375851914856943743469632237635850418488517642714812455958291295675956735914846296523073704704000298999698741159083837143284165134754190875729887141799782165187644154788845120289055428833904241228506963363272019937775007554005583754530481592742937699749042788844631494940026604259125655142855425482617512264682241903021273807410264658660262294797061033869637603398987145573046507808728969323471030103885504085542939453395418662332230335788806759317783137368416407690752078255824650726727539141468829989963317011438183902115273495936091300297489508922193596084311279865419365075020800549641083790852246646829651907139066304021651920129707139454811866054704415600250516866521904462505506541337035242144500688706254268444297732228399870509413975087220564277884150018433536372971384877175661883126319577725293519589385845274879520010075539846295968421225070712760203130072513704022197679629095337495418289062322369090385859226379712365266377816436193395537103481585161246429601317991360948344747121874964408641307475692271304902136553769220366418869857601719805625956785855402836553769112195263728593812919692368314630863785601192919724358912240636535802866778725502840609335023218809464863290116756774795245137321339997795956787682824394894573112759958935765949685549025793994232780350066083021935476327528211036687602994192730097254852910533276207279863172064257552431023370767040105910461871885293150263864305582061467686823571111584500152383215513594632542967249744282001138304026860049002797642538099817569844046453323708012963979417022914089862634868331879612590834803202941946156472053195083501888838266052861290363021701567650688248217899859138941787783548876131462419040205038225830439055656511395740855682637769277253131372124910055706533774481688022147892473210716894688736011546157534357980090408949744640614284604120466503668200642588911122120227523043678390834240404511418483382057076247037083801461146749055428061479102567486306940362116479435592140877156939949986254543861186838933481878274767245048603930776913539431474543794739161827355482136686493936089194235607734066743421435621608500098270339887139677950944815733325760985937461204491818403267372221792842391894159518858892806757043183523368886547578620323505640098779953995667479188942541412042362095461665403068435046618393301772042376827363032621183477706798723227536076101900415835007822770842162968343554453954537000237236935927134981614213833947241773768267372639995040237698826529873620094030954998368551068209744396222123950024735911542009662383210027587628459029717821359133401306493797155040770493541265255325424397249691052142569701998918609412773121588715673738321427143876168133710429841704938887869442580685508860252046065483324156596327979011938261307298074680098515095893577434199127333237786223108380131998072986497548449436300915886481996290915143919391833861938274572149191804874018217591713610061417925293561725883834056605274285797381134096648024966977857560040340664180537215217377194554357759052697173881086249092088013243762097953270735619419497478076815915498731003189409583986151821345244728417984665654907106726646461720565426902889099410771992147370597329885062287135822851938615521796012314911364610897101825204572377312443470945961473657689074596536922444173175811091216321795338282914673565156518459812664059199324922838825730512276567121063495618253842952654194044537445844157387444177143875402256243765851065779480091563737918775164071174875745085927597214697030515386061112940848012971574339216872814659470288084172323016657815657858258156756131652519777971756006350302036911734003551233990876425288879338999969813701809699399995749129473005492041584859717994452086790821191168595575153102708858689402109778972373201280421389017117816470283690575855873983677755986568476415140459555274692734726943631575347917325725014585951389576926337075652707682284846463568035366173912483072187950721287803502732043128909549370212477541639386938032526569806573521595629019282754253578810903559543283034577975854784506967524023538259878774576231988590506202387862079347010087201624764525670788805467573352563461289290192094028271006163810565675561715826885107850373178857898859315263514390209416104021724202933756268163082077507830379227897296336895009238789521043366276370251313414614204749789866041232134466062071660141765406384955837116042494485866411558280336887497005803030416087417313542093103907076353832484876704583701764822783544128341681084329985998240571698282756056734960922309389804371462481768394455941834498423825880527633521101535922014054395067781287020322691574353111302158162622850936250953436243336995975815681807563386934994626910323851764012508513797816162849288598265114439368452308971811681610578045457822367946316728060565900708832729871972116187943127878918057126141116015337600913225191929150585490304415150905983849465255043107910209121394164109083927209508413923853590799369715031505831509256068295135229157687879499585360832871295753113759900773791669024518252958266662923394817880475638284720155810650395988034997444640047628580414173366090172261942069089151842443329084361004721856707010828568187499914588189094086083816694791688068025810282495839602187442625417234366115308469372252195448681122444876816298526259852846127663016806048952568603111448196769142946374755833312826287844433523899696967918086905358413104749454933125258134436232727926035278907784679644163795924314640478966569205844090377763672907677430363790460426905337388184317608248726734977020932163053042541424132917606029259972558908724782490363491472581896658691509740630594254613550078088143413593343504345537319841464773878210787670904976437583322746529132594284646926373415226512809847083076842857795571815114356134394825638476740607316284656169965933818608216642613638116765442425022355772060090879769679330532137305702051463746272309372597004534433398552821771816115366897404069622196878276289061695122231967442594286158562103067684607533376723948568739456138030484082850190344629814943442034073747861734257301943492994679227035291015022139349421189725272496884779984392077375152100513577350562955602042233318760069827585651727166064022296093452833148332631970639102271881335728270423040161775256686489946316050204012716801510146165450609889403956335574489406008712033953841509152905553529718481020273072691826709378674321771716631140475611123725369153394985668448785048939635052866725347421845411762398867036891102223781901761220579927094362729882995955694338051967207044342891163652888218471030480117022142367222849768046884365507934237992683542804569503111391087108132051211031779460616709749558032130650842409848635175541568094171721041735446516143793218728746068807229914518027170996749117070653267940745209136426164819195789354171249361152573956542760029716639851857399282209384579744902860362972157069090223713917559698142139460599525928776039248068033609184222744877284385525748637228350253123487273887407780285141521316354579829421448327137523875689864561484406873779598712982452513225284965303122753639907492347709550498767498835117086852809923074300623780923342569825753118044927330763416470442359496161365560190986504852701445567729804766693411064158024431359629279014015034424682262145053485343856385532906756014297589678764782097879753850905156107934479577988456946806380741681021655763052217589653891743849566632851339016871390884962291297727946813987071994417849223924964455915571648498592435662492621349243173466955939464772873460415045989227891076140280996223287031599716877530203872057780207739659006256947628105462071133236302674135869506926977651331509650227910350185896264081206742644601243718810475707470960987888198347925537193606794951833050317707669855365795538356457407697700674567310482428002573408321203047525057886979629907831944088882379768468036400285556192383420538714146886297025866782785038282343523771356022833538789409626407199285510826371050365636525825058484772419311476828367575635102357346195726142126877286966876985626489853100554299977458679969331848050292167480196020793563533988061031726626556701009192723131419839787540607358227951483025228838618053629519751027901316561106548191008527996428704724190637844819797203939818107296105602978561551307554332122964233783506750942968311528982571309481164466385008312102564852549378975532563106379924364658164868303319892627222121276442777470509573142539911165981937015036308055510094278852041196512684440270395166893800494051349679748801075372309224134844149511713925019486626765307822889139016815202983757538983304934829487722936620401623778745828376078558658666670496891170811767916364830645724121024170391231794672758639146435729872505542776697632863239060240186290334256831908621760757339554764554087034428310690756876764731365368646349593867476764627251636158467273783141291307233956260772379874933922574772376534154544320308876957711754540046078872861657756546905861044428536699001354123823291694263929913887773606031786284681341563578253250652453886411003255109395214758354694490040195020161970223126998428470967108983663464623475580357057666538596574033853688835533701055219610449263731805290015800614811789713601787234661969404056911798880568127447054757225256903866260418631024841750634142420678315821157605982161451075650587544123102977195637394861023057502223647132738404012933789740203674564323073898762090770369817919272459774795063739943445375389674189649293054477341142414425312644833000355497803325749860224808846909184541455799119561223960704755857275583179866192046322835327624127719935083127622207013848432333790263312360775220225194221474490658814637109651636462259606059196139038463542900108603726649574538738318196602417281352057415973249579303374022407821592301482930539728745604131720401869368554306819910193089317078457808554582327600034350697667474220260874323975764787902274046876088087350355988282466938480799269400564772572023473443621676435673498800913189904979361767990169443646391973682348383986250461343419053699008222943030431673505276223512187612511363746557890499415591403902024069362106034711846286812084923539275845556539976483752788279728446622060760104264904952744513931486590852517784507708668269941080903422041514022060475148389442026589618246027704310560128188434504516600706108085311477009861276183981995285433954013625273436366950043662138056128697331208202798264475773795991789963222367382751830432694972915044195130762010927950687654914506003845906336295768707520996517128592946336652333125191758999028297684895490036316516691090665682419592012610904493934103489036545049699340592888136208815940804557828363290622510341186713725976413518142863562945398022337593909872549372371555133639983494824081943674713904798588956897738841503158464772085555834667157520947928422070371432519686866427491159092496353417424800535519559709085030430715739610797944095233685419320501434082390340035080011045441799942730280946074219377216473011426224708047357892343087892333011498225074434663013969815487432421609129881490393633931486397203716389381476934338047369510711735696096259197836071777832401319719123813884949776554230133298663854419093650831854709732537578630094256982818934104677858307661781569020031877098803863512520215247167244591588665891875756490286996540473775421529504233381266770388525433639705746126396945735397671454032187621263803161773145632706888413417296793775203771196807156161544732662706788791665044449990957167721158891290876185406678245286637550890990238409449304531625722584179072452966758712440753985537808357839946679294981858986424459044608260455313815017394065767798909926895175392501541221631041724659015764364435590003868571376493366659797899821170607933827864504415963932524648443400590324255678495599830851840952318032896948081534144655534573751093214141457331283131458731590932721540942837315407606827878419573848480461936073263057941347620953826907378299426376756403013474248173177659531968433441218477223776239354968063792821505988464785969260530325795216944059277557659244696733440228202627799466876237281215668046153519158149982388566027151395413752643080420074664672361233501802679232562500647213105389681964424569457633609840046092972123699565837740382333770019654885666617336738389708773506969117073310599147567669857329745932632832629541907445881373409235926144723945085468446495711055597130203361320344150702871235296289398009955554456725083145759957120360773417651338137699662170500094238320615070200871229817357671219706198141726202879881893254690455097359191236232497218106817913297569011536533551203836031758888166828834371146384256832092059174696101155881285278684107650769929349546281817674474726264166311969340719045684136576571061698333116143296464614107065467800434780571681565227449320995322047913849113971224181474336354221528557456377505134679949949775045972592567256551418561534395088602398632470940355874724070988419128413099924449240230269137693006213486869490644284157411738042435193982673014006008612609500830945748908109119424017516834679223882017268044554440648148343081525938832924067624684490894761392906885363513346385616333460262211889015144209964467588147938713482644866071391688844791938932947414709417687393062705161221041999665533826902402826286706746861771426194216769751276596580485039052833860903892567296042706625556448410172861795224631289795752306072012480203938638280002519135239897859122957292664720993585275071449128552075062520632686453653181990732200003074545400777111880608660048757956603770133302247583018250728490465107976456689235292400508448179008895889413039712981181438367963814526029754685590733948513481561273203195529007975650999796637502694143014294232007004840355452749561524362446656450996294197188839629224233940246724653213575310387770879975917151910310963124851558218443737642404025796931890401800637457744160480606638637109314780517491030175391608001247932127575893913490905688177246229614583763504655983207853363665880879678422730905081054939801791026768556017139780643643310756079877851675816925192656272868809167517006537945203108770281552618553429423699869118622701193500776449940682322055030465164623285884982349160044873789545876805377075441387117286771598913676923124037067364439442209226865488386758962029849441295906763100335174834059713361583215719988362701663694668801966450870572563167554016200858845261694956337585613753139075289491433545070940129322682939331274539722277034455860580494614440036152977583416715463853764119407044715423312092580873457525442808686017173364103019482359641406147810534257942475538754289384463852537404465018005907195547691479847354936118234310043306372660267761051346976428352198841378146202493038789030369819105958005143786763017767023080845895580693868336702665877674280999113705093302798843225148977765309652383133034884226762429420607845605826632670014616222696875141045301364146130820332316364323781374321577450112826481203843068749014820643690705512254487935108817944618835442733588251340751768737842869627898310483605666082569424233693584585048449870126568039906640917766258741735560399859135701217700586640324606903351842889023168064447681252325478020506892586810340345618041967351525865471239129971880550126917394614110952508172895747974784329593620143463152016062337898975620210229249916495340461247813442948237134102646412221275885716032476731260127188197160583614623284564678730337795036669275779543611891301645741225420616709353530501031873745061078352385112292652013026222426501496545088407657381997640792252215138550982377384005859684855284380020672762711872587054636856553236029115307903618257100727156035356959020493817908213653374899297207691406686750354290167999808430465001587853568857866409824086521432952114936948219926744190493767458586556683871949518826426586566728325415477722579203930094369623339162942673804992422204272300856785005909489963042827517010393892354859512225596050006238188830798192514430874982501415014824751720858382775251391590442862777899909345630379373101538450478961843303478616539518701476651108943704873160805993415321688923400631752351297055613543795067690284565085751325920279264432312271826712509966233641204741755679201888371125978237141412417907567912248148341313607222690260659316271950132247853409608849204527851004506327426126706099137087522864949546362735974036658601779779110623101751909085408930212661534693197064177543988175417752239021829681417954136299441069619078839686100134609699441058990816719016879556763927520541773807173621773200320437697051305632992384338047607119934695427092538245492595617569708087966086856847236505272891694443667379294790274190993211107431095082480982917334254985181642481822048310229640117585175680052394003967605621135946281023216342941586752519128563595219360160649368988158145568181808807368491944797836567380138385465213399330175081415495433813843062940742681478175431486631991459392051406224285772300266655344982280238319513273529921054346418699861738441102176961777219163892553901064583700626693281795351496742794246267426531637363630497119461109848311971532208887937024005361775385001271547973848142930573189911562349384207620088931923666369129450300291936859314791124368551123607054002454225642715606470366260136063132157676099715647468650235371112684322439805156168994333936695585628211718452768648332621757667606057538830920473019366926338559578391259664856320933694581836317001138371904400503212200747388344014724551898027661696919844015419606343274193313900969092681175335228115255024148898627344465730183616755749422661363434514296460318711755591666665446481574995609255500576029707669786151179234265338681090830571141683608733830358198619653191550993635372853170075576169459597680132676634599834573138930547796762868733857385590335075770413762867704925690450107614853233914872275325043948634437864250117036417886177280090014500377736447711968845066815634371433825324643478050951382344631503722537966385881177620967554655634197544834554077915800984431896659552500536079270443635118835721435314343435692773671068407842147904200145438914211231809931553286338116444314493060235608371512965042533224619573422457062335732985006563164327684682124260319887106485041186780775841336214911334858236327328778236622690364977794460615554224519127442137304516222640717907121249229354207900556285601082670136444208834708585757296710301239835314759915270658832937478962284090533202700475855810349879811067394438128450109384542981105114717600149792707892006257729369194592609886770577219155414592442464219930162536527964018823199289361577204856736719107839907233573412244742444969302981092501456045969115249575278950455070579471675016559003614019231171105868293750022627920655325057535805364940354187838669906494345514929980839560407990254821286120274582557811726363878757742348161667519628596401524878016422444132511407273205164082058994268634682356525057897811882136338847267753395776353134375204176828937303696191638721453010477447196630104010632319502124571227770640524198359379138322753970701116667726614218859829421667120323890526234675916431151184229391191011396591643978780297212717298626973722717669607766189816146853926617291046759658772070290856544947941323037138986784750280200974153002155695306322751003795634961454249090900707475405704466865226682983774561243222938029803282292623524596884074417328955007446755353739881323513473073527779320380487521261610353662390402448287704641310659523585931466926025849094643572090451985288028565721041766302601034734990488393289354538346252825934436629893727098135245475005321315772525077590040715579796973194266543455140901347675209151622063046533870792419668859681965150800150216734287538035685322611301828982846869069157253797414678276056293923163163723212901726571017742513308766020500966311565912427056428336964490500549560765889609958148032639903087984126304662842877311042647270159069689589078487091877182826871153833203642550348446741476321145672275351965392419542680468497128268660707982620785584429808480638547404190184529693123271570561190409013925703782607278294735867762581000026933198138141370593533401550536434676270435148203945754509244031689820242037925808546284553988816860906102807862576490325183741666648630622279124790271710922693570388695002158122629719916730829679611690018270544881503796921470001367337115846076049527110677880537044059576693924944305368536959414974419797029869071349572915443109161225269554595666114072102132636187109234479345993429497945635199902048771882005924345037038589795667437034967710813241689511392530353948746602665797154815997913073952629594121834127641715147184505685517730836930143691388314176003424410017761744045018431522613358125409247388135754699380531850313120313749498844846672790965240575772676929475217323114165218304991657845605856003577887409125937758872364942083118062907379550794824327762556404595082122418688409410030720693011230053921798562849841115779733881061643957304422841484970771098128338801980494255608032924419148426383907128050213756027114497897038354929774271210101254935397009753086450425438456457930787649366648753177042479046905903085801686937944078042687890033469685831997584361469045204225875783390857351366783400108872212099001805475686037477899159477667760026532887791893491978000026287433879423590250641169616417336259808323986654905814066795683211174789014862583563415157301643290720780058730220594540084561126371839091758056929620848567558758623412243369765944652730498143703448881099770319104034837269282281306248263342861837963875533974853813421073492526454380399608474721592548185075382323596210099784818287339097837203848242784803781366718272597483874974248165878073248613451711342673007560090029963449242339320166959287121177460179380293470541868698933879277217656655503725100853166905871964715161992075582308213795017090496759246545139602430966630433879997625073526053819968143753707024976081575406929385185449065120789841131725892277525511400819954650617731947144362520741686366052739137568617007498964069329776041553737045555555894608691622799764015008291306198795467616241999543891210351737782356849800372679781253487831113662196693721047162506126697938583215145223670851323782388052043274162769857780807465569757032155439241109268371580465432276493988695487886380375661875775201378792692577071378306881225332202864608140782937809243295255586776174320886617682237002838520179715320925721380749613585806407458671401459119615966837162740743027304205366610636075672435970510979795306955400514042485933861683637960689502387702552567994236879279035809354134796076069288987872350168903827186753996555000476433745543363876579669991234405324948161092405772690026451627876016673911424800038898396201336476432080092166751728261476722714776660594676171350709202292037403841818524934816198488801060163154299625120774361572827292599736854953498713177288079269421718669225865360946701150266103432042465609393377648702369412719815432565840405392235964173863275922885907947272149014224880011971602226621633953959356139119726075277781336850734918546976860640360654492050535450258589961928918105674098509892253678431361181193278590554369722407876816629159643834851105914744964644467338216378924811848015540417265617755282730458408569008143360151265109942162282316034944802206306533944826146145777969613918571371154375924211753117425772618631938282260351220614368593311017088698426110855161753245486705596142401881531718622916955406606824713616768930768372490769317059194498812636372658042148826255635866779736481672908640044350588864475735532829472078560994793635012436451141049598324876808744380290853009370079480691893582707137363870920444776126296085559153070417239764143728012461836425475565572414796710807513416679920885063716778341403160148845376109254223335722200525917286088735434202427280847511444993472402429870091701412790262896724641904656894422377688997010961308170610405468142858750669123682121921506041373105669403305879097583439468785074545795641536098769353684611951253993018067310395293928153727690906438562494700709801036228915394178221930509077269457138173210446723858034910963270396012926187528295447813770341898598967119999459778346245269533603218091733633536816877385620214091255956739150751140849024195043034504052193246878963369996400894278492264181768018855840255228662984532214617899490661959298657045260170310993833180137906196627872306273084880853263516269952839708625862431266803189627818883784383407696893218357004505026656617633962061006898547095271266420646088394760450095410776930847260398189057394335643122359289730396446504263039456856473809411717335439788036591020180900279033864150887064378408617556892260739018738712178962624178914230647509776482028850108230271745615773971443075795030543535471742943641779164351726483551565693936563915243558255558775968037249666898924178109169136282620912313760249530284890775885344208107718343652177768839068547754043738686627872929856540501503305073544313609977671529538837172492678398028187719800328527152836359066598798656386273713128203581265366366558988515778046687292835416150688202344908596839243684488520900130211006674140389612951076394107734455687514883849286909509333653539152502295603340071085031009356724363212677388914759907288403260131237260130060824046162224071182065280992032679489810210962516779348175885636585950420305104009849417047010255694755124588003375969024274729020733078601364669502326749527605404133605068286180755396150250936374093567970620493894103819770418076312584009015216464817570459660537448926710801854929727764981472023784026006624715844824853098545253882586998949043334334521028137435393903101097140770150800070864527819148749212940013942184183151059515212167813792554379766594730648984199851225344201908691458995315968354962176604958093168457141146165093026699804506406505664332644640595365333155876556889901606079675954888627370743852128616471773177216572907383627069466511583801063412494901321263783319155905996449324291322911793037760352999068560999075334196422363554480817692173152608092338015928058777951551713794149281032936668542881492456472664791675150070196578423221387940527024702464385836235242337051632284804027415132674933392371500064774855641621514167202215613933444182662738749807657617192767219206552616912260066280377152197476823436783070940905262262376367707255279392122151036767608693979959639031197347934747426940855245339761282467859142713594633467142415930888786257255923729252431413050467073572809151533393647808887805469760658557668404919316836785610037777249608253544059453250298029166026277583987187169499525853502884507231157408858747882142582142483866874558735205733226142170639294912596844054728691156856561377054630430146814479529963755916938749974474121983721313887175089435129926181257630361491826993590014286025487110635998931734305376199613745592807655866246304100941430739554096527490614913428157433783409077243450640087962761721055861916891558052852933069795949274137316452655879880871883216235839010890782035989156130785654741883144716954321762900831284000541259381502530359509507475855665245647557589830324145629412005785816972223888789230213824294724159000385744830100599557211107366863698373780466347029565236276276521748110293616367634030807981504539643036475500997579224131954283673732813917044356588422091198673969351978124217278713479940991067024467081499305625208084707355051910090077213089811198946490885558985952963376946960538774307683004642332560830934989280721935796940696786720317079125807892576957339831819997340929486649678166696098532147747560790879979969902954014413608539616206930215655241132591492072022347446547749863613394978571149690440455653546079276692217506921392546223727578236911508504621785856876135626775167775448563989497273936764394775399493193230645890619081839461458524958295078513477696679750233554567579378401462218550092513072761101522104087702163820365726255397401780981310005429849602871507088532517331617623307674798895498633904236152020836691710572178052347527566198993005488874629165748350472276294988918369984814167322240088355162147446738155935740724203826201446227684502477621851119894635740285880053695233019975048115069712423781159515248783114930412131294901301172942607678582668061439745074694871923609837743277161986034636915242609329732044544971305899621549355922917341431098857322630582320992335172175118856254030132205897483482695395813759632364374533442488211144042419404719552361688761622384543704534961741695518229023863140734809957471304776685994092364857234518973216246841820963471312097689270014318982560322272812255153107795328495212435916109638233119980959658289115302294520470203646150956803271591901547170937608208350211941124197499953778645596435811782577434615104744234825463374082413970801204821764083473823294780384687254190117585732177664473488819176950593459428072398940372212334635504354292703988522305759298994598385195672823524058924567125086621038927755498267031942287298181849383105712608751700797848300594655375642422300141661338520183952895854713079458906673280875683558624206702731454516272669693316627426684368891995464537306942215691326200965027907472535107941236840489392714751962247121319143656304179905250954304902281812469718397157074790131821319242232895359956476353180620210429940345542707976384935652769283108725998334277127983488564935556926108168597978889208053711637233728457522230904972788834489216785112478407542193271397478712829605473800730615918507061556750802376585387994709416160096197702005796100316213430688767848056950095126235835788538875843314246510258367146856218911680473016128239891686539615928241810859414897152140377414857082351957094452603603118112831044306600564037129882355392067749084714868884423036030876005134289521350645298906168591603327103327890071275748922536529381698656891479128262816079633839044708163480898651718284507318058489504271146716619748868891427910076792895001779165575579024761465140135202987206238694314215547731741773235335206626092870239912702633701557487995723483365910471904912612187345849955919071511108118894751226299926821887494655444016702385391414530769701990994727247454291775841236546148986955179774796013785308946417704063991677478069078015003718012571557349579892660162282774551332024625518405009327526563440285785359564786556680186017231427892945159241949557967714291993448138919087768925075582623017906392499808296283347844166795338045681223476475582228198621001793169155009864923309657155266836421236976394106631516256981411725333050697253741722741666569923992059026386031967936408298057008792802914011596838740443523759701521585527358050414942964833504907506973079075317367950839275485348547535918267224583717719962330506169811452704208027842467991983445369489535271520915915090410443138000998295381754497661502827109986848260657308713319527861668410506203072146331433241480963386315311439098115264068659880322645752630884336555710934604139608411275585452915104639632023186120178888172193026373378006467411703825939957419020760851338926072919171687850743001491527852979692473113862725967338554286003479174098731226649383257835967732888519810448775990136575420935860423854833303998195030519766414333835594734308664806111713502387514806347078217465940834198869455868008237616673599044258239375231714807262859240035031099299886867725325878139763750266070832003108749712070418689626894840849643412867994634846772978654261022260985461193453020768040479346550794982343429463482482876932880623716941348303069094468309509902657091561233556978662726897236582271289298836503020603808519234181269327921553873075183719483642442516467498486625594623568725638087056003899704083363606424189146798336820033247195354853737918546379166784884763206409960313702901799387381393731699876300184799998940675331953027907323666891526144008453870243941433772782788255327793695279450934903972930856984437513909150762711165191933027524088490760993607647535619238515574294527503710817500243507225843616542155182236256559422089538755694169238272419029936666435006534740460370269557328795338795450713317742818850353582503164234769104654795014934562612810326660013321483415721036781721073912947547900896934143949213341221294033591466281565356426737282533520274278674181660467108111528146038870548782873993280710443605880844340133000411073457295871586754537215436834996966483403168740708291250125333062587222275241516732626952490630963058960848777160732011190766445440926515830907710383672791423082284301836317718780619952693249775397849923538856017768528807951987586088269515186034017621967365129153998309988799818361558366566758923599693383602254639434443726796173125900272051013854376573224171446402967285925195810936336949239236920065745549091106967586386079816421286999441765771482420172988150305997007293115463204190251241432001725875322113151995092236588274572684572612801564538367666722359412943103083364396411687049419394084397299440111840660396668313591459921428127810251408773944416467512920323507541038471888712704917178826901040626810395850556626400353652335452342693381005882345365271578233140813608597848093530862613688476086339494128571040732870120986881424097614113176432709146538032223714721221312960073163364393495664148393768996247064181677027702059376966620587358233533776342725029428065850616383725222552444274632227940616443349778436704140234284945462072935946051682686197784498784067770786174419472924760704337670153740431770552376547646044871619937923062617307578298085385034899818207787778302544443576365776896110630739512381561253945010005338822273417410114314876378438928879813626613132677875195890311116640215622141106185133046054981053901609697804215347913950744538563106173345098672370347778394336886736448468381667981963076939807644393620643413023236980461168279049311582986160174037063411899300372414350142746784697562403329976275571867057543314435719617193006203810288084282934623316992741691602815400001068650766733798977688262228336107629441600130950130670827498360159955193711314330672601154330286988810479164230879329732472566741117806284044666405798354071635466536755431812843502311407610970786984319012629228104088695189562788027915176725485388304848347964285649532782844789335472345529639108551918554870323939493458723561253732488360212765317446937930278690989190751573938016913376099849254861513340602730802290157530558618727380666450640142285883800441503016257603358544172435095461035107571446928572030315549034620622403108700508207644535612987001666647345416724046691145106273030395768273015232326101610688941657121756089979907506044335174365158119157153054793602852871140533004118209799065062117513109168218463143165919141451098644446930484852254560137125810952801167739564446957792873078995167848460643815680956622308129591731090984956684533635835763334834687988812924316778383683767384263638658237050235636683394950848460852369080520082542253994439578277280102416422521892299915647540287536291577443990932423206166808223814725794713248039386090308362717326250580750773868614018394432215853320369008563243174132083638656385954575437205261913483967241051288383902083069524927611897558330125525126142809693570919572828006107722355255509351123056833469911751241759985589907240115395388606286584411380841382116380527048861876129365120090050882638016454973249161937513301223272292116685377922089611220312471264308196749597594906781963907425762907621062124039928235541718210909873761403478402959065120655266784440568064459439311517402480317341311107880335577537824984132374281361053226857752368331853936557400954404528513517774740687412480513538514276377952736259663437186474937620925761640698904373940946964910250320957301760625420853027262389462312051584005862912414062604988383846317925495156883075170595869402386059060858393362925095747268046766752549657138351097161214149336905263678937075060255699675611575803192784109141187046978192975777113927305386895103812481655867184905576498994739839041051551676046511916713272370229893097057203419941726955708056629602319327482713564548648946331359934863263096127569650067182167387216563532772523923791712446545706124397056457985426544359943255263627023247554469596315407985255568080322939310336546609430586615943669231263077405585470159125094693969019304326713951556076308219067709246924111816822069546251663396717144641101670058513729319313382149819795368595683237781662603363873007508834690644234573247315334437207604660781912707169154580679873617104882568944272772543065905836334600161415014200268029853165824239344175104595964537665479803521155394068485948827540401704243863157433440158427555661648573740107980794068310217383474652865044780440266857395332669708071638116823031414577961437519523787292816782062198382258096183524440538692682851100169262573576714638132614397492450016688387580253278952978150769144707840491245838414739963187962151446482418023606503702633333152824866976418231855594204214249573319402313103014984526181552647762180847140379623660781850255490063198345494256239443684491939026404457942217722753246452930044404258324942827656150900029461081169511092044802520149145354447488673995137800245443043404304797718067536659258683977928972687512312052126909124026283473660145725008720524963010073405211414597783797018386272628183291623227263698196798351948070731199832264941586228573238354383868072129967171612206514447622936778530807852962584886666997816584416939212349420544761579531421053998312054069142758415728156207220685212341461117379422422888357308313515026356182064740916002132844628471672158966782220183803611666993004114216240810553842257326574124211311208104611976672598129536438524834937408305713283072639383530663878781900207481849561695871578256025010843507929875837423983544241970079926873418168948408069365704262347803740623208861562276888554564979485637516802118770450463212581712523114928423678071746937729996126784614104960832753763251554172139459750606623455205887704587622831448588290606378430215560443087417303970579273368760349897942613489215800863509480103790801029265365101706949807230160060493752686398803498648773236880522520553939156159003000217433615180908536571314268131578308367985533752826188173134050134583451478772303368710345018144180500831091834626011576839403538528282156216254525343585825498946722482966129187022093840124244545002474420738418259608297593767605591971136119269978022038007450603065970228400057136045685382859145649034070867044456855527220348871598476496553714870955787504371093801820290781962825917306775941820907464262503856484512607718929280135650838310968234664496893405872345499747483469679520617470466795804127815765289510810873911438199831674190920259002112875908958252745635299553287711748764969029455582441276396335717954858329068077845434908342739777799659813589574277882510213436228412906963767492147169575284674642500358609291242449358985193323653083462492641446312451767143084342698027445434501148342882656409068267032884712743629289802797183344585532620466238498337402905497318882738237768416442875599726951175285278658326985343689040320419706979125591728522440014068867031620802826037298706471351282462942390120216532700517397234652860176579638521533197881171183071410863521691992333474743631215725454748907465035497846637953630283532494337088521392016344754406537421605875958478965150223521403303462309408587245625067445584748902042116914029779717530907667894142316650345164032120777518138571690913996105927715408994357253707655290053422789361230824113397466243553261912877913535862706249654065695952916160587305484771821099722353561376551466068967921548260914092968019605415155063462516531389114307451699102109449597084096462916385496670422887548688103620822849328997264169945088401069291774182332883880138101411188580434146276970743552152182720580676745233410746733265578051554349001621662775888607774855181916451921927450697119281174555904210444460608381979099528885207545474647972573350465896306043927879091166069166997559061048358178131055464196637661694439114479032384362998759056977585411537546428337928107907820548175051260599128472053739060459465703074727765684153016083361111096378612937579261101608754508474246557464218519184053417267097855309224583069451705234065396640393757406339329172365294569054285425764942694687445241918094480397546214507600934728169862875224050035722312280677235632763545759230629341894999883476462286158141528436507892547971206466707734264919155472103436769312850706334918477504299811806375563656949093964200654042386773644547046622794741896841360061646316805008467089349579441702312920243309344749807594724610245937570564070782052686361983414579155977777953929919959852109031880518222456162756703930702684042592879287039821351558707131620582579088128039179917547021755502248098704444779318562964729918614221298103561703278674268025093959753688396531954711333876675530767589626668129678593221262586873121250303425876253074759170283095138569562409262799401822071482671044978193462735014865036221839906064356634061348877771046285958292452401594625102597618285485281658807195536316467625990791107996311735261208493975767732259562012144842542015428428529120110622375536478879499895799408535468422235154658783867648545961131100597157266437120241106788333094859572970131879527208632340597392745048603890885588697264506440959175815811220085955037381765068514916361150925982564296403229126291418363186513578978061512252109141863193999271285704965705273278599115166114876704661478830619868970715939761654804910535865836355251756008868608157631898228716515000581635233518583520181341542412331757311233646142375987307191994217641311326060741832957314841513389964591006588606326036892787499287948423257469049122967043847339933578147624079100257848970815400033547728792455544640725412470532810554056823533000474253017214647630589672288798648247964098343863352704507780094676855447979198840578192651904789018640497977131829514207354066888702226172520551437454867074412806303170601903787330231226148134783694339644500584293438030122200316707336592958999180697265837426351601951811878495159947320897705901978632339873751962771956920566043995149838808331252127907314760906150509261677026965512942701084086802495885728380977857211589362042348295542202253298603379315066529231937324701869735058237225919682398009492980247825217996324937467080022459248289157977355181933869668735671658449680433729580575578187275043350080879797443928564977178011963310457611250110473926132695309069120305522927965656115386456210144380629194017406555953202285711236888088796317456919476329238790334737357046804013278080012478270258443760867308066827943972689380681444731979367238996849010674742697407322626783304596742109360446735049899903627135072226588296985323092525123508366406161534002974127431685216310933165056870741386477092963582904594560807965406224703285254884822976012490535609318152828848046821618887184421856425538689934381066224355675191774900380824220319945402185935224560625897629522365431031953961925851650933351251702576603148119854383536852647113017379016884859626853346119485809630741726567767131388282093396638177589157590228411106656086244926850285257774675666836245096047748478905685619373829358971268876505423031302332710400822596445243910204810546731430578955535948431155127665263814389409563189746732732841512687059023196358436159455904185128681872988940227018195851160301568518991864158932482087549947824267130399375781979336043864241946791358741547780854675801319122546571372135834658316007218213550083059123051371762468562419659882086282686579616275452193655753188884355421288029422332050222478046824704481913294989388751602552532573104721748202173664046428527151950241532091903610077178613151837772640477005928144086235821976077717463804513012843117299323414859296818561163265381108421743718690574976932301466256970792944380624141792104042084392006252408266721969791101520782866636777227420966304180445723281898263114304853143088798347767299686838480221999242245252063158002821499823678100754386602643264594474520438326011494560627557956799496205027911011228220626659802156721791803292099221658765952050898394028316521168369926499192757653117812157235070305353980760394504339193205073294247166798487913663331397193471002804715416568202121204490850668378994469429838097638376708726652967918533909703800762123978292227459850462435600881428860743845649232442000995976754364862131817411528078764350015462804719193436645497831254643993876822186346282300432115051896496337278688424343536815719651607718772966801035954217570796556980981519491840089253980849842045823394547566826159002879890702277258637813786109404045799204074954627744435662621879050427944937550130990514624891576460364174620632616914196593609522286559878768988463278191663814119478466102275297777854838678528541507818697141108727269290359992675372142556827599590453165735379182967346154027565957501434985228632413948093404212441809961191560354158559070743156340483256883519493669278878213376080124717549757096752962929075215932436831824839405591420070137482188025647384299280102690910764707416653313435928451237639748274187538012039125496367818137518182695197965632927687428751043868988968321184975500587549110282006430865989640399766550932820153971608822862514655928361940335930603423223014632733387545691878666210328565402481113223328736577357311702498290147599673460976739766083769350249512219910075985251718578388796912860589611742867276246264449391903459369602877850341151490979239712694496221601078958863380698967709967824536950607647017095034533248453726623299077949279597296370527836975192337096544675904747598800552649944093302925118311980187410618612176538395930637217101512966489487010768737776197210015200162535947983348269616927175744916130935369577145351367882990634688413273893428798280352600586293076914672374820405146919026672779193284949468090564369714516075258682754281476509543421695558774946229678222900732433695851822231823475360508381073254331616195944852953704224584563198581214446964699906776834063484441728007915428824534912628951969290073815429083990719451053727788147158153439410348019719472104782543062405495037314613313733384912936554718860844636895752602377935336844249064858931145946622763835887517586416547341132183758658884720779564824135810513075118970853617024067412599025106778194852916267863108964902643452057791850629891259666027191201025891677326951420639884758850503033311527171446631180720716221804191762458565964270513405657361448263615817917987828142015701278438204406698225643221785346662165670606739836747428435711160048529950265789380203928876315532774804939646629637454681023759743610766021899410993393863054402379936105341489507473003953228077327504611215594160633638407063287603964944034790648840704271096980862517387881791325946902307869712661693556945037781180427810266366927879963358564158455156192500340125481676053840903493603164747278817007038406246028210680386005170104058919231738241168761358573255243224252578284189558973599615038073548441279909756002670136606583169085979790805312162474768565309165082555617881172617621060340326428955747209230660816510743412004812514662771975508607753103933540466944250387160340498400766201701063461806286036870583943502281236262292315113843667061318962601460071259004554733243707290823426073171250387458462480964773564896807744610728641256843911071104952113860133803033391624294243763642840241841491340927900358115362563921321905649318182660454593702240331684547680554850072150964353488285497698732116410549606765280472145670962956160704230399846864418362899161365908412943075200388874528287782114135550015045998210612452249046439876927456772880777913564347727319632789426527548352433562486319999983433390975203829346324854031745458380921823702606671024559280663846065915294287022253218498915640513017040922026670584101446406692342437038305345838110743251203640707961250610703901173625744171825341394168080274678685762622581797027033125378083269400000633511918710428491498416909325613611742516750639993159560971419941105354675877311193553755893242517614316924999614826190763706547980150712024079582149163461394611960559528453742265276868132079181832664332852049024398396913740359898151281560857600556985068290590162924266911031938737315711136448915920865509578699841532812670122215957318998551640158312468665251097476770086856982288346147267171870785016263757029517316151745958887722646460376376550783659284092024230481718768865167623611766502336229223318738875525972509822504078222100409536836711852305536823933466233088651716234536537681164229544668383536026161099846361338469513093218720516515015089697010170439710051486156660751727177836086824202290015689811059719256372204191765574121569733879298209161615939441833417294361586495100665308503239901088030044601771699695891681546989640254030706359582754661994499154845643574780026652970046833485656739961619593610383131858075846964999943058755307431041508499009321927876216609695019086522074002272285062556636463981133183625716023969429391118456204351442856445222633485570412738035761939051782280795564253175930885249412957592095501815696926342185711592100725832561929357001768312224025310655835593574993890185541370561952843231889183071044825263463586905310026544645305040486482783989667279172281387726867267621810482464159074246233633347335923614093602913921458842089052194738290498571332978054676724614571293512763533314636863119446062685059028027161513343017135090835210859670043006821347896905808796875992508500244733018090658546822965748459888363459363557910144765483789276403304166374957123408059858578611765816960438323521766208819657763020964527778630250485322338741213136776035334044102267580452840115166389545064005473124926558666105273324404327802869825116550847522084245452788580910041817823738328469999003854481897366598925193871154102700088611689704841154193375342894899331007233595542385417122564326279423359180694619917702641469781644994171158580501890965023378891760428450977340671413715834649090894818071224191910793377372343523943113083662132102582588587400555318007333293446087236801588156534684489288834869030412869696590771338848361241819161576214788415887860191871981783548310932443376373047435786944806143848098560454867502108534238172201147626015808881499534948657196365809406116219071726286046178914026558522118861447333967508255909389438897846633145183323337714723611470863527675946220979722848282859562083319550612173175144129006353238136737172356064053565152928089222755799778059025203274733255559115715921756732319582929091410678668040597025371298661295584491999945635011665311134033986796180745108960151397448618733393435051567507630173760514166662442573917251512566148438564102887129324639218149504531406422712057514213299306468705550549640340031697777416806359072189937225949272751317573377971165771517111530564496167407219706712353499532400249118030809023653223683483639052659799844605202013783121408079642931658131021874239699641078321854757517007261667235916112106927511871535421853653273623474555480428877134570690653951774971782828504784658767847988235740177818424708347074929964198642977232534563701597153954230897737409810295497574860663208174213214569464855509155416641362407467277585653674680723879347123658209336145716019229484493361909391060404604430387211623754895056312378953933053141866649842309781076991746551974945919864053737730120636738177200438079464909787179615405616236733852049450907913095743585862770920202669932446760263275869478611905470028152469529599913448002582295894711965920790982931442150761748762250671338607419237437736940440593836230723647730352899387252215361530777098321857157294502087500832363947192959746175342662378848252960694019990758464663778823095871318057284373344867921516207637021384135167014580582814628003746923959721198140334518383250556834296836397129456484732139981222132308933188814057671892352037914661021453188874889512289532135559414819316737010997655538004752115388649823045136570508714435602878824509517526591700457129019525759666552377024019974913305296613748460381991722132382965015383459107193105948942967260262359956516293493923950752700790420433765863705016936792128428018724408013716617731766336881965514642419232631747370232116475308672507558769434684103159199730942641935841310799577322749610213771971757839247444152138365780264418835555176147725067754916395488377384553416071502459786094373018608853797956728449434068122426727030752245045107716972591821060888755460219322742055878775103957574601236823035463796299644751388500892655576502637615758839351228558338239115443764501451703936338224311508889822470931373976619586393013844897232881683686219585691479966611053803399281006329703909888861592529496743852553799480420369519846979021544341257552025391110186136778623986714813327424420946920796364024749017959367359539204494343641053068128659732114413797243990507490529163112285099185103000088587557556228669696012136191438646009530892254432803251297277442113052150849161812417974832027818447271545441286447009471132565974849224832192051850822507650459003041598243998952930139222403344422320912743074469897471122522337847895650167579432755652031645741824400177845058715941215914818172876894403703732279748704212473234943979359393887967501437959504049254328173985989083804963989005259157388449814640399347719018918621362454250991975958008657313632818025465486408464246791680608816776159979956099014568596958255406071640567529803743297692894763827965982168478539524789716425586583933408076729510964878084348524112015947469597222609982388106392528118795352570110481069445169754273878452074995238826817598155929639246183510617615006843151373609198656508453034877154849108613820120930097924238612805192524759052399594279234617161904857458716862196296284588069113397602720478189440275092309802959154140205699081450005225761122631688022148167473617990544054399363598019376706150043592570283728322432920302148252302264246951563921974226010536178691757467753232802738955555209362960484310373194578120697531810011157477870168233948338640175596595554818530382751447197691306182925312939440331282254031771658341717025129441654869223280966483825236882075433769584768949164185961366702738954770156281868211750941443135288454956891908975006253158745299504335178553567993723419005249798451905899473862651581889290704658666550601233779313291367348516994328998547794242187126758175202448298686050447379804566847161239480513464433830122798172755882101505388242609933478006303434678960621637083474228669506996347796157633256883200141885892885306350801975714193316754058313993833532137478904843697644032144955999674890475769558524790700728618507193345108308505864224191306804121982206031468815943781277967990504935250025262443588058355293588133796692545602086557778933606421198950963182427229862794941253897526661011451700561784030749626302812422155017993687499653415134122252928391574147104286551456816789326810069916858033658784911316772353859421206873659747288577289160834543959657077689214937496233536495254110325277124673212178778811965920579212912394385267007101346344155512107368621293614627340621631184080013187057446541063898128406037119767350829898966907674575553127460596893186029182139655238132782605807077470269991234140838910309925132111674004147629239244750112663423816460068939708522194449256324574471884809603036835330585726131999029135614369059569134236650719427979611958779778060280271787440018484230318682386689864014904571070907025198102206041617864729434128646296731298222036649223818038022414009256154164460070928992617811939784690008374317078432694147573935708007348903206420650153735471647272047679207637571142105727704598008318636263170041671334545580565171822317801799674218967760921003782279399011790646351728580385249678201667076767302472256475063919963915839789378443534899434820910166099470312421072575835364861118905581682555518488347969952471839897216419313577673164380136617010761107502244210258386356838905785316832602030338597357842997987783099998071667477393489047634915048218000349776483007243336545087606019863638174069001076953794123778891728725938660192656591267894356087219273012154404768080693565976567950646708116972230011807916784690455809298884467899749855684624929638799971998350984883353787385483196438198511854965607348522854813766257931993205940767441956241119356314000495500862066447411055695058164149793079188757541833235900719867925149338053699554218431459507319696837160488955383813330942300155686971653919566300424697987660891084052108267440755389444400067106297234310607235136210814175123197904084743466520690858535093112980804332007838542561275587425869468580241597079774048232563300037864821596892647314012588758751252567591283808055832627984493301456645864928719811920461296518597325961766649855946844411990004094826835227387004855793804783050059989217186852325101378281602897023777409807115684703975242029393338719637402501413448294333614424672599859218268744197923952662257519691564622621693148834308982543597483852050542781573975968712286966957149521982676310846183635692016929245785417657835919965108312386798931119549377786242237255564551506764319776977189201826042819449422948749304231072196545246605584779110153788570787785703071861009411124678733626910142513573404525354240182483611505063162079639714716181355499682547029030510859250172359478861792187083842259043732560954029699345584132132017899713103264143064243951921298153800236373190141491803345259503525712836334916928165776968360914744450854111406973204832275836152091082150707846817845331390831193418499325429486919977521024625522609219172683087740188634363608036116510257294758643965379378716964963294895285993845485947047787009756698023544320329446392339090060441021260010546919783645231703506185064042654803654185941266994559507425240311513580338541533468410995361560462545598377964370283432989646274841040409297750633334522743974598136960079435919193099570107104753508838510716168464228442214308863350383610175353270324769338693512687637512478769909897072216593235602579681588908168769917163240043451610545328342099707373409361223566216465612651188996085919503967765620576248489837873875509181283789094733539472838884517360341079930726341584103937181127859482515234141061552642916031626126664047618501289958419873534825403549360824381141553560979576809715629502590861408210618828907473865678953109148126208823108451495340776957866354400079313701921110941252747589802225586519730025098900543592599737086139394380451353083897656591593666855433826291210270037154185353188040096416078729365443031170098820554496264334514365558225977675075140845592620770164250680216786727673368808173099733418132975478804916410273675004693323812373070004758947368220479569386696786200335977151550808883963408361987637573260037210594566444791966539621695972312000505573984321393078268179312019665927347701730424710277844451577351865183616774241881664235252378299593367775921992794189146347292477644737286412887386842716260992083008069450728529726231464664861754932327025803902477556065916495626045177317844550738005012341235834175997940141076000187488512810180098567109300271684791059984204865449287820514963631828149753388412498545249633149154762819470276172545307266190817158820028811621260556803476484885565686416391477072639289228029066731943503302332046020695083727563947111434536909901665182662514301978959048822723184173872595536818632593093333713403402374940577630378156374811740388602713189325575907403811190016856461249531644172729464294316851372128260823960394490164505337310016609428596230549938971022666441618197568876993626012896861897315917816644405800200235690441100824221940916303676456499086874182250277582242682708029596069215834964510287391462565187740700961169043384975428020676101692613403165945071640578665524126753255558574040030663464075739737921941786464315230238084744885093755670635992591955726654486020659453841376676135756064015718825796025265557394211618194189284369643230542792702908432929997377511730681720703918692880542224278166903982750549069554545427306106352698418043586939904277081416300482639007804452713881937241353483079343606066829845757423767175590112388657583132626341598503333592228114647748040767770992676810206240635115383384243765745913625125683466211977956001267525159331549829104556867286072175919083559674617218370138756006664985786849152177482036904227681579488214626119910504162434400691765174639231805350086010781416933186595154527586191284754013722537557552580774734462701579997467200104415872620089602655775742618823016914005324921839427980105135760488070093062710696524746297275634305875700233309391953729590406927948372751433278613961446525645436773390960941921475271170661510381561912499742851652393869254072564381574327714925879081316455627546763294933427506320185867326002275904325233670589467245115036184247905811031376742053613589470690741443190988984945194705787267424261142610588786938330614667468993288764142076131998728431194415126517551810549670919863086137767426673050695294641617468902559287655890536831889960361470747884006230969375893452219689348620861707181238580799928358722783944225478506883264041343240868407656276330495695095174065936792666550022496579919426146776660901933175683867213062940862928688689633806379778311349051693577351657359422858983887138063501839122561012717581873972560472714365304544718555793088217121279802604299664273200404662822579352904404461098331094029766450529608272212253612769396455616623878932349909174830489758626231200150179372628986344820557516821305215605380657182542711705160878511986192150315428717002002444424082538807081293917528964880929692570002175163511225878939444956264798702589962073432440902767799914863923472776737682429192853030814061234323364755333919857906320500291617855212998649499738469227128222988013180601277560822113562614863395643193658394837112484411089144599942839916628175691372067111418344955959248344196900343779267190637942037921367616757152427598526175225990692528142395179059005251358661971148427997785808625905126505537307856174919925556906123230369553418963767893708274853538986330646404024261118123621736559006438606165384794939403415382741317642368287045070740043924077224848839725883745229062547089896603599794060474724474931937453295300885330720941262259784914396317227841622535301905241447385100981321068509504813533868029125992836897484377776998408805464082088319583066252477992736659498309782689411976587025567817800862521169141797532760227746191937867721742997287038940940941299396380669919342476917112190637868502353696659430202688153675371245841650439515130468002532807840036890776927886831566459309399725531129296353560174494063997541305550675676408796050728923469902693459122499651496333231115001847656914445497487024734427251098704560700365046741138835178654936422963086623581724704904153902651441371117202577506930030158361345210482157989093000304264925161325385298494326272381879080266429717320236189773430488648874397892324571614803006370833821230341502384926892809594955947692255944143811905471517222167737870304181429433207285921391511016324005621249524829965120139422668691546762691338758300635104505086704224663248132023004572366119667243582631238184572916804871372795527464288509594029838237495906002565449103862161127745888146672801570678384122762029878858237729590015561320427618178494406981702962284490782777194601942963153776432310401303446894687629926658046628318804860594155410433271707433726492985909770047623765360112246174650627809469924001416404962209813686448010551464902880283691767259254860675311273523501527914441698870155211316363019948419501629058762514293043919003053118664866248248499466825462213771834620610308569681974403316689970906768201884056358613048006480193631440426343563302424890029408160751918741633987485066006271085384301786972278828544753322811441505655012614349595435690389969934590291514649333389054956459726172207855650683135990238724791495610358299741473018576248528567831852857222037459993218927766913788452679327590015959182608684923531487067751393802695302211828230200542544718600191380110257409210006861212800852685313087185686384383744671642769285193512522175466813440370866796472511960883939055218502561887519412395346886990673632844910483689260088935401335552137830374038832401296167382028725433805603619365514290910176758297532823940583329903498631528393867516288915179836501714191261164639454054667826772105847299973281552134185612609368991515219202739909484272582344837319796134635368955203353783781821197397402943504773716012889390501996835598890687223384949829143306690422734633237227800204991784129367510552696704168187417362771698185456100998463499572690696576188014485903329127129451198349034388360201308689950724144153595346072842932849529941475654475359093005825953694008498457295277890226663878749575810200468849644832239355382850376507783928315965582065154386317925987626349964645142936357754596082483069187536296567341011079478758561164124007815637591210686426141884919230753013813330297888391451007454606963629238160981482452879782511786505270670384281648717667730343824938713081821933193423153998313874269341754433422502411480831920840648248460770706288546645150536794038391479414629467272538274502885038552774433085765330179111814016714027878766815305986242758608145536740261266275669225070733696225426487804901990337126348535589652722130552027711301396942999715071839422347395796708823288376536548208509551577833605444802529826944647230933859468095607880423510350814698113481758206797620447178626553837873822368727404111779053679101884505408650998030083021982251890154069301874317714764727683484685038774919459902250506382766124444903263426910346263004531227774168517389279789488591986448155913154811468208817837339056550415753151159749680483446899854397960217577451412437356430312150361942145178333428079857530948361712931385514752233341812543758537057530627696814309654133224749398886928061573476228750656560320818925512852997361235912494903000123362207234035757056540736410630748108981932463375786649926006913731869591039586258125800590306023831648967744037216138674832301626966392217318821858606198575324982341424919984321697213503117800433892058120118461092655155875644546623504652010199179968505364559169687244950112834315996840191443458556206724558220914900487131407484467513372955403935840043818302090919755985667752270247901472357141426005798020364269216628841290157312800351095845394260374773740022657160286635889948008563948886399182525494222351326796616367604482861002587712660701239215074356577502544183624671342703397581300105764997782604617344211164514388262461588367649049372283711957711549952680069248211828972816419629306529459171343325491472218736626612204993645910527637633015029282254632492256358089359139633073382983355308072925626513943275018885135085276497970505897979109111223988246782297793696780358481423744158480412661553541214886717639802530020781146480913872335891596271508369737470252632620824375077896844105583859407244093825431098638844054247276719098856630153677238197709704874165109536608850248396166205261750524860037490047583947873918318085869436499601307177355809861135931945801106035684367652369083088866059974209953581000235748549297602145760261037485189009967685531901661387845634017292466961414453028187813850196614474464047198049394041730215979090854519630883190378470028694178331523304946870414031150922807666854962335902957249801561615875000168286217120625384686623416816091393025829141449796566970571655396348869277284299621396797920898018344531677062385635222237082297829483294598063798642377101293612549239046205047117698385100164989778350117136068837993975505142890299750088017352932986590856824774138767228786728744943829506281333753382428923843953675378489860331063563918112115673821868813184942650384151283761425147749618632693378136079875652149688302511032719724893769826136683107261039480245604815970059594195674388759527816815540798228614762198023938654304980932422851930623021538544064894932429495360964854906354306032533099069061364302383707709386727654194689201704545723734329419677142035964695162867096935057773010177709550279448963494527043333957875015295736646136211274774083016660906099656883949367859546142213781947438583105336427850577105088836443828265405035595286149362195526733082334467364794315853810871935689386578780374421331140219257198387266133242349666489233742791635777029837314953032260807262699926867507704306005090509294771006817773533484897602126056865783003875624020186483050945327777699345986010440206208182211026419740543908149303640456074147934311039853789646941250012477897567618682258877603929371577697664663189064749541775932030367567813993583392908440926816521398870878227854435864584458203928043776363182274898924063019821579932132410084463007978805731335480670991578760677680519079175943190895905895640830550385273348064640224219914172724836258140187684799849671640732839017449383587505240355402959883896898281550510877137786012229880144609507326756431831525931168004707457028367273921776186691460422746659628861556404679276255260519591839639672110920661205263480424438479212003616321936713775238504132298712997648945985092019773853610069924527337276485364740275076276112606036669087200810019537133982854154741139321559443734152448651707953096616118957375501860546856611681398555531781615452616417461720398172990735930298758461133497159923929842211120697267585442118736795272413077490540362580083370381670489949386801213048588161088024307312343175070612271020700272736069293013099827745225779400441106636676678233291731001689676549655552442429374678418452067950053212141858144960700438471037405917423346391201861206794591039381673828378520558071645823926409714215970352354735525039621055595497898789341294793839937162873763912003395867213104711861161425111681841972771250705763185656248051184006023986315237043208515056310925506564427134575604657647665192948056511651700625367821993164327961788943216750661110264878594604383706998670105375258222984521794115015417069866413468495062574142067848417169066336714335177964198448369267653726813455615252660862656879045705104802914729408679737001945772359914248399830101122475818802255679792701465433570282451300163890689066792209499814349002114498565431025297174495983224036834260001445915448956288675296528087309165423705779362445633016088479377779652127119543937937375951046478784562861263092041557621429239996254674150273643373473494449983912865719683937076562571464139243283432522868253445411541292898064841538056133038190975374221964272631600805787714480074603698234535385561382844589836180893966571517150048496528226779225818149775006971395088011988563212298956194059609561933774187312521945608589762965267044561779579297573710279623274499140442008454372299551346823203092946703722372970649764842643385319572116297212945208913969665158378837223358018686373822384348910041833290755685969416619665979091508253901849696546686292598807864146634704384510181401240104825826063927418571475938762674881975505245608933227826395195419200893196790488628660772251809278562700522125155103204692775275349802311297248810015771387021055079902706171592941087120442315060096489892163590713528862071670873306674478712928499890657767777597250355596055744934652215015834168221733768751340767055688865247516826545798526771355442771231998982785693739874788638309252020834920028682743757978060459233091260858476613468358181905930818841618512038201165390824957981910114536607545835102545367048209384239974719029743025284462719926719529215505525565115988392766226326613505878392004399499433572165478564701611202814511627734863516085654325108493244919234273571441430508185095254927883311325180321305517760599675932724687022690750123624732185424587427224637197564740087992879121816227445625973460820326460346474347654262328697161848292129862555771647702224843254823684357102864926795532163318102444020083194267384633807181180693192837853240504666747102714563878825299958049663711530886322217592420249113053961415423938416159119840581051049545257787814839610986264096073575378800514094170342813971552070117937876407393291055424702528854958546299938083656590784008381527207169029195824743984931961397627459207543312857354627731795398633778109885671213489122845639376322768823204901197773813626338018433668212603784230722426869389127179852535670662427432321055097600186446629004108427704708806010147510682025666678352926006053508862893553304052178434014000946499745238786066307589262838425341342762935923592911610314153436569214921913543861072015436742007778952452011869722092322939299746161654069626631361852299528635079427150048995860196037875332313887569625607191239622073512610068097961189189229975929817251774917761707712038904795069081866485246163260651605680727142549995030768189643831798554390866591272695507047430579929372842766401413921240684576909000876569553701559014915931470840817646513036523655991257845232169195297336870493320416279153564773773192203696722762862407406940211724700659657330420203346820644249914236910584373332610080090703931905263254494990057525698844958795463691961705396699248377995053133958853871720932178038642638435599919143053370057157512290283040372330009640324038989744438614953749094157276112582145811709569738198013482145358943368416776303300316933392645289094930578017680838807010624239234619487505124783464179213426338175222571386087422167127696145945524831502674837448708740352261613169823254461682712864442445527975411808410631217827997306368017816272557522000364997288973620086800888347403389469894033059316931927373807690497387762127585104245600953705279536667589147542670470290294216819617715422933304269830006136945028956848005776766107501141619175532794652122595940086262278094136961850697320474052823065944256780455404357208890164953814940976801913761148329068323875318117005957650693843233238968934478604718792507773726682435681069416019913939664354165450398745856724795658248816009231814063946624838067310858192878685059697921837865858768258763420600159020061991563523143322634379997776012409724959884965571081106714875864507901689365602732987573516481114782325693809603494344136639068980504876336607107064773354984468159626348908053323948491936704666567600965297781626832211181069288335241754299910608538681749158504106817661383300384400807990662363175050058170166565186893315815537439476102882170961469433799737078504156182810724360793075501526339766321999220375097850856573236068436648717867316674802481272758697176837390205324232103258434478145463415706566769894970572530732918492918230000251068231933697534731064195639583415413464120005217957121459106185330802715377592511149218899554673955345345921610309414822770488150579016748006308318870511983693927553774454810211502369584302735277819488425281265242813549057546572130399905609143426595103258495191383717179542341793895335459264176493369437473589086052458837071071330264922037710267735076759312852008740256061838242456950302217462791444543847407075363249726382489141740941763397317154415234039940775736833078856095686491846849720627323844761218913912879269764638675126754755350722095227737481346511829460187024195900941183349067566835193137669297997402126591887002500007392748631437318748570805844216494504292639801125070770574659001443825413425538036001915735450363894080755320494161118560270461798435913184073905116622843656465692890096034862637181088054733110457268737381462895744363044845711021458806157761824524910965563248691310015731776140770218108799600712756246077948299368511652157936614381054280158411701987276520943152138732519870219062323408915531151381249140835530311243521652044580293801192732840884711704397208390775227139011991346588094128682818630879838090022786208073192381019074034832840985587823757906568513415478655065704035850864769312982229297669775692385229872073936560269205170062705966120403342299306284262993678272950308863779676906147926827475105194658268536155528290704397355823897918800632216079140215368070096749031205958810957762405095807668470614431592862884986067992436020210566443646577342601799880463344871679255975968959124544495766716122153013108337449119172746171728076286472322963280538265725474983735113297092770340886315200266086877369804382532049230809062842811443221704743304803983813463197451442584324891316192049001073902623817746255479462784369497542034203795544627833025691779969853672095687383295909193354127272112926161631562196164267479599333263196965701058206009365824854667646650923240288710561972086983210391272973870289065703861475776358228927765920865080934344877876653382351737655809340751529418633825012310381893095160175940999646274864997239906593825398365630956341928747368274260486637756572115439306983992282347006142381893966290429448576526972776924734383042137327063967040660331268136564885949521136447271021465158497559516557174241623483353575126971148614958231755265830994883898121705959416536575853904643127802615406510978071352509702342271450437369394166405477060968893328243109962175041067160700876705349295027422786583710849961357076151958074926275525028835533745413661649958862106427819662594985208814515657770799515669085258125544418088865202224247137844883286429088593909458944658130616699663848892409453366805947269224858158492851858941832855344793583213424278631840456859237480714138540592545337760321463861262964541835829381008755565501377906599055299038152431858764370512290260489936775563941520218363874754072511959301704456850799541653902250338958804000566673848084861093285717324286805964893983003067067741863325038125922190106720390478722538856372888540661506617383044311244553588921564388933549477887735202845819586935330952049876915491278367732580442109500365195635985335490288464201676129189402237516215429069373515484011512921881303586893135616186951372472055789065820769175152772406873448762136960750394088081134424542967803860262098565019522958106742838540825269310347163687239072980786138477849104774831372242345738613034920071729622955127880698213315029826623089315629172162410173919541212297757405049263730761268110759652546218094676923439661940277432607424610481883555372988203670398324147757037842914196915990730334605627141683257108018530723798424261812152425228475282472777313685852581015378152815655430154639526672323397099535450733956010036373763987213642477069254656527476225467646092758473694012708622620173658695651973454765871045384992902168149005614877755929481038923405969801272602537480867086628107769749978883382627259991197112135787262887879957070994774351721664900712730705151733953113489250060824710865950631511629312719530222052553745220348338594687430008366231714698483960968496182156952033819866263514307732791686309590882759856291496695189254200914234502351661895578115407135747365603816359524812487126084936351333727694661036019792827548098819233150411217496174957877463716572379834897938803972314540392792621408302444646037477083299784373992534926656697522865853645255623444486941315608105929944359227174907359323970514536946729522594996201715103183351589257890005142781521993575410615517502008548467251468633009141037269088119890436279817910650175076569364090255191047036007404844229563416172926364281204129239787560239935163815131861288293272126983085095903991006491785078534034090462839722052188484449551278064449340949810155289256397839166020116059516675000066223956293299586864971281861199683715615445024671938679737724391453718087563675974772939540156356411021384309503636668406732932618063667338221934859490579901579195988725612331711391945198771724162095662446775350131140947625122173486217779682859596313685593641867179047651936501016806120256446291567218928088111619670626475960354885248267062942402400946759066475358291543967977724271257816569770855250377917602353446684990511799252186267318807437982453570755878988245918292818329845447460881411597255902847231369715839476820919650632845868965969158152100063320118128786361395913990660565018529065099731962485683972340758644231489695176733332809893308663298560074940749983386243200341319878039175753373224937611684761622292950012578414092917880445022644895182680853721233372437142188692826888273615584588023478051447238157105570553104038488351900022490939132399009245490259331868186277902299088347552275860748915756259304508283738893800935606735557156884496520628993394944458352377698983542063796701764824584832746469987413106417223356545108597512576899565774967948431167833345610978618842684146167931617633184628075040846680437120446432471363110078748550073094424439338534019907638194687637355366566884602601458838387889565919753736412767797287543127083042225709782164335436299417558137331146729176316231294843336027540041451471982075005485852373784161612019109755002444840812199135928753870918875590577223591404838863657119476925006834688163271913019633612353590822821199246056933479608033856365130702744446260649959103424073793774654024644448604394824675633215721722594049609151176880394930932620380195950129019511838929365085302982945753861898244914966099257496424117510352291942469762058942800141020372982673162119789965941856305958906132314117938929036965757465172291205377025030974508668819331540415194526993856674732908003507007119985411443699417439834898452107901461940418006648092374249110587205715346608121031366730340565329807368598566452510531460697343339518700386154304295446274688588830588711743971582974868931507939957742264353692557028545543975889705832281073825600602182879142266896349805508351550039804272156347878206717803062664844483623162239908008852293715722319067341811055719789533923373597195468924007123236745363890416152149476882757193731517980981044483690444197503550110573802974381843223740022567557779336667019965788492853970331609886450385707222903747410232697689548484178299008821681219755415527633682241400014569568184763202174801017825479668372284319310276699893535769158293869174715166353246909258719870269277737527471482265303584962749431900298959262625665428977132094289597435043885273104149275207707311915527602108557868921313991430944225671634801856699687791602502687956573676135978260198341095822622086884936734348104579993243617190923330230173559242528758822735179041921528584561032657014172050497256136387237590816817871492698535818975367257783997201342351574754009280056647940085173988742028421265647985936984563622168197518239380205155902074909399152930788689342878286291282543371507768686402585528304853524801559263560520567493256959865993684738510263498944886049686855361253428793498190998680675162014472500742422665046483407163363044297970975089982721229642387501205783705869780100181425889542439156685818026411049194298535231361204341703817049585421561339074469030768986536210249720231128755333138863349377109525775269340974439410942241705216054687941343408249494021830607985970467945703912242241333122351524403656193365691030837110428056117838200021054886643233433925600691388495012641452703147420047631091965931969472207526085030901294055575274858556064931420163259813668507099580352817271908930453843480724662945717951767970070898323277517026330243196960436670424030062516743866974163130786814600290408441470437862430240663948664409564303699034601350835986138385277122706766636999946548475408869625154849786599490785055649017989603974997881339444622483352461743696982037505467872653759144320228297608060858186397217070348700275652739964030493317112206852085273944601433065735539602394246150615878316587063266348675004784082356839128994729164115310201404361760145094961581998611599083045562775568977384946850887936610388546159684091754067736556355882001894493806920437507474390533459418971724598073763762127509434689253211580644436992379458392460490806780170351995165019287839536807429177131582871160953597280100489325061634371057312081154917668584532898111346371261342554886669049126686426914086102198818755093560141656821624689813910547029703955221620272714750234603479254923756055933685793259819900182923609890815424174052569654293228355282877358686818023743979698234838243664392097131177167750444837699056422345948465249629342898273977043693012475824405618721976733683563147463669935244355220074792488765482685440889551256813073611985627240313865028513233660707802666823781111214531861419550919423230422523324689846461371876636450487874295092335224510534809284850339032097754277011227509676990528036991725327013543598867684112984866314276591518438803602801596454361280493765362466447060261086538623263535559972708780068998537997368460946409696106244478918758801800845912140279242925338849285074333630920320085563923848969574369637353210706300379613154988617049832090260726486487827952130265853700225445107538906310017330104566965543249602610426020422003925992660463022674480221954263999163782265487361546403973522981693643353977182798650365711203513242624468940145159751659870801823087689441880435795566696351974062629309383597499208855041557515491066333842395229095498360688556829486638812921842905912118070760610639901976920742421986899351142863090074495201760759735724633838982344785686288548913026184537211829197765009485060099026313878021748783698073117166940117816777699127630844282914509782453652386853827983194661798557070740690841372247309262962128025726100935030162682603215693292751507670631702043994818555014052982443931225337915523355586122526574145950462529967337023387856887355878926611432229082119288663314836673325331996206224983689899097414493202980261701800968077839560216270404749227298119231472662608947933764049167512724686537160405108178801147379201920258840825856056089616130869740388260189725676179281692166701797470945432300944233869558598956338877685593330655230023740321767024482459810330010840669271097631841739994409855912189204822411378174505050705313136442380755988134648914968169159201324388486460366072112377570808042466795567134640256171739068424162206063071834987094085843175029771736769444721014984657541856615318877119725103333429469642884503641919103508434310723550255051157777902824046191382819120636361112620914240218554097524466463209589196072505033017578098623276204577666725221040738343250184077775822547671450097526373707520320798092302692355070445535793829829651889440577765954741097170089325729822397798575373359635404606491663573450304551566534048013477472477353742137574024124486591626109975129645125635109420425312593506404816476292908251492002435157191539469902388507175824027603023486269408315647457613615826133740984533002724105557174978978833445905414148477393629119137517684929760614705358981604146789615578886766422942943107000108564637019298907104514315129616581753016462376437431286279414521942156138234262173937074132969239022113534892568599045280569087503770715137354799760071836350754840070474734024974234437182774751680077167229894889584164509130835102256552782559487764505708137623235786708367032249282811028139645717963221082225470864927866100336591790550089116149996457531993934159891698595286459756050139294872298146075232355203164711608841564267535327392086517150388101028359834848615765397464181795806863096219780017380984505961244603541488087024692374128336079508414982149914926656461616051841631730558386562550615365187779898400596595836802619834515791399405733011431631936914716229850529540928823040625885975777786600715073194569492538344608635828173508690031807148625070977716317945713936488938977129102107085694234758651718640754592839895088834420370331338713020605560627188547723757123473588786222161025803236590340779376708794152413369359726962943217130043945865547019569592701797386883290611471895053646916452261291272576178118376694961788205773126118510399785070861443132884604787861032461437427173061561771449363742152725700188266804632133161793933390198177075732394439306799007847297418639965406023542702566040088390573801878477890928226978658402147269240545965575681300422327494472787526145525958358485087201227053014930621283016826305674552707291426392961954710412770769146224152400857627682863137335791023629426497130799740622850279076437970445393653890295713985819833059885818865519592688303969595183617469974775138569544192482251048311429302216462812666107651534359917318258198820921607101878640622970509944881914875307149794570257296259963340878374097780887834192778668826350380538205446975791251071013376429353273763298881733395533412404990255163685089171809469235674217729681566743839553512771586584386631075674513896574329901097798026331064535331335600618456510623841834284527316839704434293685220361449291529870917334131860006505926639570334049097210383111334853227844619799939121974132939548668291515102406557489880744559698675117263208685248083485787127633990123921432501157054193021524599735372539164645532724036349864445794504668272171391949316904427405220879078196705003549636322852905199796730256034776710154962107379991050334213525145504932400649465108872727397260088429604261407239758486194674747350939077359218132445703712639811581944837314944678247033409539635814439837146894896568078831259765066158416190700444700892811759705706669052958638292628521261333670476360425024632502436609464179348989827008110153989842670831598681090495003779831188969710426426951558634947957982471086143007750097935725799390842806133920387183816147516101745575701577393750715964977384943944964699956377866032795310207798150038133605159696574148707609407846522850548455618789227175708935153937502323117594991233199269493126950891383004318938771375699182382575254588626031022133863654339866630227069486323811397556118801652990203486261305835829120400471138319684449648741014301464374978366155788964372012711332959461528542623025015150467940312896588980123277243746021444408876433136408674047411461071814212633826842814353269487314785136778688866186837361598900853881477082696835369604506768191127961603543864567321557324862813764079998692923426525645071762153646999460924573551604214455726933577954006398086579489528266452899075514467173255481693292311400148736358278946687811608762398292129481422584894488499918810967986739407332855813204917642289831296129243874539445740805951526820562235987939016420318079932749030326905985682270075239330516096880255872197363326382847970624037917393144845609046840657998930397950452423385087231705103241082930802373717885014779554749357342529346732380030189816500421742446838053595054477670522341007421699963457473267970147784994433415811260863854992765928068101768607464291371731917027691812799440270839802892751206067427117128966166676561660283564967832080295710222114958620352980209104551450068591524989406191975044206439875492893395248385586948038073242049585017518600059597725275854618196658825155702424499183956541357689011829754068009874235744460203656772757978155723193433943154858252555686668243286979367903136954443014135248401013923965412487825244065571534956794775067273679621218058153585034010455057488346853415046689974664095532055299794078734758379577271817557768208358256577867754833852253270949201900924194096281445152189582167523598166305058237931362194150077067325818096237731757311672843349235537433029210246596358377878495429347109491858808124997537303210638069022881307337286673716742018032378786456853307699618410433018358748930258510505604453349744373800412082552485784770363879784327509911780895229744143085509895886691927406227537839694802672301086044114010472769203062602867954473355677208708875774067798201980164896970349897330249904562663954639519964946705759342987751102001140604897112319871289543307801895602244936189501028490023665241114835542837214086029453065468896784647605444640704440455115434285830100885758183730915839013745634486847710779939580590641146343807630619529312185529290607081369960842044430907928877048317902691503864662229215711293885026592551841845979598782544908748290449761389870375280288744615642007448863995584840498292392872916793379031384367850882513117092487320292351180393467321571291257598784352264796820218818157097512182084449176194560291594933956016481879705917218991574610849523060668903300530258597830029155590819116240898286305690147573143136787337616217412427837389008632958921771292106158760575975649676433397549857567845460298307053910394302801772986558007738247296982264921045778975471802138663419585536765482851854002956025574898973959885374693281899398078078157308366972010826927436846165353923278727286706955205256528116408108957891091816906517877152896314816311581691742851780223900934455316117566172919864007911239107652856467187677829088435168853384268628943699010321043054472423310898898416954798225081217486567526979163231612269619018191187044530263282044339013976535123084461945238364848759342757725175430414290679919098236766905705805196338073186940447344904321440797575026633108773425631109186323610037176552654754034665081197864055824691514589797411588287429561325032345531281949945455760871502229454341062407478221816521069409345443533428901728147898320709997341381273000130424941587181930328094862254532478031092728176935567105123744409076303023222032586138059958061179959418467572858488668897849403237029079561682497737535566601760788191553628361417929266162457985292989664735381872307237840693467262965258230029156354177083555791507578119161618832969169603591280083402922238004400518435331269887067515805734894181095715160115915506249673572891340368298141151711719072246642160816016262269130097720869571073183527160618188218753696356468961261716180150724810496799484811787853519768038095699134554835743726763799041751839422815993756100561721225580080580965058920791523763214364502501795469057922514873478727557565105374765568788931265741230503824615830433783844791009766756033682023183876344305076690339357815118844017581343930647026457800646576826641727395811852472989108483660075306497543577120250442046010633967470317835555904646545193673219273311094170677316117460327972118025727052275990314080638082865398428576017411270141627136906912371889337472462484852257425531939727203700056948016316431813435671484217888374845840239819928461086080364942902235473584431412081880696630088081899476702519307689316771262923823503364194205260682433835793195436804378376407741571148823128511225980870316843886035955384979555152287846953071276214033794218241800358493115968762014608957872090632352424436800767874688351318418431947316255614588204671728736714204875381150270739852041674032854986551973346505926279921068787906178688271755271959950747522213281942690748115206308629308859310400507526499895023990576197058999828358241586634467715313511691746817063398210906000012698942538884071606203778068368183780818852063082236384164537398999065585484624196910986852120220808088385971612058023841394150868136899624418733087345932319804769704750812076637893462720920432479694331843496518728536887450633541114662451359963629629418849433749107119524963778273887205990676661157990631283095768808887089685481783280110779960990349557737650374990612411375038429616415711841400173680517397657092696711445819860597036050562645199865120025317809427483749151674439351394288713720476680962828303718610658509903603894090530502780815624216111120761817964973570354079692305794715677889435699980207033520346725615518202515897847818498256172413525680829994492282346856924955308264202905555653897687801823624512388278837544059174408380343083915288315043966291409151170521091729698781455753902190364961093471668654298120363822698121566232720039208745514888090733517181081006044044902218811511049457842869285102930854467957994464508254310684447849598785947728551047514216987380399811399961689331717057083474945922429392141562674961654718101457471028756702861044585981748368797166788515284385043421874014865723396535089744016429559835078127630291918067473663575150514951815509262630580629226794009786687064836144415978679907005309763278771019927431704470911635725498041719654246187035516752976555255890155661890860185834551245417692351119799262954897527404041409245089752339762211609029466328595766528882817107021016927266690856689232695601341670603073433356977279101511463377786204256252197186064713084818622585691085453404989037799816420564122920711078219868213367909776854427428891656668808291027255476542365013602514055336406841528977587357749795461312180988004056747404046024982197608954706661028913408536012526326801535971180479029887560883929813707697878601404485755091115022906703765952328586312472900581790394037414297346204083872346193856173980110632779875920214324590850977133195701760857127095116301033911177831935110286310369753565593635000066988476856535768320110038574175959246968077804362514371210885582286861321872600448714515071688738201652211048097346385404204879883481752658371970443912650028532807721107608197240873587703676241608269288091051488989611044700121706468258165378501009802711907249568059956095150805012338808357556184654716282448404632449197671175215893384726737261265296162935001393626122377745757726860241381433598603323730155709248204095622057419424611404536799085924246028530712818869331879173875399222695795248603674562730654274767561892262495736441471517139715693877771794605353915709682786281436872318983990383177221900549562136546231060104980574424156520767405208446776797806734235888507246602967637132010651512404198979299978164934088389879973837130840731907846835361030765006573714308599790438952801087662582763726208704637096186303971498768769763021957744898817038998537934923886293237041609503464378392111804489931769898039843266405617421180694463318914813762507050679764486219515891912802768223588305911407541440629588045349105352429080981116000915492962289019573560489433563936000235320360968263269532934550492788978282678431386196247458410607726769086670892492266109407637382358191283554988161896763794833130741597785858398117646086389115010894042631879550039951729526777081375690835801203482419464893592524509286850301400579415699956417147679249247014406317044540860653794377052450574205365956552603101984925565870013457532692916510379948498975771660136709813114689191099456899471945537545719985594647261930405173279398371336270422287749740610647567647889667550399752419813870479255713861333174892863853669952777578075126637635928432687144267281573187748639621042064340134513875301124339984068579172536228538047928069437285097018309392877145560308605660557767185162564873897558316739365134806446729703999765735838093617818392291760163581087142227240500195292552776174864649231037879613484601575330719921636458493719449966198782018411380540992693923741536121394062284187627423527135190669296431509636932262728190766358750664932763331435568962803874568743742745486016827600054060992722945756507001365649567414482686340545106325650187034220616009671947092302657295274932347828146634058749602343946385867609235440941943381045463715319123817172755528168791044769715430804207383593151410981727547889884300813974237884667563255506812311508108043946429749945754069944982211030070309948978873665576171602731491259788418404128953362767754777332268196095220961657149659607902937415569788703121280023246232735161367047961835698408601134953136019950942838550438079123981319474058082844710386748350387265417719517551252921782009037669000032394784213282370707656959197192500530419291017156550507138398137255302807503956998606216218219426991445610962074040114827336307324411773401265599092610994578463542761348170907629086353334111729273263695098880417415153694986238813912033960493737719249895275092805688916929028537905876347993366369210782898575444833367839133715930761975074318067269565300059250705053002437849018929265931207493531843813317489105093560240347183827872261303512731133598683672900359040214688495840874062117913666229168282084544605549351155701277982888009199948776539738465858058964184008995978261719305434528948235883524096774257943147094651115903988819378201504683227539918542645217704005175584583419227070419932934509414493933960344579014321245958995751032287302195422004187755253700643352818368351887186750693064820564541308119825465844873882615324832537189322128681549401091975312177800790419251753067346134850741786498870795270593240084716435587263220442552323840492318268245329840562126205528964053376614191552639082473428389713147921523263624527185927175721485545619985409952112766130833129998640349672326380416696916079494274903496570286832720228937362485045939027790911453354657889412533884568481998205939538889976847695197436216991409783488185898860669714824957723458977616197646760691438553606088763599103704536579176058405445937852099526269246870474494350564288948988577926332313846736944824033178397211519924663209743610227002758584566619605229690577933464897516582651614939979296993494916736990607036701141270272698892896198535544875697143950364971203144646647795029931091913843516010405859817229455611190417455791433270350864087263107047160227846049632906238697198095220001226569187298919939488225815398605367122143068532437176594947262700470745322364054913137893735149008963248088639774025378308461568573203940233382817400879493109697752655674541132891492074906878334940894918118168742211155782732536863369871417320907558645676551373935982473369386883406175404739550952262612695291163308325852649343645531906553564537361950600057779475921763106093086392504504762234056624985698108646103315429992659287237596685164563118663997781335034781660505534089301043978693029816083809411895999575957463762797535416559292166007567426862801559369203257205509025325061935112288481300665504166685260538936501535598049589191745643021891916700360564104237145095261764978270123709984013567941169412812438840540218673190993274927324241469269178957445122616445720634337418793918122911220839688558665472650458268835453618250365966584342811455340010840937069546117350306249216400977524330167830281779000651566807421382732809388950783373591411625257559035324673163240667851266590417360760066188747261304548907956343425596919079467025012487357978329414883973824074342142079670608356866597329615627961574640732045310284583081804097268056729411127686308721462261452694633659959418637441255060343965198143166579319212081384897099590993367594544039896675344549166945485930016351663672299557690462128608157633965688868134046638790142033581865261767182999224380567506602579387223087408454410369128094634644522863821304051556497502310950183208359038248123889571924727979605082042065692985114689852069023730348656275135893228000342017676584354390989510954909329396826467353551022107786871545383065074442090264709166733261551358217285677858812128899542121643346372313357140040169731007142729228709338640758064278196855041248633909050605007237402998286661077987793732382214025481191993192952673210191245444636538120607660780546183326516714276889360692440775793215370060081416476653881172478010909931001707970168797080049984911270860932978284736736143400310470951190185322558274909994462511912121425472391074136855860878423944850097343501740977262842248807175206545569114437236179203575691365923355336294581130517106026558153486502923325752562581841650633604298354872589441957502694840804098753184431974568280916896972122071941727173250852814739054273942361237679617461132238593637889463330057188840402539862378197706687292959621998867426502668697257888644555473162423409782435648742816929970497789725884263611322412480647282376130318376277652982717435474103723843362976933051312448511866687189034680552308502327348240325670634920992070021905603967964491777873394687702282454225734686483769438156917617286176577242220495273066233692627231932282945845427974368341414706958807339999889879939433713519488225219571005138846104665324081561925880339424792156406078186079613355380876630141448429955312286236543151330555961633528100053599980485714284083139391818878340167887280137329742382109848865670171993283119222083241345628183635245904566934273972801966212525280498884389967189961726832638984336383397546418851793194885256997994425605033676882840439007934002172347102464138346381730588673434769511180305110123649714264479556808289853129485267016598484381308640200089672832776802850784082884861009942010602387342632109771167002455042772796772223292917195835626002913135372899896665241293978186823167937709454751158434217922259845825818935257232518147865674917469000888887057525151691005059336723657228388288730759263170755962069895244940312419939739224363171842216149615504376470851626356579457988804647434615614782098991519848474789339732121469333421291222426832024998978298824099559878366800058370723094680262524542510432604401581855046778627057489898061339753380739319361254552637983149779860248101331952158873738094010464991643796409580982210050399429284750447877982370575377133973478816599128484799784238602199507909936283050724974382225616624359878668827805527086736926030069749509345969265236265384530535846870718559360929775013639755381229492501351029998285464839281655473711565476221392111900148789285153682678729754321902498467017253637025647870721464015384118303142954128795228064327387981491958158266655466969770632638229441551056575331932347039318120453244643900876795985431174090057169185031801270720471770296481706244642326619038043711450342630624360375564903610949841082048535092164936843592790155755612655595308069901282925853102688234407864360687805874624966310931133852847301179178444957673868111391407504862196468427892045096502154530031796356050684709434222106324949548300400186985921472639623536006719403669577113115656771856368487754535824695558880722995485319995421698047872642144061326273683870333883274321255006868106017299819653068252981264009683522678200631812891284810350134082907135749404416452795803819562344963099687353144575280768172738723947306139312337195604188842051060483249399629600594984650085076608316830350695579212010636524187418954429958366620137363909435925857421791075390630072909132170563894308625133809089358388849105352652274592373980233727281133924024939549429005805329379505104115764478682793541514046392452833765677138399356382430450064475795985065294703967353014576909052803146148023346444391854463407219183959796133062394493839906062032277200606315696450367218897069274814476038526708332359136584899565324987392737604178371181464178486008158932336366711927658105888017041491661823773829305638243631612144309147846817754902877952965040831453268021155487591456859643660040832281770013808412173566530032591801027822889683558968650643471292759139431822698786363977113948109507120532952257184121341304867531754353236468079992151953916541651330546480276110358317983493389088087925152280372483749885451345479812836393135429415499784963393836739021170698272324655323159130689112519858529157030159429174545220436000247767338300278959771103138229136094847819690954533161669290001060142229708462158740427487596557884878196211741596239928527905495786314171658941167720545625716810353496097439392900896273814556440151270483855543971108809774035097620601532062888814227156958845175717686537126656173079002088776269242327664222316023949924834415295853180212549829167598611514581101275244483459164692088754178128415797849000795804472059325280650446713515950213540191575253585424592130283395388950404725222182057250031243412628462795931479039186587058786492467703367692209003543253206193177326291920217532215280433109602823019890035730638358827414256996031224344116871675399738525715345558131307524556004257026013158488334699441652934926484910083636225290361793069978438444081882280112611085032137918048093140649058078592708354165087090698757789219935533011576276859772230106767158645660481711341661040310977190856740390378466054440679499348660991712043073752758872244609338676649818992549015549296084895799725026508467984939742981252930727848885522263786642827603798859120222906802578679132096584222365767658083931145284761181370824861635617510630977709079083704098720775669505734790242703399397104795310859890274782350075269977361596591047029162123675394706198082497541233350963593654567452670542738735487845574259710249304920806020992496076029215304794836439207954326243938921858392809894623536674913657081091777979661744453814527119482309127418070076270093020517030266842498398750619992415914884174093614527031420919674334453971102506073752672640465005486019768036417920501293854196086900009977002241747654370772459169092009980308674337667613052678743524785671120806360648794814307065039709326134361030562486110247617974571030950303248205343397356666337559939226702141760131123563035943829526720635512334137765974583414832037845512092487175247844757614250725450714538384885414482782738447463779000419650128291075407925686253042074392324344167976706730732899895750353536567697592349625044644778921869924266059038068485483129838448509247947520102524398447990510232658334508496877765553781485909996854451725238385074382980137679823527804724636871456643423392483061153998118285387606795144321937576253885498883072630852225342825332960088694222631825378084178707192058452446896835022629087469685187315843619992588693819884684157371832708006944920702046455003895953463385153765866652758714985109018253188451468007849035462548063635251405119637129473163465168549248978578232545287825787042595336493227393282581456382103897996168347444315643168738489353058960647385864870598696846614285474897442587419769950918412985060273046962749095381494003924165194944904767804856434347014434430648457647869663568607033955695054025326890364892149429245950633597770427678539644662656288682730011340307859727357709308616641146593045675244193352815785558028955632435194453241984750235288947455878058190965923214517975091689443377543842152904903631060721521372754925266283368952605934613439755266677780369329810934459366650777295250364074471034722566974651050192329507343594758972039890029048832124140226850979482617473959779499593291106771436121587559094377718986877567409909248451860484108394542542565935549955921949465984851041894089503687248783639724919944037955710343273362607874442887959146962177542718274444573017856302627521232439462258948973858193261796106155576290082989440560780014420333710943574631589870182618163570579273688875179884888636535186800071035274774061255113274575880387668398832029635734841395646627929979990344137651121126078284409651467675518862878256360043385428744000291500402285799573793693189759614371401278088730831304662241659163146933050718912811568984897074156558843517798442110465559140454554865950003913648710940346659545696802323268021593586133813611647477352842416703150763306060819539344161111003935360332201063329308577739643651686331405442583178297835096428366744176405481214587804013289949464307097865976547795499105239857226370633502735401408844482688852943942425806123626255266445569993836834482919767886599867053243916271233963543667463531002429500872746289619348682759911204003726225539800662984086057238881127837768997489126976687629638527340663767590736616588667608756160731971859516866200713880797296345319721595200593009214354161062837353160023590895207650655319023509347340747028973824505557108271373054915098110443885366555526569768566326942793879236947386888491524279192369908969116132874400967653648684190171259561459749401066493666229136047848879245006404159177617528192298176385572529187593150420325403115290306389519743336239812693435435758220925493419615632990944392778902346512814683468781183164135620316481678449571036802687711485180767070227586258088718232755012278193813490163169151029437032429860326237002768038592106225557429646642482958976859312167660914242252375525889028920462776406748442969580634962657890529941435708598681112523025474619618052601122762362958148277586840646590328618463658077517759145961269501946157485641990088301950857108683778476466678520061498766022729400294134740467842343616246532368885917156028689669014227752237600746885502352871965440693074547960840894387285109072510867721292734940401673903647909446485117489279519423237367650989537634834688503018130045991641358964497512934283535301999499226971969833881000969564820914454802348932770043847359074272155953128673030727532694211746771289508211503380175030711198906415610656262158438269108010393501007884362297897229243262237461856474277138795164575174110012361651123714893958309348065082679784640913330981162068478600856637275543188523307384256955820718534648982155381247440386947276059930469566145645213275141003108197898482430471839656384864796952746282679785545327008688204297965852364724507243140159583974532876397969029277576021225797683588755220268690139878492695623698579864852031472031198722598557162213046843552057444285221307027603336737914625608088340923879416310913093002487392764304397541469968335515657770788867927375232424402171759333715854942889318736831265367683015139228276881737111861802909948344807160551088718935554539650460266604193291227637607431382969834108637817278336480017711446857805221146390818795716953223847150693333051667281709747769603111733929758668600037488180809760491840282841089936262974601078117262417849487825130447867182930561098351248343559913241264150011619095984302508641475709633145178078341079242867597175722304658999300368230776451088822838944234150858702337067383960970818693526078234554269350923710425028088046370501225929342286009060220836053025448366215304877780450951129877031399344057842686029045448829650038727108752046622788421762194266214806858587279211272713065769189460054120761766725187580367692209060533096244916727423329809322604571936846370263149540615074861304320757545800473537922787175809436037615901078937998723140713446442882513109858445756475598969480701677287126153996453624974896621507841356531876427472505492601347008196166979464040176103045135436107948598404433566262133853544754012879489041716321230715137014412554558505175044543564646321051265663917237983481970051637633828412153764997738776517852417503530673915175032737676662165931083916199743937794305401980501070838354795093840292355175872778198930771738239950488647555054217545240182685646353109192827058285096486425540815249838229714802980986925304753711748274141710946075919701162812446323846552381199712421829280670891672480103421678074658551087373096806750546602316296457686951497788200483564948710703736683698642309283714246801737374261720610438870808505204166570198216878400100034689538594842835469914368142622249056651241256815581816757319921469150319860834257078876562147605184965621865560228980099401786779571548590438725585473449485903240647512287428027144160800433121034501593541627015284191071692425413686068134491851784874394518565800739014615083210857162222509386569782052966471465184140737823590065448698494855547120672781439355167722785823140076993246675026774835456896367049295963765558141941670009792955537014889912236888139760118621384734675283275162890490875519223451167984137543603866533013396415346767301524062897732158814492337260674997335728442637317848547829766482992878295876312810239826086587541781770732656079427381427861117702036384761683654148832131023905458535329813692192832628017175782049492243298658177128136391148619747824974842758333850906752175215364107791729340393369927913358468950062036649735309059721442886154553933143931972336531280519210647813193592285752527625573831498464544607515173381949387368501646155329472977536344722277017828614336047645561695921313018627109481417496366295504949418129114666172389557914972980911607895580842257531613922677485788794384705395477398271591988242779761172981919488391533025483200248875268765819956358212860969466774042271205037647435203299979159131516712459365156439256748601028616918675110278193832623682654197790050306278412898563346093725716244421816724836817150810941970632154042235874142549532271348426324085909455531798881081824942025826504540780657589259041894524342586003689749431081632328084100148369946949480810324788444531014570857411823709582776452081439796023714658828758636948353858421349385873290935375183911599188224192615926004299955181842805566596501921296277157194114494840154841909463876162225203276640768225645325381714133484851431582688582713791022730889509410131049339158947854499101666793723454107918124934608815602486377639615781159626111409138464557231023570721228681802335383515502107723493032459517238536004891682555124746728455712919629938804559349986886572228881494624018471768970608960166761212324471201229639340581220404294561574153717654012878536342204317712281913656248543056625625936197042212231568695345611773682190342302700362647452511021412747025786547523769622450434280475164839249566383618130775949294294156582868774486650558934071919138262137916454594262175563969925974896967891924322003611013899471496804182097997259090848477997304293933495888659130405802895070610496378427782213231256291774013956245027079039626166919698873244489936902462149730471139140933080078049229376688602481864179229717371752412502919567522960491723348836835173509868501647043911507458408909603897681005302859190643309675870420261562238819988772837922800091143814118116178970771760573351145527143043547925448099231334016403795642171595344618382664650687585678758484833268686588160220023058180936769955895506154016611982897687667985310882631406365178324461100564351886748286355106942199559816779627239681876168745796442953621365759297794565618890793579697022680207016161200514006956377915871938231560651439477964057594112916045448985196707874012674323012922279907046082192124169424268607700492100291070698493887410846839946557654951245087833101260749512298905716837568386479390579792734726992500295480839196678972799451845527379796277534398361936032115686470280089155992902250403620906098285831704241468730188326387280524222436289790318141456856132996706449264480772402839745275462437057106352522213711328256104059970507898468607866682636304521954190235953340282138267434506438701760385419840214822296979942250509313454446115564627043269458024587153401505043734912412200567093701409887637683887782706954891603314661261737265766198420872373380144266697644536325539440118843168507874877955212928976016460250724918109868564012484327817090204228704487628297588757618847532499996878625231043494305433082586395449311641663597657195838274496727060859399610765755309318698337437349266159225629420834094739206289784490822137625500745986485396475798716932495773590294786612190877867408233357720315945935775025919811496302394205791221275412198079735442577097955644852009015724434001287703802388730328090375519617587633123604073952750810135161697153805947997518128186806870045272819612668533461112456086792363424391853695990880704839471490085169682472448195352440693150004419000702846793204984041546518140848482974141255850937804028688906172581021942860097097711418600892268759702871409711837547824178393848099371043321779077170282726144437718270359472232803685092844579018282555060929132504874861332288290519258921743610068187449183885855651548701725491975483360110986351000237408452861626830590926285817195717705260822738451670658223737537699261162926636479424336741563290548593162982396804919692950784053893538883903654123978644210787871724487645677473065989848384788229508265651286438761227800699992104749434810044141875522941559615395804166371887685273384084474681255413322326799683084025485928046306044900131115748007008852035320018010339883852544514159234002693556161627018916146638682939218953351378032805039475736156275181877587888279838403529007723571507441234674613155024238848621034362815629162964514987974025035021826185049514757431956815932473909295489584517296437994757930096771718935312269525313229612744503224060525048332380771096253615100520416625211000860031694567877508893006308188181270188957588504333785983441418924589879484577653536235823287554398702311752270441377174264292383672961582638040966997996607537499830711433640477994936221868877596421574070588845506411794034576563747795812329153540958855200549691865653354750428996250556589403953461336184391823638564035696066648750699989268415005376511331863893877470710404137260953960640572751070414227841744074135384218739772790522509960577270289528458107109552331702026888209639805173058489209696180130660351896425805493611060752486938251607708860181196721358935492839802284626030986558095251577441980952472210967729250116258016755456156316827872706017842332715895345830197412211752076503095619277672387977469075614035724447449681943302756356470337121993694325514391960487486699372457231742187246252217132586708191024185505690193977109907752428497009143304559864438080258347269867361345773572747209138165738757718555061048800030713053777577247987216304088606471691988621096003883282287938097626732325625267840069124121474196544363888463872770519421052217647834635917884495693245935096744175083980741992967884062080640965669697476737477481309870556808870218252200342459232940206055488756775072214272227213337614235620149800037420223810587086813819205394461554071253203410680349174598963211546654955591650699886551949023337201768367242889056093269673078675586399123436297755500902230458693592448443368677583436234108212930793664834536836337946328514851038682089897621780149187646809955018532554587341137587427325679945353543130600196138682922748861584683991610476143537404637379632419567452835853212127463939313629880961254419784476491221604213625013348380228325570542297442681935435667676149323080097405149432458952103621339447717929405294697160099155765439897988022200191538516318039484207634403315047003725080127654716925034737577668283173966461768249841088076083686036589684821874956160748579443963739198851220395291974516302509107722751267546217578122576386702486986667462128396442375516211330090744081845843446153999625068326561966343522823132872883196851586787496707675238569028560762417979371978145501743043158073094954279988468663049831380265564072567947133592719056146582620018766376722002764828773761547343554896784127503174055108689813181229907225246793441139069592122190748818978607699629048045525947507816458000474577970608390398513106472140695439373394749068109285840380738225371812266072913359192450260814828988918284089495353200823338762240178877359925405171247863149880693658715147559487184322884991441906077125364668112611496430423354636882845359620859817641354992076148453750661519997359456105363675491328347760077245592144840136158427814903309221537178811435120783011288717669271226481124589088364142637195385813347853729238127445175097469856097690966742617437950863482494212883689495346049089822467216507113890264971364588690147866027188992356349970892260325871711201413417272395466178677060848210358815809528410726555461081817498320166373621222047871848215529270767169454796202383308171400800241771955190379687617184715484714667605563217299159179612750757143551824850803066626157677903349307299992482272193162252139058981776618222055841709675127637212607041021590643829906635656674380649871760909085481243789906332951091761957742134596701250466695517197860428462482512572206867305429951205322743377474952653153987426457119043556034607325203045170764570891405125312022037241608646474079470336387407759887181450272919521857354632885404074730732238688829399684293089683510324573062766936608202693181540756569313089250003012726160085858153470052639091361036721755476126326752013434605358399947286324277374801689096472320910849955633223713639786671428273834027307674835000917922105754776643693125343563824398619689548596086592651651652047719984402413553459105868625987770889476061571274042931230271334911478749686233221451973779297764340911527208911905208865203371220118706221439822114273235923497037164387467487467731904841116257122880558203726519802316648469291189436851800199687094852158943880197556152419690994548645223259286928074871171497516736977236477741156724392460110599842322652218995296460221862325963102945468000776343699239365528885347657537411761210311510528727991842783732250464641358844490394114162718015928618140444397552654545648337325467384693982240632986797310917825541474827244552730739262880296556579534328765204750965810569327583014097743665807895942468605407814832538452102200656688040513473491511251614785138444423611150223709712703981968479083967495456087245248441954377042975829392371400025326097364337166264864509179382679892241990031263441721254784403572970417587389802456777299156772591612518403491426062975943399378341129674363627965194334731398494113187929077856340183212820497308457878358423756942668264366681883224072223350138664356131060380249825097719001643821402331905593198752924022477311534577755528708605724898488833970196581314851026003622062320797130491796808322784398849479817361120249526637042118141478217225292405067618722154733160305387435156675699012198702469091589338850507891158695546072553099823572385036517374424228649044314660673923560858779319567855147451432571195083418897797984598526783056093228212187639595343341364069912442845457272077873211137919200909422526473692151719663365290740321969507185540909440459798386395270196231245046566895847954865479216594107388042296851630407083046149159021328765164077993977790792118538855505913193422240827041293333142806004206574342169928708108481396518725589785993111880028168869791711144856322319795208903462976916274868146021407584584814274099207207412028825019967514735367679808217062830289991259840635662358484709358873562962964671367070236693652742524672084607713337517204777732071126038642185319007768134432726908558186172862416308087296591644719710181107040538489571524609463272741377996363674745672104204397320554847778191197201823224312564034093380015186819886852152371221921397188209857343558116773168238105653048750313903501394011768095477795438428489153916129361398961041305781485139480369318638789789904406878037635815849663490998152348636929264390585588700374715168454851107752658681845304622925513311141375352723448767232144994828781709483470378484831535810013660916081043246819268567399086969011940868742103024490293999412153734825433394917083298317160734157399252457102940750020289904020587655849018528967933785854507945235262860231269221730627601318104176598365338895410491270644800939817596691110619688424487983961951001551581401302903298612486481444747920486089500572988172242480331966962347635275079390814889590534304982957908160306501440103723309566513839943250473684050570379895644494302837176376391495117765866470240627879839791140892956762563130643686277353204192097925219253268552572979555270440484430895897436037208982279215601915941815296408044760711386363263899661161546744063302201546665735238239678752182033670788190707417222224184049600205354404476831189988166553050768078229394442310302704490060416035674366108864619211891190873174931434884634654344541362301080216667366936070553631306449558260036536514117179774025084963550711834715317151855383855988416766832152112073692776105619393651371392260718578540457683458283294456600888487367108690088341729574852514357207556182651818249447196087419097608517831733730438025798113007443651321433942202659982274951555551203393904963239527241413483610441873213861604773304167079345995924762083573576822847594289859897259564905492611976366998687741296345358558710633567517528313459930934726110789961504013347749264513433594397471604229939119896138042149107137118128259495483932469528046789935153331314790667703095896284786970180679319397502470403709724160862989926614747671258883363211062548784977837462195006044385877307174680702464493494799156105768525085252593328047572038113090830351461159282016010861751159654959390270795365134247728110051587847895002492674814500366632964461793802867690300785527046330041361674612339044089850733196766710515384289850339680985045771184633657548099208710880889581015453126626868906085277513046350803276450279810179625818555950133901411669931616862877948920143408556676911268209995905277320391998051526481725848034494037677109498411200587635631940054461760078636877182476983145299589655835856927978410097695879959051883641637722918656525661925894500446372637893881364620314116731047279863687350319101046508297800229284916513861954962254260551865956061715368142050980402257710512392896398453428035823129851039949469435709068018471422018925346770197758708120011447467420620748903019393511731755714598002426118380987809572773449006644263940605264231496484133073856756975325076625956581134520113060886903152599635909310508133778547380756964075846289117020640699157580055765658888196051369219606198144050395345490096760051538944553388837734826493414155568822745303394529061766710797985489922849846539979141695900453653513745216459616287578807858840077375046033157991660725349039980810358821638838820117076890838276977485588298820304351942019100478012452689250660894155386266957694943742650935512815030063264148592313867918225600017105080922284545032698353634933866814324168918737265469481012705317949669615500770436008478991228062738188625884903224656148335079532217166392903234531094856545856442206360201789711855903043679020289967402800412520240281932804071683214800559200489965874260947448115667480516353133091240378630093116992080398016899673610224354743707572097332141861438359918600851753974261601166892283055082004548466756109070947125461700172881844255394800570224737731219965813492470606886282903277321911102241881932929080205367053719689536369422809089872220011109772372830858898558818560945131646344121536406705078207521175616911849643039189032371025289404635739407763335409359218124160855975345759029907866502282466807983123044656710283249719453543892255672249035751787233014417900913073858961478942212322613470483024162297871680728327548481869320568459558090157927716909658912635740927256807992057882757937858830365212490188514043876571514046771571474579812416878916491137611478354615898775454506573137614084007181116145944625578609148155496239534548801261221259430770356341226738285044132785395608078509502223052091194638568581337035098551807030354364085514093946140851486383696093968324587405198052338621464195863153024281226529581138918422209836263523197384666003665346434189148624523622470588512611886752376449264002699725913147945285881261017650134170822819156089252437228374728806217886134961685304089503863958424869190779609627138243010141332932268295223887237825253085885378492055359580484280395348703668821498982062399668595499874772418580581346944535117079663943985000940745881409179288231893558627546981254829491846141942173442203470530794026257065533328878395007682645291004650723214647814546323521629702772026415770761308657758196284895829886818858238330601316338891785789227422614479132764247217251736028798067087644127664548561035546753289463456909251591808458720819137759552858707773060257115869530528355022514486193272427433847162874004559473665047067545798327586661136176130960718899653532284666354175947341033951029858997435483204097423057910226222651983743298936954162648261604509380116197872452816759946867029960853082224823843207889782807663801695732331117983054233317275993537616376352348558453793861782921098799644106066859595924061433413629158038267798315139814435244464589026212238883427402674435749139414614969041927665457310329727227966085031080842337916348388917439767525353806354673510543924014179873282976450610597533392766261658904713466669550846224228909797615432797380477822777500794285645344304736627826627903582599110933745511553450863827630468299635283067301857076877577351800409884683449288492872580862073317303283603291205913325978608889066309623599839995175417249059009956073617552441236969614567647774841105536292140929110759984092977108863533900450297163070197652583225421479701007141625785317472570890432882404223974449242029819049268194079571780875809068518016859583361889310472029202334949683559290989343706418215591772510476043496261169993512210354460665485711754217482620911956719971257511188357432669520095021465566228377386826527138410681533850114802542435057023609736480899499983635591252809673923957520258748819426464526311572110164550910942299453301255421307065501624261306052003516516676274447630619147314762999784830827384796651668094992706733261530777594356644709123085930438774869784741315357406744639205634163465640850152736915683915823451140385965131011701281559886476299734427978081466163915937937194150852993533576899703789185239724505528422614331141714405808846168952192931591468552979171991211239538291728968544643720544778661167964429098255704539114319925916068794909996153174507134942130067020376000891152255798530922439351851682715590282712279612935842416572743528856788793862173675108541838002797499211531994832354084540366609132155048725602568245157246818389848205595075955237764718202821058784076116182723176892364782929687439015539562942846464704201646892850130195371345157915669027847008312467159219571522509515134841728738068217424436610464290124535792705066363318727601125807106166687681725717476883386812369794822584924107168403726275112952608225863768654170292364096477400273933427112851932459150499270532043866203935563365291820480968292944014713291880959614525039910469476677931815686932574455638973537653992074680889899710062104006036432227893091019490789850046414593010932990609880317753129616589260926124155375992650186036352803448379570844658310605698982430754073464249461389766621426397280794726514764553350172277649956337572350162827324896855271039961039286687571123730970209490416071056002554912955360785334968873117554890949867264036114543049080665382832672757469653888572701736218739798830106558982466813903509311336114425876846535766425393177455012622173036381375414891479881752444471463420023997134216146860303246990982971089079438941442100161191086081866640830085084189158267815657034473991429999235605065347167489936018748123164148911134660180808149485146565653604112982365032642609949157556992322744237077624307731440769305846811512280903282062943598505169151863158541594726957467765706585825766075301182180907484720570568902995585352731020527897213023835469096775856003526920813444218175117030363708791649604395681003913581585204753919021974941197680844570160084665085738785266831568743547255371787815244415091845581414312986517530804838708421326658532105222730630396960357550231441647218715938346594694436218586259197542458112484804175904583223555329865444353301347540976456346718173089061709092301815046283791075703283583901629934075399416548628592894526615918483587280855535784932178609896977249505481044769391023566858907497897600859358932070641234749380898176676904707563148862346872524474644905077528024220581251912639925406224016371989847189630762662812055583078663316777351235730194734487065703631458115464451112911250296423755507763074744666076768728717866683161881966098832210936329726172648465564985030984496082953951396385212037839351372868450348314931791684641578545230133584465177359714965094233742743236503559635541313561166600215531025039889272704736537796071705711060117338137632292961708872525548700096975758419220529624199690865783578586331073036409994468418129737305580322725765184580513711905789347963778711527683771646371841942638519624922068274349522288988408868821884365628711986550100413263623839393460846581457772682135066374730964298416155349282019050034129423086433464697088522103724216097729660245941657472946004100533086649450230274828603907044597640783432678645320362176839001324834261453504859648176835429449347445496269810775842201005840495902972796103972606316795084490280940091334315156203152590933955528521525661091725110901117804319905218844585978606512085770686530279282513478824899677242203633457106207381937693910569069064031930852508146487438955297566161414173160739632251122423630248023466926651517706178330772163965400336063933822938458637229243075710041028963924270420130162529511390515244660385734773587695392229375257209667418723285451494701352595696697384473586273381089709294441471973189471399631210898714518565452304495288746651531146278656638397607133088455407502906372015121046067386132772415456786402998138646580375698707021159908729661622787387787091113113589328398062731160537882612727589445516591100019719696250221832734894598911410925337301750908087686176301641217684593417108941307630363367987348483552682741676239593087834352967312305859394783930771831896178164410908300658244248240796651723630507250745575439251524554167797273909593013929453766957189013542429173716261280580020059136908800886133542359325124661628412170197638890324032279564715550929419919461488032544472115847341985498313183474588980254223382323167294492740433579131994327718817196876975406760056533930512158755700406316093259318098151603027195565906438797956189031174132294476231134644719159917895176604993164456977899435617882577892187240453953051731411799145328347436660510334653728491121286303853897267220647022715555224087560419617186496023127179684117945751307529660831251122514403895286527019830580715754420536344486993283570658893329805310831115243054933635074771002997079736495632732474291331350864864696488441574677270720466767314622221326455535143846932720995882219182283742352465991080842371318606070031501988268834533161306164752207585140738980731375000995415572045269467647084582842293611712055559962187566115953769415680172101438756422318855409467600630391490178414522082614542869450524779742748293298309017607864817005263295311456306138481192290678170310979773069493923598634357301402323053682643143062451320271635143433507734722996355728717909451505091860512161721620854784179317575771609077638123308192975402451644478326897060096033889687342221621967259878789170235073036893588825242832353992625143640775557112615014187095942810847098958039930236998824784231246701782911487446596868469436806618936369903297517246856153553595059360861182680098074950813916240302816117242182509550645905906737478690412410262151630670463038633052372969534846697361747217862279096188872359818479194080705896095211632091363799580752227802919034162111736153263585476153769579725058537154367399037456232185193492662149031246909567355938474068522702615657747141754585256993129542721252840252294326976442914029491332624651287103625496804837471681406037300976494791050614231011923880615664669325652618208474102578115868966316525043701598691785865056118404076785853501039592011691413603292477662771759940047650589525921822850987594253364988025178218626305111930832260946223433249839062630556635185035302662179540919355331889682348543193452186594494472923535072912394598124730679520434579390764542359646929013556907787935940357175828462972815722845831209852592224574465989183795079200638697056353284263521085867360910339350409985674498106172497069552024235367771208367945567604176999749452007216286543546048910167570221860727702278627807358424609639512551930344913405252856408280797154337273997611596678730768617316288188654531501065220205263326141992991850070425536726123253406900823975752467937457295887842846412766789220702827619483423520431525838962670869492065346795961694267261125391276235919560015739605586131130549858370302165242588658447328109744049708020453721765679425599005998982701219401333822929432758005453269487672856682628069262314657961666094545917969482527113124095395256898085367665146729825951394311918518830658081168450648877767683882545434326751994367292075002518433164817849416505734271742966772683177885478358104370212182535915178755264558094764526214189675883321596304023902869117934550019918514932284855158932413180627608208317399024453172447120234067743631131070072107093135700042824208610321799323347195280520985550837130448917852694488153952343457232173709014094116060447578545619780877179211648194589476665669437374203453521065174930100846805455255188954678022612430107407024025805557258334466385236843841089268924832102010463006764077258880293636383318893815656355656698435356466892846017649884779619160674917899890400311802415930753133192595838289195277126680624897447284582491239470919792534769375043303975433621547538608623970272346278165900721937989884676590790350759183941471847302152539039267780134837131165827444825508813992897875077963342379229255815934481920433226358928456750629580123754588688099710191965895236651574208319162039123950266664227328123505275623406512338559731133852213253009263560918746786777406287489732255260141385509291021721169414217573290803887391250947278272377176669968493293049898350421050535547662516138080807788370204522620280424942115488578002162112657815861199558926218136666438840298854552718520008493448022966998155420325001750071409121999907855946518726319899001545220412644349253148563050362628151427482260328344348579297492341563903031740294406029019249100729178217541153041975783964096036751446965581978283942349893919593037014109724356402193344850608181588577152393374258303909076836988121171706239917444242903241819750707989405617118253004801583804286375829848241806082362919699662116243973752555775577088299055599985896560113582979196176159774200774767601349785002073499647741279332021296451762644899394272370590630077576606861570174911480900382313974940994048564531429455382461750259692741538680085977095216184727667532240776821653232985772966114929832274548925501420642163736058617372160095979978496851251389327333751562743535585481356725254568669378644537554317034215900820364906968584105758716320538559866598965252488866335928828758888131068262985164636473092146611618334261852428801136411474028299825256955944440492960142202187539393518596890865110855870838109302275542152457581521484444460584480170572430278960911841233469221305574985510621771335695091262004917008869128743045601601457878463775761351224642156887127705491616791432300058606952506746292480952947687706394621257042204251426526484962349897979577529246686966799927568422564400606261328123074174099136027415007820399829802414819569866320264010320078028434274650147607385841580390977331750169290419304822016312258834571340599472878643048674573767387667539278113880280306654958215519403722404675197519177127790799234570699529058696695268034320503000112298954727289408957316312867154036783488192107269649357618317027112356373599455352322436162920249947288605067721685544505121687893948331259596122910149940185196412999508631106541743198320100688010479733129256602426027487388475487865395654109246657641426478812231079904833699422466831528682133243009618681619222004373661685065744775249382095134839433702923210012503736153725651032490880119813786695457366698772749501598529737418152238206227378048744950568569516376513271554985625822800763090924471467701108786235817976887856552808526184820937523928271002953279745281708412055235147259651846458630034213594838257621020498798150711876964316042573308805113764890226154145264378701656557123074456585795081236094783495996259832999608788797491843371792426022575957780526584450566440553400842300170719990414299201382660676458893793584832456650665356771398714732773706997456747545373625069244935647353209574318661851542704503673310047782612700047656384992684655644112507828837095731204461509688484796440297362694420362636111081774901579940025783725563692892715133521431185572359922827579048745472892166328266922872900684398338628916072946080722802951942851231920514212303855679993297171142247561628405075998213798775794183574011445448059872144141609154525574129886135725052130112589686709615238006786794725969370352226017422058625759704618983082689440090740465664213542735209561625074555231187926220578935465220608447162695633842309381505528822245103360737030705624094169021939637346837355767189673213027986229530500265641857290863107276021414020148866999611392105737593372023202883489196265629030541207310320394338508216070718233193150669104515145589993419831935396760672231921598168813188690999538148294938887105079805446579177743724737368990188305791714242127503117074802905275643810393843905681774943851415880428085760625961497642886117558903654887778961513357694106392899522592074213643791981619921989721271377480239682741298148683122854149178882556947726813039726013251725922949135688769247056414285821401875611860816803483442571016391661591584512083588543562780348806639796545650769205515244483677631361967188820131623056912419849792063970435455185398368433266051653597148832410410619205481709272076040679376914656597216435905539291207579630905279294553318907921358993620508459378481634363665057546480133546045612237837247124411137864417895130983367047210093179034691226552510509013371999274829070614789838622302188910281442050274109398270180483546276037225040062953131457143378861443620951733260820858748575806995365218077969586153234712554141034365836617174033772933272585389589164905671476647680363757923664366391005792935076803586563310737932134087669055386072126738753077892356141855544226386717914851126426514364368584299063921964444106087925235936418098904011619984734570012564336685206863788764272161801585438056839819332757755507360632645648593865045842836281457025628086640941933248451632196484012225797444012282264467818986898956486530985782435080949923750807109749863111394526644763033325594418766874696872314762266449704805549449040710065603316299490795362134352403006764788830171128266255438258498576579151998736713948984301183009147229120911324402610645498914141363166949626586227492626224675374130840472146275004347256805241158136740312206686856972072716757561919549749693083919830564137611077927940641821473247339183082641999888140144791765173988927240531640705576356014691129711955547833958789854040598596584879934244378538947141794809515141395860966090015204806563236288762995157671997483968623395396754975157315157100985549367741762919161041657138677734350688640943944906772206535695500628809079705557922750315512482393001795237750021507493368776278042858741529564106514738368432103311546123885225316848111824999800145867906684255289801570808673435364984969490351556044856618213818377011917686708315366925005829796404831221911810727667446534077784120324768054545849925222099837148192476001498963893094357185825039455433288935020259466429057978921994122442750975967046957182588708680513220535471740322403618669117351264562896429032134963581715907817487796342371461870500381223250637162452831954564252521777725107278312011118424163295559586235363487641195988380137030294783080210594968805331588951544156497384969348538835463640062855288813979889229231460817983122243381110078467538115712265610457681584762073285522954443655737021877065077604551175303197973448940249089877391990123714022069106991981103060113110737294956608692322189071303986663382845033673092036633730005619133905276439179011915896326695196170175820523915019819337933521557691891440422047209340912477852279554656926876784402632827155366864527524663337177505013996526699107994984934624338184458568670572607746228906927996641745543571603654750523300959915650975046140002381811215989731411749991756957769000031237056270494658577453705330794758420055105495257790807336250905659018874905663885958083957892648117369020360019667139306282606166464003905539568285844710217750279722845176146278281580537034041443474682412926916865561592979729676762480182998677489940170659608319800491094525015841171763056784633155309693164714742912231592538348631546873199306871700938257139874590173784105022485374515558654700959204352234522326659331226095197616944311385822939680464568261627448258420301775084582756672813258364282652794080898540852379810058966252674167434037035100279334496537667919049812022259847321757177887176701249420213542033690646407163504912556784709229730900299096657073585627374930838477177602775394791606248889053106693337306558953151269428005494518624586151202493748816173299543109685721933968870030950363273357415012891900294306477653766600760782703381956719920800149224786562179335595073743178001032859652378696174857297392019917022527631954444293631400362398646825545323106884001674704897146691053335281690023800424069952615111909412895384194949511721951947434924266853212383631731696086532422623559779537596415036238104036345663124198775873553212830410092414162736301578765437988485001859816292403832726334081842461709779453212115627557540636271636893009450050564391460858225721694103843872750103234646299633148435409135839062164544231922684058158953226295695036483797165293174276852344495135555941918102601726135265428963308215419746282454335832845556762285415987952329143790891188336240796212805385095202360615142447866291431483530126103803704472658463698460198408153136544351907251211045628369763842349847177041407378690201406520744488723641079104038197766493272619557776851291344611333153823107897879969308178570485956464997901799528987332026603516442755805042485610816203951430956350456659216371731767841159331199471674592829312951644032058359419067162358050889114047426032681958535248935930943759121949252798300225732464910492352171157387724776762144072350377163044074957462962903761678844799710162028991626010553106195304883159528599341598851357829716310481881810423656197771595777017382534025698286321861163245153972264920481465672945483440178110097813602330663386293919829208874602629139227025964525958731877219314164203015439231341537789723569817274593168328182595082938511160920376013174972853721789910712200524383395308134825628974541165242993562184578056981580276065055090141987553635761773090763033902621543549468996098865625710240621368511074520289499214791715659487476619779570461289013033400812569394272199393214049720260669293025401490203942393650306061759322606914936633137937694220076574850625221843199563457119153289077717184385771785306436130394800979051280197909493888445614806092773630649456702984218096393728609105215481137254499037640801689001488899578196312793605532310604729188368504526287743987648521767063276252009427979158511641845457800859881410050360191613909128647855932848424604538394610016806780367120825537514059453096461182671625241273620351259364463899069164346157494306618582002005443005607044328145663254777994916773575816031291412164558465729482995877381318455775870355931685408315111911765375047637419159481482465397923178868011861529694572198945701775799090537761253348566929873546247318555617386819989346408477521932310857128917871915760674925223877407925430919957028986415131240787529525024393173400218209591204246122729759251896922394682141130633911445887958403308219409295909210482851665922441384226679535139320727764812100497308404980631172295917129558799264140381542721134625437819909848655726538379978118670506593032940470000741806241507936526978713647816676931334252053564303341612859949418203041522214177979407089176088471921336377705501028390574644024666575727699098738527083676325460668656085900320577322286184552066200297431539185911850963418214355291929701624602489254819817016028187386987799556239497093420221591053801513175318315988828138747914474480081071836578006069713726133996741417706119182664301533069072585348195138186854064523672385252319602745122122965913532421238900344027292729730375344994083581890524200649144973779116819945082150685597329410192034670358106948381401576432964820603377061146333651985633101124361052274742288941032227509289457857265803235025532364397824962832732790477161315608032287012670209399919336029207784490455047676483145746208364084219802485081640782824231358278977809713073191388185810861299176960523884567011326589568501592839136104206718476088687970860605069743226364179003936766655585091510992103676882469421819435433952622485384079411046104402616685215431999894962805364202231162041978271288896368699086820650704625817933493427183499936865030275923423684268429171093841185707714720813025857337972941213109427359584942665713827061823775596826091114165691351864885577366352974176539906892961157679026701774493539689284017851489871052693775640400870732165061193666245025962585348877498071949893549729684676386300904720820544634185860272212545044294827057788206784756312365286824271617721995264921625395532608166833637324210001498740297505333806677481089716789131964008780326072370571236065586761268086890783470359903128563922223079915875892160916844288642437806980606354677313485022545356979019453493507164406060417951415130181474165082812342486734619902123711257776724496953501671463993495050579772277599695819372759188589717366502035051611176201155650555679236358195581895189574318992943510452887384970302025250946234000131208294690870559245667252423454033573623666305967812117620197698293821675075089529556270649763434879953976123015003240656504994849081466262535572379813236153400989123544124478128570544296409729617047228665033078045807305451241866277284603435970507547835251574029314740239845161709400068721742485780132155202678564484487182364506798351376285554534166539660023861791652454499889957533722112738734866049229120669636691516536627880210015591074189330364217423760153161985038866520559390172521347252046276707644604309070495416904223474602829082617463318744922059964622608328300293689684135809647801691287178482474351345183266690012673469847070115806880734559852463981711631212207736758320083504058626757421263699749167946569212269206048455987780417939555377234058291772305914487509081392288953476160359877920550474786319105429981172894323689553768663138948490608474481615442861748182256655118526471114666081477123119255242270754201606687880452065926933675815083564465419867824996219410260095519390497887186322436677744092278850876890249560686569523523505551788451008146607793174743918156669523767061996240489958144889643629861016852582075203549995452969753061174586804537864536307546186036768851844066605380522348118152050908118588342651654009650093147139265045680526225515756688446794833112150696288097907276465257634011859842329744064902471253464135867410943191590848302637765231452484413426514808401880596220138107888325250969218546055362964966786496956227115131953638163662173178274013663500727932086609057032254913248396696003280795081107878939597260276420138462722832191615998140136719395422814646633939565245519175153505232917731693757794556183302145097265102074653443015310309746884614248965969946397289262435223407571161133460909482542493553381167982900948240506789304090993969591251974609985344553422727409902628111716064132439576056601898670303848669497363308216521965174786108149301522974637839381544851404481237446824302337393130679318511871889501465261513356430008233663802884660499155942612696963204938276899175906773889531983372424817813503278785138488465385418832406751836758164400930239099813728065931901050764743249457261948212006211019745517766733432772054466678120894935134563419217516052040668675290028914845497946451241234886058292134000879426518303267287025623358365730591660963065437564804876435838047093534020421843373569234425178270745113644871514364191100559334341018410491690592325115331717231799372585144512034645570037081328625442238931508911615322344475048726653584963444662249250685850422437397902049948307317009759517307034954830443251020887840528853860456284096722349591460801818491051735111514713028458459325295442313884677319759065844452013576567936196931709981737521149192891169902642073891834093921897577854091312024535697995062390305458078180884630587118629092790564307630903002648268461772387513404136003152854038788664181386772973026160180971544553071866017460180598168895530595886860627420365064934319417015445074069877452061376172116196721930927652742631300426538977896166755381056644195516688079581579122624705357180729935860876839196923017902750849304974476455155214830625088403214549954385795252407657764639742062777832676498118650488254519892153422814171318230149153649491733766108318397121656397128882595853694143917204640594849626914899226098106201160528385013000530504492440324622719791017554042043006166785982254232084113484589503513760058862308128312347093289459585409723360621972305451440556065300992059430299017337294876361333213519744896660165606024603875560575124107297494485861439439382084974845749855464716429048367554120221936073293278461696463253574178858703291823971584086818997565668987388725215302720369505281726983935879396747701416300617835101898595499847143336788994960613467092596050013543549861668793298956725585975172476677008849983603329381488694236545104229300671127254224298632128806658451434405737300019495816937441975217868727498776570083709271559400827827916483432987809195687980879363391901495847062056885091421691439779983770741085345475635333748435334305980902422337776780068250890429217535889970534005326581131667364291475479128517301823959600972990526530664118971181457541498136541611873059245277041473696703209636041800280469364197825661941830651936566939165946176046291283189737884396481037275610180756905132890067376724819596104881496340894437731672910805929909813211914964991569067752118925252398376926196103317065876187797522865840215456982634277444983101532096305380725740109789321702393482955436615197335675037018928622556370261386804863521799065572630281532750131813625710457018665799989791245708240940415012031894328188037078079893743520423820835562631833083799697728635575197320116883601186863645934534335513334920781713824887462896343518909237355725338599599489277541311944811097140414242136081249404633273926577221452645807750118575287100270328576964276680722521482129477553584382289722943438576474227839829959229352708481107727876570387676189117296274973698068482702602948370610589055028096156525056841284819058639648665792945703044887554347358561052036731937411648576813637483157938508126734929071856734880724134697236474345175520211633862744325252440879582263016549225256866301743022015996235474226281953357636084452745807299672052628405560834604276181838624367125356534924354874247633921810425584330249820722796705439916610804726787065735398038987941037031970707775173118972731401304899253941791955655005091991234072378276723406444675920528666483954933299368612150873685902999715998819019892182462892456331947263427673780040711462597901101282880604825339934752911626225370691841162659947285327626856711317106131250522105201391801141454971389563039582615833475799847824188702335298853940102784852285011495607440557939486866890545816527521789287781805255354043163727329463612271284571855909038799254136244128163217163163578781226792009528395503476707943654479598216960887879088622880330354586719963820963872441487038454436794496893401505513854752397265127413939832957602526137117086915463286519851235266560472909353179242853305439502534968230833691072401717347381493245862232770706749399101407988781304021683826552130414588805080218448298532251132762196996525643360458760137653101019967542552182588128812478207790414441830892685523408554327504739575755281149292250788821048587490887311559918010540566458791075929621373132041218396727855222205643923024663915762634413073370023195696623179370682914990429885820285310010499156776251168686297241157666993603635252676206187064372507485895062283892934999484706684030298610751964002428345468216476926521686840017930878419929971106155234901104368328611862846012460996186352150539729045221194969057560024769100868253247824692800067905637307407429306874567616637323964764714088115994603923802941248829794314829257255631043922968972062803814087009725078045854655017636315940656853719553423949911195531881380712355094177696207313862800845466518229405250211602255008155957155019295948762943481288168541786476197012787048943862121024013464613079590265231935647812681177606584213109007929566372687081532377818982608181287694337739727322589584027463026819217800742863879192718782073803771567619901619585560871052759907660506687548997654108496132510126594063652363011056112126654105216808163380222153152504736144542512008015696407409141733961718795819282768822947377137842470851298658881004794143517059857425442195174827003408400936255553014641716051870754676941590598744463516949212743964090182446739637418276612342882190636982994285073106496131748010868412415397176115409064208543406966895792445233813263220912972310803184623243731021553158858268210196515660134453762199863777983359139048445662063467822618605066394019259549622840004020452028212378961123646867478642278657758532915361314603468825536145757743547147040706911389969680651462632428632467029861820798852140360683953409258881526608771865217965697895212636406255749992953496443791839760959447962325810682494894625773724437941677440226826904615850129143823737406030370524110690204998520956337696615281687057673018113191633661839929224231731547193257631238294138411705670371370632978312025122266990222713240970358222446278806654674342582898887212562675052443810178640714856456455586216439082027426003893615125844073929412506851132294131777480669724624288042262377191621110271531174821553602226238325222103185231239142078510048350163369380678594291011063299296432187281364328771853404556748308758360105109546239115633326718865437861922456641900615833957062939853097348183227459813242228057487636167676945397504909452765689924233344854243414006381335033968942668413909334832413816251565459933142518853276070126745424597807873954382782433040370977734621908990476548114106368609109483160686189941492302481220136935064050660191582369732267615236647708771671412649181075815264950088187846877763840488436554765870147375914976877820040409190238846112563385898514473358356928547940158407386013380517514510866564368983983762264762271584065587924428140047128903399524332405766703367000252998847145476021968455034177711746245714455314342234249024920802011073439548571578395316484313586801427302512776390504627464608280523178227261894448419493720055424563434606962357150573654119406624975668363403444701747566950956739322938490166356711296777891166091612595349039094252915455356531755836920288011878045643489950217204460099323110853553268671366369802178755891090600252404954829757041243097649069202752147815171686111963968984207942548654050745520911576725064867617528401024675608871173196698506854981689837445054317829236745917600232981283531129619443713881186927421769301805324043067070356646408922319760635736712102810276502520542727223419715817188988858751887669292514850540676394570809542594924738972010561503506025555454380885898046514782854473861877327767593955869148099003380996152541266613603999372557358290393983130682850396970556823100233761312391101731470581880720621586191616014564085301415549231312868500613001185043720732727113409531456242059042830304311654340579696544447497291524851079458126560361755249748191402720372228651408156010686790932260814808259555249026697977531988442515622256770763311702092631958320949497346133186286527017169428954880666231176095734766851502240483109893648937627147285410510740794332721460537875548177551059755822716841069079560258781267445137842107556897723049453165886100635076208526874519749799070099391765559550131182792169154217517915658252185369682917405236790665109570388300217012927029889097451216329646851498976561451675725738456059793185469907302903038512568567549716648381135596080205577146025354214774321555562058989273920117827273015773601824809763354535892920395947020467036645631690684623487523429468228289205009970124937773300134435090267714399350693283471290177685573901444772909515192312986991142217140239870219591811179016739382211983849136709749249494077476633821897405491943668326635304365151443524535899931908567183018175025137682184080463619235491042131710173989518305994057300948875313022948013573327967298078248177749115196678878156382748208711975882788811667643001549294515212769859950340901007664491563147669699730549978747472594068733779642356806433533541494394857294294849591676970783967021051184478454076606173659586115026454933326497110074529367926220442602808466955254905269233332046339786055379223253315356803035644224783541392237133562867857985353327244690996472194646859860815660390124282121524489475442380226697831169239497148571293247775767995467544364537593403267382530076170168664813128406375865525462251727123534696349482837114712328283845451404937392426217086335780273943131576975158040202545677234220422043047773687659574268671344787900195127549254048800680971032674385176992322123349281645248185583464662109325225479209118757225066804022613773788715628454379105337357447969893238832184914084946085241462958592500941154492100756067781622712458562968233180851689256026208788243292366913505452927579194605093070002451654851999008949468505895008096728344905321473926049964568463392089379947442356057657906092449432282738320252669477161748746434535015739323244682646278374666725552484356426572052474570815390536164593865862618812700618385174286424286003829033622195986971383441444338858779939043848757063554014984761463511548651595168154197642236720571316999411122456436968788757372059902265120069757778736223638168502466036618164267506674669266589924153337199007430126229195210741378645937282432256069859005403430722782109911456850054834894033673894781795050839860406330908544796497042559293674272865067138990810067789367858778061713038551207020912765443108917559885870897920515818214626996997028971481826273472893156158333554367594159146622864093344295044807878303904064852325337182787098445620193202254973427670837253302051150879686669417764428639176993830743759565930268080896080746152018239435074124625953906735143708579137307494344445737524966634066378013204682347508849148579498571930127595947894136242911118722466315544512619524285660738075374390299728877840210999040799274909520516048259002111677781618557360379866244184669312673145389663535450238842179059976989587071169444506754174170618884032003361841213415169961437651594546268514779527344200180329063613790000895593512904983660028342454901976157125587448864382691103312291587292675356286147740847040928030292297665941513976816217630198655302838013489540452678727375001999050480233590601710922209432477583272260639401814426572043950037287174026636795785754352842147708907934895293852631994110676532397700267672612655335592176174478459427113145429982059518739962103872943977159000715746986854906140693272993797359252455991569707335828700765926477604634664779287820514005928272088016164427394595219156028555873176554752843354127704008956193823339147506050321230725814577561680758077468695273160700040993431765570090863787044465405478336524342325222037230790472492740216750082566642539401385702891468431124069098243667208188369610153921682682669540632302973337520307294131650507245059962025989740611291916670985690828456785967725104950122930593379777961021031244713496107872257360738375571504075848208880633106822030392332409357769166561664880883048978136323458622680885230055468633504433422787140332542740985748506439065763077451413049826997105824216745196608478843335831504901066451708333726569440605487481537379067544225480689087519142217401118020807780328897459995063934704185761773662182366917024765524352514371143245146716307297031935059308125177857831788852696841964205371006416747824755440295117341793949186222585829122259880029387210651412452078115794581104972937478685224221801710154743711700132163679637935752950772838815172530049428562767634887503064943643787267310057133816055162074542201642160799363068682944058971791239289146630433087691083221347842251307731656704079471796212279295462172367540248246805990491940177385654671084495412450206286760696060475259885000833852876426945594442747541641153191845355193588469052203077284997159623237657395330593746576582639692794221756922238106831768796613159904918087148942991189221474961382424635249554827246902234510389133035495027389492652317660074163971809751974689225152754746848103117019351591644800181916331693409243043232878086739478409902824586948658242366333969528822469653348069847770895810266045856011132160003561975460240729792907891923432689058312608422975634652867447960125025450656772341131023665979561572904793517126209151192469500931026913186101673036581218855772227133549460414740436576985541089622092005580143543155807964591590302336707219416574251099322221847419823649849034795224224381345539907963068664734720364329329836546595027024335540498222845745080405539004209651173100979203237664634487893939782049049626138844095216056892747412324814467026460070155264288484936403127693953480876250370921407383620514395703031869949014390170020885297150078698840655545462915948904618494776861719525094687217737498677791436510440842343639163001018088691687567745600885511964636502590292708597779927095673668453409314081673787911664666256625422751831099647785922757301097797925407351581111567135372126648488237660509351439592120695593553637048542634033175635891112836263965211033298671162284956788478448914748617336133403980652640343710199727989570500905917140872961298386591721845653800891085254520442613057989145785635216966054338553277104517612496738032160112194525269186996233152064304524148148474982873961051045727719291512108860032910661608651232930419236616976318650314739936158632734252543120380957807497207823507828852650619485754521361695075780800819214686340715193235878816625964031485682456434452469116473570762239687916012904522389913977853396099666156719336853475613072631195507356882774754987822116956717763055069615267500331940450315080651708630530559782144400600313597677032849414941318172056088222543756687643527201908157333542981509620775531566702876572811183809157595827755270975437736720393121979804330792624413547587229399934725050594948640024899415681330051515459498196983917090833050031722478527133006884527822281004410189749391970654499661510901319739170772851366038794765993048429094601487700907230820145361721718891849536697057138043586376785936398593571116397175133368247029703955180265631407416120041174665102592418775106901829823195875681841731776476146027246416304492122492057530554755685592579441531468883645821949342143777948090646495508320301810541069761569557352674863036090733626287267095736565468145241285252869210113817476716110450184461251063562971944958485288780960134848105786045265087330776169946043897815705818515591387457276759538220206607745879455635319787186616814337140732122721509990964395071491811352751013416500348704299900921605315496002033685265792931464534496792142732860892324369041035534436314545692639148863409531732643954943259543949151072986635455000193950179849043274193902510503889770241295220138862138953428582190849760535390896662786614916814898123188234341377563123430475622193028062681057859532900667029899036358166205318810811702160543809777299012803483024092176648574878902891479736061989671864276033587729521487376985482239318751906855338547205873819591502882700349324716593761581306945717206063089416359945796177508835509760664201317314578773765123532103456705266164622958718920307760519591546114396411209080755981524863964094896862272865975084373093992767662802473293122447723707616954966222908622599398319279070973243997418131174498321314742027068857880517632212422908135964717232274856036808001230846645264214593137947127283158948801473974703756986573225751740553759464721821310657266138812114861396493772966535478197132706143722717107078196299463292728212093127064146723567187217111781221066399411657820387340492314084858131583910023522619390519093302129897560767466822651050169496160446533345206171675517427685666072138145268876690323891943483115833051613128297277538586960218645467183276117670885408525137653013959392853015583008210437534428497632854444509477422139991701554712687968995203175316860984301366328355888789089860475466870302206147399878545947671822998481418599668160778846343484207562706820739234681421539106527054331333362632945024367903569692762495891336135244215731172853104082907918587465314027448572282069842791372351538679775874772804383442519259433215566353643714756418320843809323265626702825093492682103340916341896657164907095188292329704942175861598198550308205923363003841014514755805749925371210073914656693441483358407329616445175482887092476804879379106337766405592937279791450437005189869516008373010605739178350041262032783793900681722986104471010586212907122354755165202682951687431841868405023626548468367286946386557212575705367988586035966934757375174000262026778401211910399859470779802445648157241081487697251308265699696584160382891761625311067138098840690870302790710833277315601362874275114523011142686046751177136677499984420555735685098988279455822402306810534025142167996736180861677153654812989916310041031987312280078949790618306425515846722332393740396348663763380208119217658585650290877630703474617818716216911476240941811851763816755662809982740359054741613960175658116962495158897930095659829967498644288315815466833425429883515401845981260629269724895892477763872246001372615053103974031381362313318586800113968477496365711049222515082090963184173447595406064247350741786284797791497506642064063625475384064441911189651037996901668817090968202473580432112217946905213906322786739370696141861254696300008785495486670631350972587362413232698460041137475301251079967274446574864696803276336496449346076231149459944518517230838839654909628677006181590298630245599799770835092794977357122073885028990122087123499816524412518341791548710913990760957430827549192783353606251755859010102015448748670776452741723027165493080820348669181334920249617993006169777992469050029213532565626046562599324000943730926609632139617828369577711812591158786852071324487255824140762622628583517903022084576335186053758376170333353181864558128908107135316849314318552741990254341122762548902019633439410868568632905313699240161668005275994446115826027348984973296614489822047574574956096073441414588464905449493323299276728291581924625251501537952323037778435503239540495874676582914981843428029523557136805629630913834280609181660731740378337365137335066527879126100913916382523812321276105923354504809284789382200826885464129424598012841128944018734076844655970291478050909939335087715323393028467172419807362673569531211583030410210936308110662132772369290139649581289544587987664232095160628721027365010985893223070308062698832623109222684174752645080957626425948413930143134128970209214707140295739859214988416411972191903334126050775475127508204449612704132283616824460752736437445696211127978087246951609649368412810265520151734117178534223039597458542783277367814870958068324901852628556213703787460346325097621416770919854354957816809148180204013904810540526350641752921853315757426371192025115232144196745151625414324643476858234192996247082461409672824496876644503642258202668417130845053737464998433031864773644233566160866001723661229045116733396662399669228716484455011668393709396835167262075664773489218423997550388702753025802675152088827567475758759137651116817339641663356199190379950149536289660940793900822225907086387182332268308554594441172107020128243718744665543341627045226173423571521784119112763378658896835304464966191231012794290828589744215221932428181462398477628016605396460582746816634933277944434032294323204136202781656770874686424571206484536167825506902894329483475391664054769726603321662539708217666592831893335407477344602921801825604680896888307788118667985515643566874023770004951092684717031813105691510373414625724586386982053113944051582908096557081918817472147628347410577057686002085700946484614571914096085055819936410280346883964008624177497990288170258279056711952160954587504355252761177820914878119092672057741981763681736651238671556061954843819241821452289771144770553101830764919753394895440555533545939590167657922872911134554241892343581070669993520686201378462937576710883487045864145765215631565342542042554277692743866482672073810488004288727464281308247394717593271905388782324809932350225793237964180245219825210433091856496326949152391436956108554945783781340431037095416123182074497326663200739566455627767689688913111892199107131593303150156754639842202528816384713670879457510305957653204008728635067953004291740078439925691942386051338929321259108820701912988082147838689422624993980029792863451698075767381110263142292805081578928943598716213486612159900092079278385913012506076088450403927475539906082534614521633154172254047053917094081336544649446670639976852560852648909377259812347183383040800114732802810664582875903667651071697563553029911440100378765971545031147271311305115554808487381581728247775058290837512553269601474203263684199574759206663104484505618316276506119489670396322824002012772006440129920045835743224016978893330504654302469173162286321585784272035190272300630239220117572416321838474701218501953963983790870047224269884195548275339008495625760880580586538953823812018934040440337921117145847867117971564711500728108341835795187479134893257467232199943492113000873804911433455122382622019451668369923734160257002334907565899272699761360372326136614604799729829792370944696219050616473580839431786682889336616408232010068157919732340822738541717130220764257009744425390689210760754968740064745193148719335145223877258358976445017321372498381809205468820418029351593273295981933520716212922306959157918950070029323510484258083046407344702554837280687406892229618434742072867314912709995916092434238938828834959675093041778919890070903469182148703481908225558187929238156067316947909121568772042182029530177206918484508345617628911364509589200804379940799848593933956522858337601300951176598320817357397984145264028545631031821879666986423735646878307484976305195800652754042731918695460281354779819070328816031459366231767895418753040754418223844003353730798825710961837552704197400467002863148733280241758627154638915059247881165437247225590353724800296127073250217639086016335245713869438213984233245021494920907140801112067265694824575486152222438841395454129429784379289412807287787355445706966314376949396473552643498494406495787812423279628267195910495306713545605125014802120807262783799101209648912906577337627596947551092792422157208477655958445180658116338609874705969428662575888456591866485868628190218314801941326757555646234090288197915860230129552905389430401725132193699286020030269639812268423799435173759153081969894975164876205981062050635112787216168471228046977693015483993089429295579955078036889835007612410585032490036588931720610246657602688594383338403865855341499882072703714292779713440280902339947292780726757652883263233974314574143171081329725847189478394317398701761190786519944995683755809211884021563307165287213211349469339290873155150142613887704093915210154269406899752555930466429868513842242458143327916655546362350866095681644705962318960007623576332039876797426454937706160471184605052190260624972215152772141698008369836423662653062400857557160789961874061607592851234039576150713140799374168770578257437412078353830266103960653179849211803450417028082680890096681989678111513584757072676438797288967545605713802591842742723823271817211355981144279756462124715910312727160716304368019487551102517027240238949560382733491198817663826148542998104034293907692996027603872371486766408204546797064177104097712698549994909593863966281696054164213968645424222065161873026092230597052557037034203414313619227229141134135348278917089388005765897909060076002195916814485923624027165768483392599420382222102395600176784781826074441174543260053208716669122458466731066735609280655055392314500136929709027936256520761036182796196943683854720423769123220093941691640483749516982455736439100000222833137088332762920924973876479580975888855839424938498448217650206942400084621239744729135335064173059797163267402220256042913665034375809158643263712035819061139459026591987953333813129730147173410960181275997211676540962500556819278500778706848663610007572084865208356246465513808626372117347433906203401882632594755228351398002775566560475436243569793879191532587840940679510793102232398289543908081319724609951751797780601823708038790968701564030173052177258032765348255127286601906873654029616644802526661030351692048342734596199157790139166935259811934624378470362674430873747476137824362115251660761477324172115104680590221695589964506236759608676892859315876307542710043224604955830737444370286857775987980432972005547197189262510442831663445493919952567836392612077480700105381516866166147873628206649379762722145511296093316452881995638619187779196015829730663686564534692688488679672017323521347667376225688611506726483420099605168000672874045332503171353856870361817666561031068021505389573813694572553788247175647605157742873911089959159045346369043570314240250709383166693593276515972031496615273006446035393228841906002798383040436944949716442050963659492986566363589302391735358322109990525524829262354886895449939104643131565267667669835534747803831454484920041139586583620696379083900599983655901629502907962546010628349652788584450201999621467470347790567703620803455093251162666138190995855553499509532284909888577119942819407862484035167258637085633005597996372551493008466155480142836535932887828340445503885659113123803735033707615990262844900879264781239701830111088717185326901499612282520707596995733172585598493099036004502772288995173653704875665198416295601909234879707569157183482878246657301019917242241878994238919049932415623319126187462354037808486049718481543741429406072918657798982154942398392298134510050894576996871612081816620410610206789978044485967901673426126868851769829098779690905232892545909109609111792850046667527617240267574721786537367983238995200538999252162715840341285269319294040971173876679922539578689948986427681604907253481808653697541656571002706871888568092408131385067406496343661033222960056413335722244067972222143075410789417158230026558185101907413385505022950687123958878407560692600356720585706495367058033523387227613147280459416655607847269113616657652348950879133532308004921610096168503012000946628309911150123909895062003120753849218872701967888265334237507319246516524418119290767159449245999552633059059558626497056044596770052628541136228156458922255479008915053902507658582207041452954093404059011137733266791227293111036432884463330104966035977297086551296732051203373867511240873683297533127645610606271897135703788173198657554177157547408632517855960752989323491233244459316301893644918143388420028171804281372432746857797176979928912019219211766746676003754051503794519397432443217751985830263124650996797628025074587587092741516898035777031717466240720878014205363017067130054859005239111729579234037667145844033123436165262661321118983575942475806545987580349070562172106220319267630373501152758106308126145945704285590596929440431172750294988204916232594101324939209870226465284599456451359695515173200678983198544739866505904615317398114358089882330777966442049832265721410430447313543355600880046620513634359556472239950715983894862265316580456279566168070659070624480019561920698550636294582210567346937528511042632581734119148126014241538679138934302509822125556790911333222902770076137450576333369118266856908476613265468018304286438852628365056480416620737821628158357526501199121001611590412052869330889127324653056154182467242085139755836194838044583578750488024474522645355022493970032868875941656750064841074934188551388698186206218375691461375531428701479802616088479749387637925397151518105190387398265385586081449590414666964718507644959152858758564638551968679805376738521111133735171702939979975203824970310600849074665815899674323142651435955681738145403961433216299143241046177079707083241227180521731657360166176340413274043500421308043227920425832371711974390234423452479068197588466942196934945897902355046850049938385724109525976843244573630601628327748511328898276368276740231169306927100711771192623493679139336573016921530638578305281141368805571941604915816565268940817779209550938325461109761754281129958975341508617567754397623721634412787443530322425916728961804360139592054231080272360599588497706679216359973764842910750322462498091141116115153781333659511275629811157143261185129876365897501257916126299251978475496299954446838681387059671933249778804868400120730436942068307946777834471570869836023237993163136475376488676677693328143598260841155956239355577570266622502329870411150800011804189480811292810284567953633196650372382675735393098953407889849235696303528300442364640734497950224886930428466396419041958564353020069171283668382562721494380647204662709536143656890447923878118292949260972983323217118928804157515851257477612030159467257348359820587857309433208512194194381889740701355542129718844847773927293173075804478127966980252146596762789002430877357957180158683455814873078375621507123034112753921646663271257905644962046692485493691371883714844432448360040660405333838960620087317496468252614485965565853307251530621935467232261173762399610853005467855270073978192920727019647078630049130151693810537575458793100390913541562531647679402881498395583451471946223620045079791130982517276900088551902169486447900061684826664338136200296618244209214536355359742376887605686092332574111455131555439406527903443935721743043321774136309345763063442522276521527949894953923059313053585562727184096800929524240591562208873704185468168252517802385811652366253720271179124585526843953250579668378597536939745411360692519139409534056508641537272616318578435502904094049959991068835696195914657130112187088242722377865207944321834291422236237089920891593175623570053929449887888726854796013691124714584551296828459578586159423547504481747571239296944988822870607018270002951332541915386011228133799590240027633123560121236439250679565157714636863521406175691840660384327480004337307469103438212917455857770881857421148183439641176578584456066419864650536812190858021497852233353767328434081848636245410348290124815048274058777980592263347133964804361284926101300142189793378820203752196594293327571920530553211336467714433486137227097397874426836261573049942120359494756852423332042383543432016227252034598428928952767772564942002512993170511841927647246659958189963333011011803328293571129607156551805882260840136385275367124193402381815645776701961451122843131239174473643389233554228665992873588977360866229415271843718137614073932835633906883706912352341841551113857443382085108115817840768358417151567857402827735755514714192303028449702045735794273216910745440655405729476756579996527485984126006405076797850532216747473088055939331500356174366349738641987190913421861693606648240695561805851959789199711703574974320620283680029573710467856712500819968199423513906401468869343841786501127883429292655453217428106878039596615275086143951742960557644812599139055463486734248507058709810410294766355928452403927411027176144329713763486551645701302692330784542332654800229688516003899187667996150984607066180108674873300188119314925452698864732125445188518241333087791968746735143267930041713122107833874876441187756338638822829057279599765465506832161858452742518614152094132981159156108348682466701130292234769750704117758725267282354152372001625414059556941826642070625149208636464065717508191980761571413774421559270516954775268971493080728971993539346797897041238564074765166792419097152906022582384607080158529128218452482035900837693559684244889595609800961259793741284945319930417874956672882384742975281478315028063399720223317409087016356719232931298178259669317697213757396861294058554311931177973921758347181998259669873119160433813856816638468226285807591688788303531626713346485359541578299600250118434902014495394290394291415877800695163702419727487605941801763325281703758948258722165038883934777874785715391442437849189251233072286244652224322454943535641923256307683505771654441711978194916323038664443448687470502839765211868340695371431331691353037479732388837334526225649675573045061576659320982516294003756453223512434723744722381470713264702580696721130916955416467945395751289807488117456090068323840901528824804859642845991552660345655191725960942049670824490567269627972738562225636699662474450866150659045971278160580821382014096229680665988975833243301690451799592647471797980851350092522910377399786217243551106084073845023543560686260105406545239660108356150315720453410169371792737969677095743461972852766063564110764935862275654576316541799602413663038881146973801736933431007052881709648761410263123639605497446425913758513300970155009114423658971297326847870540207693728379569836974091734846543069756472793368764900335199243309622271591163157748656235422744593674340019326983176792794019083930733134170623121897115838248546983091633430313645399512683682831634575835087063177017368758882529074980248666646655376864093986897362899648855080822412867247889289528690325349654851253433883657452411001459400950606911568446609720113454276144058087370017522271600048202957170777010459478575349106202208122601423056394232131964732418888687118622187064706331818099867213084666340870784810915159149892550833204000461389897182159218354771579910318617958258773728653203582045135426076494029042206803659585442969672442215358615703827613684129537323825575758674126241294753386016998157671884004658709689766989663757834678353828565930966127381474711347278097183108246831921789553977846883544696741830677426926274303744258141228262589257808512634947030136511457534137171543762585638279194653363388759222001142088708999917562107636237491028455598864895582964975671810783802816661618826107187265067267194571718620130847368376327416636578814451548405332769100055208184568221162264840163311203092060939176295332089670225661574818888348766065015330406717218433377535406672748293732701828290240679266829681668802239472741674475590460561838447161515537800363162578773104521684958825424747404193242353986302496832661602183304310668524738571649546420957255665871609531347183682267241599246693979368995101872172819447970863501486357836004954779337642573835154433491817870354955179412762001994866982147699880372641075136615500311920604509028938013227706605015107431868846206109297530044365122623470536118187280037889115341304373146592014899849345779789213452012053698222566991940083624261326736290854911809550849631013706694018411322424302331875826854218271555607059083992473634171835614978747084719830872208617433836492269985044833545058699830712688462764084353786589517157650151762026226691863123333897825058764909020180127820638901264963466773752392484433955400634381051736295019206844606990585949556641565172041847077937889739902452685499158252270149578700542002459232003487100861157191453047678915309209320897200009159686417331210168728679876573714232237247276839470910645009602384774387549722590845778455434559299781173961542832142119123913246180320050112294025183212486641844536576946198517818673367402064873673089488414944319519289261648144896259455326050199623405904230715173365086897145972145576664939004634412991042182124861972268256191551558298835564237610362552129046604153821085278530596205488149790277857492322700312752394549520430199062723410376723680813829882350531525418373213104862658224800576078880608229056289958582646254078111641661070647732865048079177753091807190381175437151458221812035499249945489748013909690559985187392282779312643909064180622028954210131041925607667062387320559526776389838393159473750562979194433452731721432211204378381194520264847107977249480783336571864914611538981668190708183872854745716098122791385977539115954001871919420678019826235896834961998795872682985359325573620594425169983150899054367711156664827596482898159867648707183161608812404478866332924033414584648825929777578300087493767317604427280542444173128323251046176415618543108706194174672838445334793911318624257215710256792606091745655417790500047621423926665127165189981436252003634539794808272414258869215465350073831616623205111764682560776567381756138498143153500584100430358859390728266925196598954508651832981016393700689557742669510367819647138339270137026514826688359799087868780343181253648392632187513573981514640780442939262558281375617200404064031482080092943453003743590313007437322135958259456102067380641855149228529790007648611487741581799600365740233154254766648651736609876475707164529451331244833029061435176728946544001152889779125589083173965937398795429509733436896274479800206718881201282078711062354430398118460200497561281473323991798931467572256241850971805508222131457917350968488083488264793354448133075823127663060492631543448356475527043287565722346897712491260196031057951463220063347273848388683044654684961467655726356269317516286448016276431919603537838581097755593354735630426194380071250831688290679015947114970855913414804107060693578614081062371663804924541369454187462681612601940259446157416859926445789259466022621448873658366505989988163867470800966097976237208453227955014764560077245418042162104299863010880379354786676337568647573841250116646515559142101994351200378225804263182597183489271030426891184682096534017414608749995390661609039393367288960908846325975581289520282779537654287248669453811761873250838912275592021254750593339684200244596763257452183621718423224013130630341520243711916940492543242702659187117805117429980263521117752415224457960897303912980309821302189034615493169902716446906324107578531342474850767706239292839310739098759202147003647756707966366431502700998637025753048641796564480282122856995293565033964056869384074909322161081537882740309919882268208422260363408526790482999939840653890405341361807792986990496684223176994409800570838304120394385089845912309405416483930613635538283956155103227978394995703109186359931562752620439383823452415378252521104359835889213869167036498556126899287920636476466160588080918921445175392714513979518831441904449335472666366675508059833460373798560482464030416554748248345504494881497929644022855669035727225812516703064527100690873073788587555112129668119404541518176646318694080214223454071905172378520612827822618103217226576761849905584225993199759663138352607546330229960543186330364122508808760904062155639322926399730320678417885871505765706230380046884202901781646791592521601517628382221769753144117581593959412193287846039941660266360444092576014049645991647060555586463180982243762294349589101118385569491645484251778648004531225712334332029640203110180650405000788742436659250932635082447849835768680882377353698038170757476586473011194038158972090206196119384607402541249938678636026659700646334023016054525215053997991695580215834935517731036178905229052477168052034508915538480734252587373900914626528295212003822420261829746174482008779689544482674894309388148774301323257935012007231274333537199600936988513882280014033836470124625282714455682904311446116228955608860905164757816125866677078664663963857110791500510522969451789946431903183890285092686782499102833211317832222305036260638195084827203077699858345811602823597179973458621663596738382073375533905499954736848146297498619171350102018464586255079224211102601889900596242930405070670871386425658177342969159527258681717690715508614189776933412164633113205817208409105365519600452588140902308012994013720728175295551523761003931893513616093885976364077974055240401003285998647043397711540204059571241575393769878986505243758413318758060610526744506782804271756252380003012707884732263996316670014750955487563712098493190545538431959810683991418245042960374968119369018619051981248642649807341693003046021803656575979580909021103166007411235489175088152506724754292583684810237707573215616406917471083228223346934140010117185698289463988197545477912409846194769097587482120150270669783820354861260177731671226245858708876378010512119448290344067665386487825777028677897892390054433817885219334044009678358205426619257689817242577983850644467839009461438849794057366306577427246763572521469040742850030585808251469629566130659474411012538788440877477500169243030077051402963900997303728606332955742027623112707406196699378236629958373167201496320893535639249201603224330297069729547287982791505456185878861574980024575156174885929313745725947861482681314760060174735002967273722182265591498903970891999723051923250691467318508929874760546694225347341437121129924884015857620120123622055159874449625710495632110472512487293572019433325777307322943267802176214018818474805899708973869254218845547973281995351680485168835863078157903745373975187215898968744713573955919993598039651621902272561232158540982413309567936809554194852397069652991945703381044162781400716652388715264571622969339107432029496680181160331424524900492008717754650702780470600279213546103487350532612669610082433424765599036885215218439172119492669636417105324535282324091299653713620883412437934274239153904609932990633432441289111122943471189283824424629056057793327915791622550432367993177015209734055835934811589870345590898177406913985298841632453490609171256461203124438916189760749415973736471982148432624258529466347500034166413138742835295247972563398915932268610586486213504483563004572743059618987105280354532850263634852968669864500846126332401043394493095303288083150967025781750904425149998779339563371827079253473443242110358467411710845286170764463996628662320553143795890264030247722885392893512144288520444063276804234774623365147395298009782596059936793364393749361984179848773855758259300013252518977491566251199548851017444147677605430310981138610092942394422549316494371400157818667875851320952617232638526116651767918902923368423884477001615688723516479456789590228279654317403666138210634609489767331614396475559105831343162566946145368627880337353835252376170558101488385375999586538941965424500314239920027755402529174496060579349109054950214858177325767664779412090936515418991626297032445097405166791946830472464113476331307512135096592235109564954695487349781933349822226539137370660660108436607810505538615103416909140398152978624382539699662001864727927459498467291552716567078335356508835633858545806999335965892302021149375228253162433664536449358478728498771479853334286272695280832578362525565412404619066689247893059219036829653048618647571773266504802254220654638307549490424905292691460686272476488349519561088174011795046973373134884528725167371874841632530511309005037833457945122238248360620182139454406381260743666605538312557258762935931527462701904043077915215658248911592976253897542485380562252550124246476441182090346769133259774460900950867964157641666570978615737457121206305871908367427533407409477278129605390662872698797151287591016266397594286560642759877825021733432174928335445956367627412878180546076332507123441271714611281465506116725121223201118655599755803066874231708034105249004271430327823903151506577564251372006605616533488483331909954391039806926702378822062404213710169367670919983043774506459200745139767476338048594032749268600821750184704368617396802814198085026605040823475164927854494888335045462459101812365696312037477684888664684979634861732418200767639960897309099303669549000124972427753329880357890184563407655536815584731303484721017859773239860271412183620100084835855096272403848095554920080284611941577580348209880228450066904852286211165864194699714121346058593378260928437914890026144028610163881874357156037925941865077089729187867139378017548478279507816549602285399488698414890531365351345267042296038864629408939538962792297820379238419682887132965314709285413997157184055328340162236844548261330179172787413507813713260924378381041752825840920244860400655327896070775426678325610204798675422225879400526527400074246844874040579681989906321236922786287030793591933644798143083243323113598486520326796749492203461047790868631386690527363677686327330634477226461335487149300424999075305144070156165049187669877918213044467129595501445054167641077300316167467594957010237644471033068525319633123466449812136197645924485897642679212105284483118990540524389293518146496881796611175016712429749175492483976603598633676714339834306000393212997873878597846885777343603819957348428127804789394406009577174566516256655074847550432132035030089220226890320650903530934601264460486577995586726702002234199009319582056307255602661627483599843665751203317085434543883995306368707023658464024854856744991749940107993651805453134709658958399791108410907903806818467558279029709965995251129056950409705829809663873640461563750804509105413234517155984195063594610563594543949673045170065141993097690489361742483534482587794895858654504308711569061195041729444768571168167920700267061464553515425955694277992408163159609185500473893281170489463150912115436230009723000419257564830455868317240760788743117395754210652813180574534361679725557970986717190073702159075874443996802556245124714660259573950916125872404569625505751640064297352627998780674179689804791953327016422198915463306857857511692418881273731144521972477184040727945848876901022596481798616211813548097257674274174940769497665424473532362238892493444405428469132291916364451508085131199265562494807561247462198803426125362048239141513320846072082779080593524400324379553856910951994267474700700323525648223149178342396767091619908133205430569871218849586396637210673036615198359899248589579443633548245992282317528709431668815641414163385332109744949451835176889230166771438524678685732928148030567727612150545200981769352841136055752614047142322877321620194330411697970012639835442637009902934518837824194869590498507529438024038640285316114189755302531119326622088152025554630309112178236512768735082644099940120622091147053100176618455162905134258065103344506370035306773256304406193209795189861905876202158873440065633259439224407489632158885922991725404725640153255177832894123370923231032672349699325904308874982479429928848885797638454379409941708502645049120305390633956166258290555050627749167315946224576945043272703044715550648523868598743666870446770912217536973384985182360469654296025467600523369908976678262608283849739685816143051949859474697738810944628256100599748408384024252526048346772930132580960190463175251028081364328250090618507772612765093202471615888272505113174000894962192579973934068344304663075756202090195827267003131588943575670552146577073266754983666123856821957286589694248621399375899882224606235264329259655103426270398792360697091819852615968529739997735801971079648620441599447229836943022050170927750108335650776667937343209042670291083934888764466834431917052442456000285834750092396082836595848629525539379321913574741013854287335231198226479399791255073809059075036816965698750530129049613708705060042055080672886267459590627905502966748718624242530703239677567617317987246660975153748644746679086499282098274447426303447593994226143223387084536634952152621384717507119550198249200106950693633343935736945285284908285564066355528591390126032302022237887645227708180838116228191900929097396498215396214428671050605602302531794722386375190154585714119050055311673396850473819167509672537236275922245861525863042691076043399997750789926367413093355512439102712671204867229006197888852571468707533941773371160119321303731156102989493538926878193738287926390778404073594961216583061893879987568091335059719114690646932882689856242778450926626799952249585748136639535803812067277119042856147535075410150137715141974488882117116602935349439628812408340239750033384757926999932514220366533879556801717631196192282426335283996406226246581215576748020885649498939854023667469105641114210486248085981546025254564024433282207713300899088185720532865160961081384454432095430137277832396581882655785193922619775876885007315760555286080796950444325094149783329003738717593793775337927576274046510145558549895837682285210118740330623012223601235121283255197650115106369861528149112790648328520622324840389332496533058685831646195916074739466482952198889014868782047500827800506620792825136697767183263159723242870067039218935125082784823230316457547410913635781741006688016886417942638401334565220902098817666985387459967711106492788343889772060112273094302558316323059076349327405176404887019478016747968274296500406448586576256056051407752606392499819768513939215529651688250060679828317773651077457138745473534186674875959609007779012241037101347926650034517253595401125675898030642699994522327461028661753526599180633647072279385013054517276028398404999701326148583683896498828071747260250230628534630041751809538590370824126708826305311436254606519360185248772300426364235456252074680461942518015786450860493517584110632296667391247845656745335228608321146451306337573790562899215934235642758767160502516407340129033651321049117668470609042135866521743357921618248823182297868608790540696145062153609810521882911555717234868719112824727733023341344862688815812764200540613673506659813072332170851702650952235679137054116527985925948151232798626971112824913544535455553100893204617347272972760343413285294615461012846347506557634061476316115486236192343069830067507256500317068366481977572206634749609198590161856071859588460290910274685957948547071283098416033894699051613971197501486530583558274741493511421811647004124247323988945652208113993462312470057922710771645498050268453406574534549715406296386988679709437496128720686677225648457526877649063516449255534310543831306723308917485776104430379993462882342140342472958091351208218597110751204940313216145450957470803824765746832611800803698289374805199141600696313899860267628987815645966269871720034667344050257875340913165129959459702681276673125197167486072913531784501397492547084393666985052735286609961074089471141293151895903699064887026853470335926068884322898600074018201445908959301815661552806899754891940338290332251340960220714029042311109517114328725298607335539990785659199078595386835544802708447049754240570222125858311276722988251028400301181940024993165342085292866491766735068493197219609540916962593921878929623959935732887451536867993776821707530205732341190550580284336567855953257710671151010207752689779535144295264981837855847602791903919853197136600223750735546045949000661293738776337730165633216616855262651052310969762393387021304250092016750022011634728841012738087318088505763324502523669595113674876494895633061303061655667617071681115614232875594385604168419324497689268883274219655391494867474556650351244550799581973583352511804703660963671109117173372642787778124878153537188504492105706846867396973830228173001503970165189760489575557627384109468875729512584470007617924845379261591770983469774162118619606846547668761018890509330534870521444289031308202227611693431545158912779732731110589952655201336683603694639494636003896161588090376173468574333452139224260279980331645557730632678179999726531111362937933228377935350168249722699023809018958454874652893551513746746062805118045638897762359746830069178826851227328925995699769931955735969022911647824936724226691303015101630302683771591633481996858217745008271219447305745763650545798586633375534576292363669999878577439812553577159137384736639849649832847570284875312547012160394344214137355452089401758912030768702267421632733377248313669415997705335627020096056653065528040863189705306365897072794942354102426917439863452721667410631559755732776067755568283005441373530145627451358479812128793776177404739359269890423430424007276904934165990263498462517112452738705101972091958037405109425512200604886470234349927361839174871866467653027096178683545352872100883475031335451801694463027301431471487656341193776992267100348567827657100790743473101795943865742425562889670772802681206363136585830275149732042397557200480276254098660541737221872160631062282554659052701500489455243521251204146947048395156197868309307256999640849524932039740850574236530082029442822884249190101070146016106252913627129276033356043304193892349587143098964031572950213865629855533303272084533198404917743000616243437903874140057474529247721405175901448248029321714838196126660133443869145489075972783280095113024029658313265534426580443832278700148069035003086289486112683443284308886378521534751003884154235060952900534392997883538751367821335158094227808989370258596284761054960058879753884740256917258407225114426170426932577754228077215042283257033017492706113239113540901938646600732274292888762219332493786640265279287080413935510278168010751928925240840511244441437127473921569282390516194691599892161364171838877229282592594995257247475292687658866415801952530407746690824006647089662584584921037613473563836202160259919123091409220053706719918558493259947506203928766017802561547280178291473864589778080644384904403677861901832463663938084875042298981518156807929520076106570912855884660948627094877887074937568451916227451285863014789034397120933568885916025627189093914109627719605186339934073681925044489359954751653143355841773577939144008123561360171113723170045448720345262454451628247022041807364044163470175501039203692561322479658705988201898196162959867136521634732916302490159895698220640179094625657195076433569134359754678091197604729724838409486344193262451424348085556348058647096294604965033303392850089289669791999382342360795502673785848034381162180613655260355982281251043315512985940836144857136977456175616765533753964981617683296683614808687286811410688068028177978000180537151461883371084920476345614391607985323397902614075276259687622640346048790527580334051727952690859009897933310282492023451641601436484471308627701543573493023296231403224203987658369582719142515044792876512079335357263835071521052722434146915346424650420167998284076855743977748389024977338266296285863785349351592866160422724548110351085583915888997533806478528648477394894583667449052491321483525501639530398318562436183611665263161271130118680555453982624970640475256677341933421129858501743318151364689131634268870402628295791452761472954642405364400795811567600673399388694062385845355864963041753453221672976228045095739566071706526003783921432171327128313436709141046514706978969210156530117874759827589964817133883648484137712125727510958046300752358759095863482803431013590244887158017688294783822849114375152174332331945661193378623470325054067389760717628704817235290455296648493395368315370865624706542045007814708426922059392339061710588675639263444080331140822014298425042500166158165886995615847839067787580800466565271257464746771388819813942325656933949411159789584357317553440584173979664904693118130218603799290564634333952314856291336299358804888500196616401505436482636324101476510041831690118826505532391868376646316676792032135061725216523234475052844810001822070817533530687826412382754417658858000923433034632892204779589658985528460233805597256071759689718516892703937377425549047622632257013482274186285687116957430714626441216059266165062882229371478038150627861564981672753349916677048104892393964008700355038819890812213590591469368402244627437948781350166365867425014202236933595259976287755815967024143792746844473035620473279817676932756291230222152139126492521098189320967196371711729207135515639481368725066037515474494841017585067917776780427030898596657040636605140915928443624353622399725391308715743170635700139818328497908041305624881712218038956335395060828685125203531763355138049347515674885198174982368869727890321252108813483753093042701175834348554914400373752807287571722667616418234708535373186039909841690006399169306998381131717703560405339967871752824564767890455404701001273107514029936807992441534256957149873725594633516832919748960169126600899103517068745251195495577558025653991352966609253917932159771207015077809050527899799500428755889974608433912823442290556560810038255189998405125366148537377709780827664392299896153134475636483741309780547779028313669588424268207827038618719977713844494059982010825631209132395860888313230850560704689205220764830957153207720044806315535246098682136768228617509566611868633503556614371940002109117230540541261751678650060858474682678253458502458153080044385415795328329317100483847117347098367993602463448637402113967788402265843153543035574960572576655454636128738790856165417646371217196056812246062565882127679995337651609064367211254677709977441889809499849723850013306960099517379602303892048693119474307024010211806270297926897951101318752873424439138970770477874777231030794487661338046525496837326171814615810534133808444404302508488476781814334237109295676100175400808270760140899290552949000402325235225550100684082211923734113121957703958899922098333605068991620793076771214097232748514489181108209612419143409174258138611896694449733847833496729282445573990291724402033155378300702608711104092729454844934931978593338159437486540616886702210615044335943739492326418778474318161921639865895696182832741728910552389231128321999552171344904428889116807536485715140142160086114293633338910633195645709076177734657469900739421462563578411374786015209199579442794928936321715357144023685832277606739930819557614139677577193605792638906690617448766929251345215091539097880403628955309847471027729548922275234277093325517807070536214289448351583838840409762234810985780696137227435478139912111300225935753902802229407495403682463119817653394727211393454834122839199331048671985240149786224199587135969821868310679902544946405066147611105720950529555900577028558638716285286712209140103837917294006375390956926920302887062597541722634421640983979639601015935174456018253073282230328466672650186704480175820444428780896858942731721557472780359767991605730889235693146578789546129055795751549718266229395750172224982092060003968497158373298727133314546786054626148369322557093561024339583541470396429105793616833200614542646787117794307329282855010001589797131187084452058868545845605058512488240429228407973448710701810181781713911520450686365180616377708327816595496475729790559529237038937523137749189891197095719191836895670604109422893187731211153767767333616721527084687578452247539262874866651348780282475209999397724355977623762243342494587055937355009823812682650303712078330967201569480901678244963381725564161833673047863403749010333020934070583251139781928277184888441066960166177396983521132613370754969843219201520504212414002866795442157829999714103109195786724940118147695306880353748051696498598252523948866285551901163698054763715991580885506638832404462685642382285626062975655956636190256621616047012628970970187426140162650903281328756199631744995313775344920043023315542657786785665879138586597385500221519718973878141758679389027629945375682493487135065269355691687971028815700957944122168789833604710820929136840893221264268724983708192619202045557481894666540054056557997294951550786520853080349239285034852488926257489933112701494208546436732631354631333398409412610166616464850074891418440821442588748692982006683431156830809284362356262513822960546738020699351247143646163830024307714722739518679854487282376008990890422455307699147288168165691072683785031794618507693795521028703289728169236816772162202370393129359005138565536584502854126428887293451540030575503422666485279963465760387044157718571231294712897029840359006234884983629994833068806165920442025595391166343551897067620214917474375604825588611046407851742720656095524891557895227486810939360360113435768484959152661906636824036513265618187690382074415993349977957602845180801616797515754214708948610044273380787770858121656013923915622048782961066190402463859228439637386040633956871892068103151385110619254712268615891130616671161388596116049121633662838516983279638753694882497270442801074824906094534243187133194276591354934747925300546016670720135555747644323954982802191886649387303976472563586849503402830299084140956982547456741331829537009527482147075648919048381459405477902562544044976977982841700689612771087915118485350319734712918865031092227187152698485233727728233942407892672866440457011986748118243632430156933256382115801418018707030908201426118546031915512836396432174269916576307006075031038795662628964705402163578238131908400346625176737138702047108531900825537040989924218978202376239024092333085528517716844725739092965662358682888234810492552352088331145378701732425979612615959924229893357597582186966244168191828635039433070154229819938951024326326822137976781071365088938433165824701850124916517948901916465226478989783458639707732057141333728305324688226100648957580994242920882893097502132420430932015838857366494341137089515499389851599637230237010748076183558147403909227697219183482595709911006576244112598135588719984811400675238938018983531604286285285689513891176502897536138892888837103994787826507540034107214152295006199680837667147250735803299056681038609442117961150369653659531208620150130535586324657856767220892116054796193802665170245418946607420638941979776585781858176761094322745749232639601741331318582031252695675075449631813415024698415807305800906003908496036743557631695026273547108834347453192501984906589855659354777522360593854996369612111569466194490990190218926102999288982892283802390106258231842560429067055793867838781661812682618946445285782016085912575685688921769684663970539297674166671457879137179291774651747865361467171852911942857606909865589130175083489279342572720381527338357029402202923512566441745893558332037381238427375032573432464950102412642117236241232051218363294230030855934166520225844136841013689687449273558881759650498100297986284377142300734451634918880241258220636186475658362862225343608087069191445419171648839980693582105642995492470692838000265163824486042617340481012437012837950769778180178936481227267662714308085201167641580441070409459478531780902275048204859133779220705994987786437884528761500609871333566997823428231690120175974865031324995437269691488119143176314088241069953094911742186024210066090879793526011211734365502934333435573281111158217527832532160462854594157943415514490984699598381921325247160772184025305833306547743079786450732077053226729408425958951544256482970410372134980519088279480820181659822596577261478400324490438639603960340927369897830713901029772267122530842974674110659231409129517418176609333724900028651524935794144624240393088960595840822738893355983970104736576045548079525257667122330305517232239210164368276369561224883294963273468988979221168690976179615457233859959569311177311919718052993754724049015148952709990503751022875096736802679589399886333760086093392593186388297383673765473233503180448527283184563924159972343378115781468281210060274566340750390051031616802975743172398076969388013249518505729236573301655137375859971152521827793206138159353333906191064639584405831640503098347799780108637802004802260299714570716487112554904436257295218988532255421946134421047470516292443211444175438300672079479244605316183698783611237572215284276726226208484541173445632223062336394320108549415880543324726183391203647928707955625592878712789038556227344115391631559029465741414104526155658525162502241563926753771003868221807424153263682489819912348635369534527689684511208214764557911741429909863571396860495143957212061543511359212408516347661688376261246599515186491290387837487606631665077009720733588297349686507058382882029610517639377046825882379833715447962533750055139423675073222904238403306750884529421062891944607500599458385646508566723381191380007909375736421507339124765734753176972470797751835807240278567515733847267799111620532125636306857616010107576929046588743415969699092305550965984314738114929289694529079094480365209154334410468791273760010319633344922485434758364582914946362665451039982986753378776756183687518642953512312659186272213536394749460435844371319838094001301931945362359040267257678581036693471061791994818624413363108385345241333866998953539566458363044254699743981416786753675953896572055413175117469236584706886698893322319027576745071853777312513732285218951837511872804990802231327276119131850225374355154695936223392466770778681321593628717610707605660540796080612340930213089660037181307564616588152012250805113567535323795422397892254312115813018450029626859985758410986115395372610864049902266475294057344394965385445260879084167400798690506654156153569892616168108845318746904143480806183255185302505066582676061021997605144014998340441563831469483247221390535059342828211390150522918643213526551101493627868620685936972995412870948440664729415938479602229810680332241690378698636754385613808123691390350173691781231386174255327140848882438598042777624356358438581082335937189716420180542330920036770159090193929582646270458780483191360598616547415506795729986660698604071139720232846700800508441053133679534801650661899340903422265628860238312149530803014415741850981665990543836203393352191278341514478097705678827447908241031356225735642434127867170564274149532339076404450703109478778075260015668119261416961829485969308040485431043467576581551793265840785449941351166400194085736170517323948076163828916175770128541030638171534545408172290861326201153162608880489620615901558239889534376672980640774758673087047241068273149784666287653763805211620186100956763023384666588637057942684903385091097908682193278992979027084939029477704284292992013556419459736529382059263297977258019228950939973556822997834369480082130590300584947274930860006316097524820702821053094512469251190455125771269046191096021838837114968860746419090571716777742803126910861656146430423052228316993050869361883295644249020770334136844068671968730180654629521073228296725277789550902647890455502904177764457197711319049247073954258649014665319588334587580639351625265221704228811672735424657632827839216316945870029781077520202115692989460720278412670475664144609963318909439150476584331520795869158920079036235813845823673053961110926313356371310086004899849059182610340510086235256029574965300390150593042921304835878556797874553694068114276571972053488142075063924940263476709016883345641097824167408147051146963829541287291723256973306055623520701307176658323388450093201279762247719461113534793924708260896092770444206366436556256885219727069161306666462064027210877831731876846738931720853853262298827802026213478278362702823209293160237615067191325479693230153886797959127742213658461871372503445546803794957812187996097444053572623140930377809975054445255754683012858694394120446811292075197349438074249397397286975190405530012359548429759481360697368073544562106776605770603210843582595189860103755283611681563484701211184274111372561582972308794901955041223694660361317680745122635298133625246877621140562004223678272480766844694681667863669406536378835285321599354168691158618532122432490436011464515159849730613697539402492741950912196828143723663618672777922520684557312933799691690478494781692762579027556019973780403404578821088454145541919312699305427596825281333952662714764853714547533948152456844766503203946266832964816457186401028420573262129750554537656583904565470490753381337968519714544661348058714327018921151300788087796714221798247528445294686807269370945261006448760630900789909080891220619761663559497509128100569839723337257626936878874257507298290497160450044107942809075538377052128495624197088699313107983808109289262247941190964481624395903351486026451013740969359337895361237997786766487344851094139382288161238811965411090420765826029919510643750735739817993500054023421993601190905103145646622671781262931916521259543189824941695688709023377189582092054933696745170815614539424878116046535890887857585651600766414348810724877903832134428608046403299650019873189110291565519521552619090531983273733199073541716487256856241818637489924366750391097169036146491888645326130312862990366437526489757874771403296203540291013561863820082498543480149638878931933402113133442483157243114424348995204743159642564531668443290808941359515851270175343415927184356378160476479183008647799913805936029189967120974424640456917801981428376890973197014136440663037969100295617649925834173952790832427153797655499879912519289126406524416737803731011527599714894249759780992513739498582948454285744192413268457816300545759079175615971387557747814945846908282053944470787707062864911870562806163795150071098487631313142335135033091609019616832209822866496903386178160733346843292910593964733573143586188782561186700465194909585140076430084920479918886551482963927458894781154324185918735945468135855553783214171382373978790152397102332324171759709872731992482772002433223222685261515751678559499534643120755715896866871629769021554046255594037021380873873711702813908692376568754246394925645626806988671882781496943455431725944331910938023500146647718421334969330864745491465599175228454025886138304572839002930625120070060745920217229961920556907456664601490252010391249822124159238954445488828361877081493656513451676613044106608483645195813840172019144773794107455583515164989740984993080703804704168240687942811934206433054205209254554854861142401340195860496196274728841520282893393898532108972763112640947815093943933814946496414598588251233185669532003609927669289758173240586948422350781059538931137158957962617665421174150499752013082048178820340171336890557015585242101314088923641884012348267088015933292299115283641835333114527086991830481389779105461811124430872096011433718820014073893605512249542485501391218708671417706579859469469385260070443046191324668646674445399432042238074323205780603083810921095342083243815836104490557392000185075559457071201615921254033765801436745367421005961260780226476816801951849624087918204232437752794509180796409234404908150772486808809621674794508056973682731191120914744990687301844173760225792599777510726219305421058101886625817448806460078531441318268073635397272462786993966846683738744702575263225491506918348082426231649087824763593571447716902078229561941542793261678895280443071383908851249767758144069924026095367331015964758612800667669654098052908214321236605189116888399468352208132407504093100422360972749875233895937309387591955604758930324980885485531538324663731702013536495038676010625001675394414977455442358229384001204876070644566914278292671144329839311502501879429389990997190924972404198663348468678758200375534498169357591250649893120389853274671543357841571196545443632708970838440065684979330803356982710381206769657392250284770504337123674506820554232949991681059694244137019888912455887126458255459720771459839741884076432454570167394618006635346045101769528430409299490889972096735985555850292561221411109044022371017199581611612221290946016688213162609235649697524594052871168255219511696093850432535431424686773456853681343241801822750469531862752198811159036866663432333983536565837125300077525742607959967160915395658328518856785878822874373914579658209346655673566517639325529361429990383884338698522906565962404591697611869802632516763987924422158547608932207816085773285156707522161635941386984476550211121484713004699356753393844603034086065981311203552556766717920084702637132019233710811412743893576199673092684214200585291476881016841417678176138096896483839156468311237084432347074186413482580219418614391911567946818254574502720065401512528408642280484877927452758447799830758798256051558026209256718259807357424578942926515111748415726003819319819672822603983365461125638507469035230608265749845102304114093595380536761871836499906513577086185740568840768799392724256164924958809513423625285335010254818249624894572411009338710581886763685473949422890333823220945685971415238783857861235297420939322379525964749480600321762281525183677840234807486089313030659688071943859643966010138969453196885134908267941003343140998676996413691730571926278719528382879498610237143001962960398426994925488113901877215642355980392926098815396614065406541323981517315023877345346676132705567567217370937111744069466825589622746735990742950999401151684896211515647819196088301785023114214739286533118700664493079157162283066359346696361422615604781481961550356256875979216901981679233308019650576986053157140371503525111465991013469943233243182666825114575907328678813759585714172327113994969779006935600756564118327255008945435020983238031885746796883811447789241429273321520343945312274871096695328539450510764946967221060265121029973086265659633113753594674459167117181472493057398035314526319325695715983960496576912393646592626746384178246779010446818782902815719069590154569051713188929806543630526690318437370248506019657898107977233783240535698089553739393497809135382921123993619680712960597366539849904198389821878888515661501395015796177226810265278465091861055607668506652218013209576641634327021406910475046485775910490458601183666224315917483372192127458163108996750656169514287887236538413694240936601193225962096811741480120307675833312603777183617534604288983354853891495521771631060720093959641463342903488316337084210354665591784141764623154890646250906152366239896138067210596901269998392054432927439603246086312252166363192703842939691114368147705740505512698524119804052123638632167723504962814133404274257669977428397697240512968703645301527708900367238576954769980010123112147692825578340176876464885221141034291197373180331741174195734056909096354745171644541855057709110061309509015089561107214133249546748724631142882064025878959291997856710855761374770748157252681476027559805561751090081261525754151781106903204722431007714256696797395220774554152498288616741187012384965960683353581857741930874178432832641136999781090516657976402330778946289972828148877574754931926046375222274318811989660240485075212576343965315958499178494164829342402875108063153925094376706588808370151715087512603557838313708661216097529518331577838264907356058199237511234067353381331868917690111354767870401616230240264232939099088783201738028295765739220403870166576107845084731945963662761574770459683688087290016804737403424050835577520022651012899525377492366395447653457750402490932220499444723608507752272023209829290016398610178395837871173213044675453272141483665787301577211010609244887708796284887774515031114279424288703217223707767128573199800724107000328057991395045230231262828257729721713995615575435832276511241142105384240183693974480959023539465915959825239328888799383029691469708231794078758432874270242761460839609237966554998961158614828852829411450797063867561971510062730239817403176661516064084380360530305235690824423553391365971009302931870650933826922058604480393719797724566214954112484375201429413520510155329542871292059257292951837093687790074667932530804293642421274813487489459208886267809467656131584412426954130537866026389773448611791315149966985995415455402150587372442226807100519337446001870884521424175995702036135024356750976984105054215610321957287424459432048139897759986432915314156166403109794699354351736019508218869364509887223813156233199773018039647068154407856243983275529214351151802957656280535963895842167489163687275981328464311292606948305425210180820201186605227342939862751894522702419390053241440965124952001612321262643778676433732839139743796793498240881824128875247597304580430275121789286681996567711090411252463007551681811924970605255819652229464335708741604173994650904058705089584537049096455500951962363992083825395256385809570486045390804977336680963116290937608132352137386490798914738348931004700191090126787846723463859397416740694117815597579858385641896013878202653197905370818778397632913394026773193424178122600059944116635512400116836123173489046021160596695694544903805538640529628703172336490058181474353237206630664534502454392545664380094827826189745494886179213863720273703097718861782502235112887344676358576100257119555072300979232195632991961054239055241127643052691767718340093662220172837660054551763107372118317699061802562180087917687671146081605822033488126326520218082447123067144021258632949371422668112970840506012577569891325778364211235690063046977776154893954640603097196866781088953994903064926416561703735905685237517460247378978178337924991182957261190743777564216525405584518372981131051890391390341400371129106913644559057966331738994771461429001706737795712123779156007922133137540934407455500614559751097378772587894168481114095555595161616985305234478998446565994679358787795799008392039808931868238377671782412517163120712529690579925051777075086091304883964040381256429123174602664632689362167594979294629546567601245161761885445793526284502656879359509953100531617965719615972097274181729627749978113071130114245953814802853521609221784365656665541358039616904671474607786963367258153850649221366570540356758543439336567764564516132576574228993604296604987627872641703901018034815720900809769237232073130207202960211008539453654250182324988472129714257527462385519118370283825206107063202829671914548821267250386278685723345922273865715358178901559889741911755200416000792697619992854780934174384948147926996859552169668976420339982483291191079085955727126723930193612947659300043724749973421198619836739589547435196970733849315121503390939962316096580252835606824468130726493403264079609371196591748286176926556644030399451814230373758707079001997651162436006015273546932272535149957448439551036430548627315771532568688357367326340063479139553259962053830126234216677662737672885707154371624332548666870796760951527251779017397750394636312495870204332229843084505480829428926878346767572523321589949511665492999712794698653150482733527687618407047834988832714046429463762013581898780770346831302272807431302606520006334519815684517447565075833324709132351092815720330727270947879190738027407244496274523427052594025444423742789749127367933660204394578941787418611216458382146016711216042869056535142177127904496954943813163235262437711844770615114483141672873955025931511012306072256210109157490946595808088288789651865202652031667062986517338043715781882687513669341482184927838462983836119776211252811480573655075570436141438515896264564397781096121945651340674980867623996134100493049456498174589034648491391557937846680581593286601331832757249159838876064181710427816571387245298127031116614046983579767559246730824705848985529871631309106772521166562354816835727438729704065812945076489959385272516972917639054896130736022127626605601988757654730720884919937658122854848623374043654904283196879037593560674948760101526870078480208836992836903409680574885185049803368839111895567295982088939783824797180830073508113466456230504512796213049591944408236693733004923495156256055319554440328533625863835243827649499169447619013217109610269252284749322248154183937869585311396026777413162722793421844424337671855804492852393757397096765953739648414285917374640966320558976951106564512750862537531286228715898131011488331035126102862065222921602789919373695969293052419616170991606047746532148727352838049175740291602970690881282767830400059630143795955087096658162503958890371947214989382918926804136323958301874151482145168540048576398271629629968140778299105693206186434644283504170028822308073183681340098021155678192745850430161654065689690619871936325405771362461965797178864896721650404290903554426066835913465792218743019357604738094374516272524720867172134217165352696551099620817389894863150811879614716517917358002066378837081950486430113201509013188047344856739162647331340617047438329876435041293774969099002387286249658937891688869516611991151242375603480760427688705746657724823024849648502261677951071822099613461768748243707257624723538609210877107454129371809985618983521324049682546591107349659690574783007385928888234781986237420633460234191372460867675183231194795460640069863002748084416175399885507523079810808726415191232640013872743620495402307277951955287762116132975242716827005431234603825500395237093282697074105498213202313504575665114094206630816868503688042440612091743588274322383824821212223842644408340521448522936007143324531062689968693593908773872603703426028613751852729862268064784024658745849588156159044895579286286406525566934387773988606235501087079107601111058187800748461462746415149148677845407777085953735413978049274721454225230296139949846572584394523802803337573399987130369444753650241658270902389391727897517684614826825516014191743351792139493232123756879296583626034402866776118658236508275831388885661901513619186814345670156365837827004454489915744968915403960204172469827961764382488245282714853250845141187081184337793274660875234582334737814716002467458674272395599449378285325587035766456136542562351564229116011969947613757959529651990513208815302339158483774820078921678585871679987573327188370002515699454276636666381769916286792993913791212174810350460575546853802097698800953418963505763112601021973638882659856837883718950952019006086758504643563542286176204552386094552320728942013813732543130772630547386079378143456034016033289918212788444763231142483306014851531046510883962125280636360302350427169324852841733995037336147902898112576933842167693302457910996081521992210350234066850201032828960410723545011111606665977316822072295210998873118309597744324428543019589978765983660385903912628169747662298175667163435132383271243184372718889462895658990395834672418389211813583302699569223474533011425851844167299649790900461820970791323605227924597072072236963061779766549433528029642427502013689953111992476908436132141362289276396661711390326915927181920277023406709575328920334970064236221538536396570239269251123720133465566228974833047350444726217378361103189766833106491532642335652424326177072051585515432130065416855841892167213710407402784522562623383765437206392433718866847879646626808238575573381973643504870275826565363550207507539229428815829292928908357795212263304700060339860480431530834774306012235144715057894473954429640594842433229905859264349417124495906118539252987753789917837372739982506400423573649067651649583101909592506429425674501656611565557172307334742934221838608495788131270457224219048902749205294588162065517483099488330865808374494371049870991335505249688087144169686172720690812485676023278448355285128581217999909707838734466029513557731646104855462133101750590821539456667706958512122286969609743933947248019714150864141577416701500391771701165847811442156717659235174649764513685545672678304320729210177894943856164457895986653261246358567522252833616230994087584388809738275045972348957214534070221185921645185563901853697978734369244267025692877499410101413505998395500342930587719384524478763989785917473363334425858117670158779411231305130044349646116770262361446210120783038159737716029855858925110393063498522479886764755457879456913975427265347528607318199064809301811620435160157235522456398551536376439675281465691989597560673452979148297374022067512563733227758653057055809428958593527220671220534162947399003624880222196864656156128945031246310535361886707561310355807967823676954151040888589416537961606913628677660855626205931015873897638126615622422284028475713272565631610651738267787271006753757853786328412847785479813260508841944749979035473818852724005980258175220247644896038881034289720185621969741306336805026123324972353509796609651312261879614485255661522182446554061374799690577809177141994306998667366249049331922872561241297426677052546358764326287239093110262634552979302457873013772806131293898743570270197500001406951045057362072341493598417213159337361101573024566207555594713596927629768553713356173216840879685113536997046513292912247335519655719724959996768818584573711680141659408094161407465945757526010699368127167043950246232979534954399989660136443546589738970993180399703193463647782364890612668031758172547607329514702393939218526102923973111211467575506112062390717942705470191171923024936437019079084608820106456900296408426032628199601115930033568945875253510429998152244455629405753646667641274803683846710483326344917308789615682762656587326018695038595125201138540221343625843732102094397460834162593204417826143922715049521208616800074324042139346968732483493904652337236412613227841833605453131329017383963923142733244572522189839303433681983074791313261597958013212310526556126101220820859436015258070197142245279486595513859087911662420712705071816989823437274737940020495242869688612717536343033905775849970942032842576446343524617460327889678534279062319176877628269030979423690292583948909411918023502988250508946425758612374222236148976637341563012499626010397755182924868930433895784078221379328024119261048976151946596292894009383837919594933972786838507390043555643754841138260324196254015959354514658701008002439100064316306422214307643084775724319349256288629279950373835519466905879763058171488374493653512072237994015316913295309335635357714365765913626190424586514041143624986227012374230665935831584712035677504414047369010359230180712976733414871992317133648891227574419286028976986193348606397957200330777418954000513321159543950116974614353910987441396198276739810168155789745845572772719279155500318567114092844236246253311892394131090896931669121274089610802928990016809603860299080937858857723171045820672539863562248029666131744294494799873934916588374928891276574089371306135289583860380043209281366354007985346484633318933905106489281613233537967676651484677246587825446756850724918486736880213965199197912835577970430579381273717179371940745106851999768859434274803802587998204937842584310069533885892041613527747045906731941261015918165525570037071857011938235338416765043383289050889942303081808703449532974579074862602701180655457943217442192615813046302270210442774577601252096872780775433984794248745609455374552855882950654375237849129047816225885303395331340859466906228327087875047452403085989743105663342197802538809301387291631067190830580262453772436938102517093463811245638801067517479106051165098228906311850275714634769651404306368965174568943026987759795670417438003563696374828161008826144793527436108720002694015934608126666926468257586617418534688031585214703443436817911796814419608712014486621586862448775828639196070236764172298428921384229105274868010470823351668112021481487917866590243653757886521472127717700562332796612567362765975575836542444311207972046091862964407816898359734454178442556261210688879640493434603241835030300394825928378601525442570577422176779019190792330494364949552633109543992483693588146282658817328598925169083508118404016703951662189815967941351631138823901598837849143954059888646318379587481240169225906517311386501039309517302542067528032051989887892116559190752532541899922527731995995631604311203073664352400751309603071246692367697704902271743081763693104738629749155479964007771433109940737747568244658522310394103768859798207962557555608890255642066807249048817658030743845928708762014098348892510241073812018497184026697378849697079153895436970230100507480379555236133296118694598807550048883732566938858462050999035653616096867252703009242436545195169484814193303231032145702096020232902291580914450792914387753273902960376588823385474403695836911910594287999922987630393748283692669534634783763951083782215973229352309413973812586394755168527013183303534885477820154477458322922996903258524725525594691742321866585730487170029582390013686545472340303643125124308853294579282123928458278740924179621462879993236320244975560720113111773704095709489721732304858744216598438537774650640249854269727931369487235835509696259464585155366326411445257987874243212663136809805056807928134910369514141956634256565840448177549998877700324574690726101812774820105699273528266408345116797570803166032005283330398672869622901855591574193492287785448266096633791626319599057331415945795746839344721726529839791411344471531419111185423436330991634752213528036141529164015607085314357474631506968705436376499646075610303853612870526026303765699167637715181541163776904002591898674301947197596597111808122373988726412174789465777681816366370618048299667358834041573027115829716980865980816180702392421792455338881584831926109447476852225634850746436220269925635331925227660679837799503997519989580245284257567623184731207500867742131988365530355163464307844719867189285357478217578918788465395711176666086859197219594398883994727069290265222202956114055183940725254850898662362419041441646264090620952751939078176958573983200255474646315749444777639590990640998411327112050487216233016206069204989639913286302522364873548003093271217401916973436518148531733925466233252601567728274545213508025017535514664093651727268900108477084437681604001447529604424122629736609733913943811336428848952472133592814305230073096308750883492086627271107863813777705542958984099588142114470661601856096230827141677555907196354881352729292750297944076765415697297384700648520065167261751016191016239055592086152078728036099321929324496938291284854121673148104922387724383390474772339025174820716717652612816250309817318425063213637693417997406111169132144867494919890432109124435430300974491359681925241978053842763456180697162936365283180520185282818467939573095446169130208919515257437856091613628387483845586946347874308714972202794400829170286232848496542312538820143236638291737889516631677285506297871945812766271971021287718133467023579788519248753627918999641360687532017976083504997075818731939767429556995798637278829286335508299567288388550957672597454001107316506661268743799434694247105097563429112378416541921391893893241827878983167857216348451212038699634999501303592216543728811320287983928872551841449209939949091663399830408360235812774392825221729710785674328061860015191475683508891831578670376954823265548879753219830141496662972501358496840948507371919933368337073109237936703413734937119966350635653073092618639162927811133359756014475712856400800479670174613248500450426202114925185369919308153561066778754686905825284967894109567541508512758995033087440470768459051347852636290751267876448279600645415578612692490804386263136513807575295358779166044190039542860141222799383251832417232843151047847207267078511900013159314285332633236844687509867968519582345316050273248550089086726196916329119116479396773636211733618425248270543075106623914660598210216477465526975891433535286215670620955189103271957249630055749504064883096436340471474150181634997011153366575883372396161543855578839576319546355305291090336633857523919015621608960022591168156072467699671926327564221904302506411994499055671108663801194259601079240421348487110151914483974493581561712217985997771210048496347442144826313668860670283645652938866287439911465658675872150305690466141369370745940862272857874412857009348694475947562423655865964002613367476010501630229964962978675824653271257206902325872970314910195838275572849794543869369238923372662443030773778155861248633842984043372598951690044646388546354934911318794669924532536702919780892203282483917298781273396815376962518179684979894697667183441375664717639362564452792656150015040773313347271210497333900926236904462541632189185437390905343515460703289277816162997563377479764747016314322113272609902635914867172095866992249984297520924849007676082678107538494473957933299285752444024880302342670595946872013796919949257501222505704731080836854543033709365848649935165995240052607642734658106212672887231198204321884430759639509231599915427267740550617186733582951287270591073677683399824431415796984781127358905277794855739677908579551954053509030566208332745215606831232581450964752880120351116387085662193200998245234880241869599785145155497301249660428960634325161833924968376950767625722070525367659660436513461194604556908211575073046784985805916739012917153601636733852644995026814097048720458625352758704558475152357895711996497994775116783939195448919078861809996390348811989981151903609931974712820737720672244460267909281232172105432613783138052902689416025185869920874610043365243470717067385931899563254666665613236409798157635419004658197982504573401776475934477364239990325602617173671883574021909012144116961172526099470447528473713990173166989940072393570841109719105050875111958426963870144196938191998634821754271514151430821709224525390293004325481388512010424560613884546207037341718755690304407370007168408740812214050671392541108778255080148500736779214460180168952390347464108080709872396775390818608730280422742114810820340284216509226170314640969005820621984724541860524493158450694840201033383544240136210576246456721597791275307775537792215886537766558693690840176629661609628093707529051748371298361655741970252283256044150828155824505185085772930141166622877539407521239756132849831506634485919323650299032745418214356216286479526248007776290197373301352266184631885458250464663388552489178573933407518735090576515333408319480417102329737550042555671200986005082876434031012385981670107239274523740480987533031650289198066603340155640612501896581231929485603445744036974686757113133433452543269507949954754846728977366450668654874898580561689713494072102529920840657125748183139407085866111701669453434709484888038524535927249184430006760655225773279689286507463269004688239160091611255166547039639320941432975080757381081441784149338277447233081395636515251976045562120996391866961271150236676714192200089757328410579157576557833243534008448161641267625170567390054493805953041314047403752844724303715560424366337674855909741583126394316604454446385078776192655401252235657166151880931503328646730830910621742368425668036116399496779074495631679404279881419662245542630261835770731822833273648619234927258681304509670436831668119493514826353586169690958313309678635760144915093635073918671267490905258911936033671708597236370501760625679020874605171928810891957662716478753932151976070548135315470508378846002416396177493267952404335097520755810415175925816410447416690544833430639657195023628240480144643700503001750432529563833113477982872941310693960855747999433099610392800731165026683597130687124034602389485881843312690578971949778718815338370636263751253419163314884531433552612894275316041914611511709678319853475494904712061131601634741123434601922557405177782005857242275291152558759050247420651680435402317285167664446593921647307699545651862857124817416404897339521915237692723342723563227191933879000224955181196008351192820745811433652904415882441311661151145184999558245875783809358565967993694644890536964899978073213014737429358645671201824707947800249999640275462003008494829457195824570958685400583371647209349149028823756258037361585085602372814765065023070881038942403916133230561036050888754725914389524091850216512528006573406550900938861450349728827468380229583086495929630385985782270529668735439845981844175978607942116477625873219252945310862472070021568523205454934613302321900129757144446196776021511887331696860721340957385960406639298605874797641587283349980610343038283864962720635495822388858857147716841732457780648095110546898316467178134245647071683275303235380271441813009346018079923767334790397064354000071755190109770148783663178956878960715525150347425637033303580760411373336683218388962408896728994376721069928672926614774168717668553264708817004335471320600035999946850291105947845522940890427792393711595624219825352263322241521339471292705094457559188107469276107389646957706825664443789729011361424428757314244505332014646858606792892579710506215734855308108562129198243885322537379535326290700549545921152427133978265697571237160455524410211946741764849338571504130084945408711042316713066425750789680728334537818724605417438433027738456649883760738525110947504673095087888296934769536194934039757466117227223504028685050396490957842042950582053532788416151207830648222063560178383052099853414511743246134940784681841693296920925316224250752879989551315966487615420994600663170184407207713724526529595413369956837096886744981199973192211576294441494108790828267747592291570482462995104279979079374955114779662086299745716135693855159150855989964446375299250768499740542924188348434416421899327649579057782215918501305755202684316616475608451383019681497251853362605901646732153123440556656074094631107580332803410949062192961829862767433244667467733060130865711227759489774981346687344650956175441893737836631366187893891493858008256963698126240242956837702288871505560795622597419711316180212284149316100762458755918514715297053343466358677255718427668413844878941424954678314304595572194240746469485150478976101733361270233150655455244406019053653525414189671025483556018700113349784431103810270239096777411350941023234277999975595427791696555600057394145362996102533408547254348413875153891508673980335623497175647620148922560037195359236638388350713341170619982610773531148682966886759352199406301406964526457663605434344449587144926755785286286437908288659225857215615994331761059166382466227481485788025932684203900409535664947428602897322591721165810806770829581309425694750327343617729433759720577438679949779621257348350653517921095171921369574123837521063116189948182257658987772150539843991478058544319347995704112835890226822568390591350732942688962914968559279418840744363281507228708045968383155575168511963634811839432843621118964396814498656132259938151361957750293686087328617842465503017108584715595504740142536137000817167338494274660616541702405415577283119780721821011508730597121094405671227201557604092350661728835340403371541472583940694052351462824665047606156882113300703017574247566319466966673049665731088758452725769302451316710524757886973740106471785021043305249412494806984020961159837479065441438611228822714064469830292868953927078964847878376953146765140898200968215232351817398496960596848103366402685836280185686052724478748930473070369685495248825013155748621229075445959099680123549390537812872765487503340274315804097179175132112642969792637836565326963146788318347859224658296164089688121144342105621043649462402057862657520902261393969666480179260224671873182262085419534575363701567300226799335451795687795769337617692053490182963360102647707440576450420426838117726472938086565496585851391326956615324501660173611493949582909923314825838075098677586527341092492714380230410989834182676350167205834818561423979958788832315706132268842960373798820592481438578936155193929506638194394198783933036643850660161387928659351485192729244897639215798680456292949198329433817230072082429595449357200514922331794121104203248254417675872731328909087560157917454190251635668860314145836760464625775329809813833711395571301721734212045260097171724280860744815628453181733368333460413948179026527382587546386193117594770282776184394989081619379392505416273650549107078001516066238797973468909720532986199723375214496277633648952157464801873924131375799722846233666815967637018285592383410282515830795604595235865647254160864532330535598241490373637502551143427887468440379185228778846013902904676574097609967834387577786606976300569228740154082269443211895799571755198636378567973085424515802636952601663793987876150403800607527200281750670789654290604184345130492569682665539055274425354238655169762653593137408754461488848238338162839567956610389448480405196231299539762051855004294866935010557645679845635936912137475654740962815190134792431496527287767294597275533868174448137437609292827303100777498364959509401915187587046546979605604894799692590211247668396217697983426885659400051485723759098459237432221904586544495250232214057246701486938649526558985692801047017510595783367845311483257584580048574695876785633890597868525794121088948960245230733849807740596289308111748656487959494013119363136563039957607009173504560018041207820589136330617298044967108198024108494415876570602419847641925930772042357626024156184727089651884471761539528140118375217236112346432510046420987515826506125842567346930966959099392298495065032156258953776352753319283773495758198800016739110086546615709234789712585423314131785103363918452225443704261883975515870812326935910772861832906440014179173692009989449794704145821745564092694117250289099380116115888412692155632336182695351418748352712307973217042238096534545521568507091630643524336172887528754975334037547444765429535224679803706103194957359796355830798928428018223179227030976312489400788478648836354958102032122828387537997451110824399442782861849579754341326898265286463750833999046901231080791871886263795558044117667450201667398998102114219781666532351523949743145682722517554590148408634283314280864056828643374457659651123374361939491589806389929269555027868526796345092132663402738408545719143947651462809130165115604394854984754211583714326835117917411258070663860565365988769918108682731320408055933127506575056140881850622998926374542904735828954129812585967686347334636819086113328165287561313721641436993282841066684644109202634652470466382634173422317580765330628727948324121348694860829946654215878417976401706178846349827042194473696334820547480144349137209689934584360064471867712529114775506812003001268099333320642136381784055380802664505806758164865161114199770792512590617820609342313566856381993605402686883386451512982798424016282859739554381136926520324488832100096250155086643556314038704936592747971269839710202770707027243903828175679896356837688099026785212745775298554089261918310206254419641502018889336447465651107992361432379122875162910258872016885903832143559640885591789305001631622558290630268193806349475400795317176278607643432696945903556632980722652872853859875133878992297603546860704408568692485382653175177452525314435730720584503687408046391910674653097994280516901992310089793621390171704749395390730123690980775084557609739495359185660857830781974797900250840796754268791246211158584971004474173853089428189940375607471339893924600693818029510221795359459830461663335955297367194074141023372766021848294736750487250088798339502732270898208523384022277435511327425572531695202440010995778884225462422061810263901043544850363062036698245947638914122851380528187957768073369584588373548354727289931919233786408693567784255019845005937049516523992868434750118709383710705192673047943706233723204923998808979413331241795181754232852179551912519274532024111358578160735833848937269787093298902421633930465071522682916993272288813588672214729423431613440990753695335002716470034096869970546282077515920673096541018553887277520161430884902381915530652216909893943736177171849072624370241483442852308849862677381147930882280976109817254772841975410062464172614398212105998272726918685845638609838725173874884324690087038389398756995894116843635153131680592913768489503639903489666838847689186653073065639529320255387692241335593525531336551788833596593479445657946598254802818045930247484879057444800532820474882909233986579718560148877737574355394457174215205093593745727984657052384688777798765695756974373442861089145274028110251140998334293207787514113922493703494471150247208464682307457569192151157317126033046300499099311554323587005520238450202031597394158819764648651975991239965985451392870034862787382068544018029140810542202398723365507305324506299559479218000125117777842399871785473524223244997930049433991665879860578545081875028599511915651417146431174304736038718805545016603317223596945971793588075901836365935486355223221184436465075300339674642555759801840077650622650317100951623000096509447585648741585479196412802440513852315325309123459169128173091161993725755579650299648245389923795459640168469527815674261918906094245168720050987390905316861922718325622467393461549709147006273963189862917200278962072901815176347402989722100052294106713047934384575079653333513487320351105829596288001378419689696344499065303508104900393228460209264976113820463863974890517749817839007062590249011408661598392557814185781308866106152602553558866618779811981556175180052668959538215077899989162965630332582892918171631497299537842334403423695491657408796396787910374229708666300641075691732382260487865660800990040091213945038235854950244350141995940969851773849083146786382467071652301437770018545318777088926231656718509101368006277071614978758495097621930173552030550882894011319102612129887153905990812858580666282820505355668196443444931860184364680489477360714148581961856540626785427797082012412008371917938615352845606678938328632766050637513317849800955109992030628144883805712495538455445102223459126283438494526792032326083310017825611830394888117244673270840965035404652979721539788668781027703082313129989613256512896046056245396405799435501097623784566353430112343294047405649052991566636236700625531747353344744680315172170388712946958808547087699750981240025670327754391047561499244314242946167991580067985357973485961133482406890251274948705799905195075552912419637903233100173853377923038033018565688055040337218903450877314820225775405792285510455188048727246276504146285737556697754676834321557276392341353132770113247047613432603153980497109433091194294193103807406634759658349591521462211046719651102025439137785863586775990520039815038595982954961331998872871492315102357280579840095791235281290293817395535519855718207689404680994320558452013932225742994697572702723089342712200833406573733646008354428186759531301270160071004165469656929578207773324438515055395683030298448198900650142423093022282750692285065364514469060227109661461974938061573505072275866141552772046168311350271469956723523719802829588736777666665832222420186220119490829168745349126356406720582323030307979978452630628905035427619237613481642616114669861119312530095660990944337059395990038251328402799277376046323888089109779404036588251605345399557349707638339836950974611891722048742522876112081102013098328270491713324353141923133718160768123068819316698861704052163273136854144092376906428774485871450934797667848661846505594057860203405866578329292000974406130571079745188802440598815458975435629401771599626338095348345082302806453098930925384224011937168939866204476784244516481263224241547772920599623697339500125207253699198649546393511343940237546186194046646414493614926021687879625370971311468934164087716002552149133344950902266201472718953993721615407235048648144580384667222761263890502975726360407402460520657911773143638808797664860534642992812584046126779155199217344513814998035706747190337947103890184334783459500911139090977896389594565177602119257204355882761821452890725900743272819843386014690350549836736660163804995246716494180853490009753491345811014003422068863069193929024068859285239260100814927604204871959489415829574116386866454052565629146705821192108147881426365430834349838497720010273213985308891252076934330389668893679357382956492227252001468898912173985108403704606950860956544509873354464112277576938723672308041076880217930347814585050358575451824656486767525414231483173156242494871496268336078784830518321119451322841999246788937921277864928479244443778212230637828677529157949645501017229189829784873696228082654711041908995818458266018955117272061483620863742743653255458760948078494645984455194039978217864017968271286447290816865253345802768594250030725741680526071263998248177223507035073528518666484990469845393394519940946746331035205793855991868416769939313293420766602637775366953841624081489116138283559809944243972502430659406272597262186157443344747282433107146261713906982996227235461517466656610603664936737933311048793687275875407206714911889480686872860133213499879790361783631057659729162986891564739458151167968071516202204439365649612844817254649212269574370051271557677617650942682586689342651866047304549483201352065898534465987912682675016360047362388655128030009816459466074257487203977248620594671321642092124657215190950431012483235633313327991251691684422294391062316895947717445629593569944843108178719204226793137858788029609296551935880724621769400540532493415376290437189746981916176158256615593285743496917388309524216186054861725233447200342635677476178007671344797277360806084053495521998413515825075965716144841829267089710098243998453330586285930390765460651887903938131425862038985850810857117306877277320687230297884037760399814509343586922613461063409126605233171362006890634377389586673458456355951944995914425913957160286135002239033737510759509146923591765750050604935798988211236947824134385721748164779795281779984461579297457717837653731040974252073819619502107232878115435527290164727742683665551404633799843164888438657412583128253283298095402064058875991643228997811184076070390484794064508619810550886316332004016760275281608838944017291597152388291736574678983111935926960280107023205317807098209525805724620690437774445563368051901645439382234073951654274260375833041117859354028589329168616771536494973449742857142221254061148979700204444497043040332949137970971522593902395921125986210461670560697196257355345317247156146436448992806658584723687205220000138658260874799058009769679850199084598483011958948948649250060895122746974186874442668529624531190047898068114774602399278287206753668344531496014924490881321229614006110599169972218286572778741950982704025517404687092656444590435934670780943566254930147470366784307947279297246103300276716002055865339259000583011438212445432463815684491675183454840744343653244657242682448882286337084331712287449003801903583259152190780647498483567482272205289114587304656596699046919955534108007416959759373391517658552625914722494645208010567001180091804914536161131121236702193139136286455982583149032631369650586254816474549681147292696241559967160987269038279155903452761490407863269032688164620562623881658968056369902540282651002656029454374321338267098088693582111672841091224828719474124145937686679597096906510515210897781233926773712307766202048763126680715396209139176897393029187818825104205651553043379051903787908510617788864840334204023385123294909644758369402249914073636985921432398958052083050620076137357393988598261277296191523045290676384102043581475192578109305759402946205376205383196648958302581593909124797200413689760222383112147660414285631413743736281793715642521425088721067907689187633440363417142596536976175460936835133842254498980395403487905156865453059144187210572876073297794687622006931813864382490699413093377682857420355354589990533801837434705204496874697703688935262974756568437617714748642291689201629984563633531787953249259696055686465110096069248920512589109529204717495728527484305955282542467268326369747110437165729727166689965168472176572225786164923707917318243180612094558349627626284564566929679055311651445949307202022135100619393369936275411085890887252665611357550173648782652354325854022701845172634787811986926173469957636164027227361787050565975314719787453102892357338437968479652662435201350485948125826581972336794460659146643349355471141803873507647682409871073190307036535946242615302459264401802906804982941634518053975308489954500617414658632263907547717329747680205517066625293913193220909331301270430039204539115785056178217123527046655746290347736338713866173034946044703153978055691678499872772156745894033937383431043846362351348010288564764531874913266309550532330882827474480166525089476200905479914344310571790039874768140194333993284363236466772488681526143547640863027342876347015850144989917769020974518966604079607017398975336783178999432769217712110340767148293702720029538591952006117257154208365902699791244731177487870789427658765075590993643657124148666068708747059509232805529316740956844687955254179588459964355270755509271643535295557673372627990568632544050304629548449844896114411135689669278220975547518821996138651147928902816682376719303807941170641745060672017764179776772092745546175852225190687714188072271129379650738016141004347326419699540347872571286608689848156734018141184175482560980224869934659912384703573181864012410476092612998287535717091446400696689253536999445875073135078452355419822972416944327265588426150034572797286194944404938119374375422493901732265470800360392674277296393004557284307016756226586493049797775387422638417229837197825423280362405242359456554585818380815339414023330037482325403135331119762478865532376554991537972438897130535241537155193270857450968505182769415694536574078245785170562480227038390448377935472243887382652819854922189093062790563614124529599470658076954656111707851657901648028342223138602291655455002322759261589380789299880096630318870679607633597845917225346991564063580802668987753127475535951731906678762257646378607039040999672052778223426754015564066341025917514635054423170265439381096060958561445773860164056714702843602235248656525042358184261158164150542788844420653193953688353330621505218302965875223714710155436890494646538739148108688374324755768507822988190112545928394823357087441208956940231567346692500324821495641248838005070757359563357385178518833562670438231030956205197624828368808703237523955813137661870344871301506290876648707641811196744677665269824459936189203059790583320000448321445427561279145212514845432480896925876704673468921292380530605476193528253769000023715844139901051114448479211796066550736554285831873124618065543472850550839052916245758911387201588903124702288965664558479000018252889259543547696919403848218508040021873173407504128040257261874728509966583215784259925688323074873234615476059311849761090855213345748786720811878212361297480963515656606209649121697519068395464192057054996188984823718361552971328391356506778763236908577783763764441305823004123361175968832908000921293490739295607840672026458805718702791777672186989416829112650032307942898415407213910465931290496709853651146956019227908813336546288058218913831388804277093827315400300809022437806490555373983085939012535996075192978302733065724961961930645658515292188854312433738629648593841910623067190761493490920910205055142171710113808626788359483965831911302008562434184712474139114697064358715651598742601895445039736703476818153504187629636612064723398637803814426695369514198516488616898870023468057105545670160429267737961997381061369474481214493633225775677022162661299738259573748980197968127588461780405271598803842452559319214002633796587222336572197583201679072373243563163649870385641124213338626552649701427015812277660669521035931523137314756584726414012434505232395674383228747910130362212307347232017977971722423239331598593757467534971328250645598819516446118679878668797031332515696849883459283415785107532908416941897449650398414506904406399527033862391368824611716947538621123105704872555549195556923549446306758421587601964662734742343026496676526411464109374648197628029034240446165603409332148659536254863822458488734034807220390022700735620052373972769386220213528739403409130089873954913402930574803970009793321707650531567515494863966464221681672177624290253387659729225142756573317707460507678666246080030168653340739302200552187546397327595140063813917185045107987172948492457754418151665829698152000796261244439870632391311138195686139113912569516010994160932035484829836320162625888398569871699494558625979987595861242579181483741515926025455836379729806107996438168979545371294893346240947101543836482817713682427666355383185485876449253151060699989373787120438497364199584514415264508789898051815816679002860365246990886812373438269841702129429918808449943813906764412374664630577660082234808212373777971089157379726387983681821576406604263722334499157694735000404706911285950076292863206520261271064607966033597702879336195625302111673922421699090753625826807883655798123477098723991391576513895579012761748541734907401597268244972066729871365737388592228908814624952158873720865056197711480302464290216332817332650380579341493760836332846798026647241978596612125907483800554695602712612452743618335457754421974066183545449985285903869521964839634212121600633043788403684625311106319853053776277314736626246614455333039278990583737499880829210943079360747286341029134049296252678221156991383759125744678820933355135998374348400680464411411041948203652067797052239548662517825305322524731426727073750657449820334720952693953053844012874972203215513995551456010174099575794733137253829336666858834245906268774002628530913982738049789466767225910725487686810539661601677145128051657792688315148748328903295966650326603501098193622194169628290272612079366110678615073726373329385534396807087675203573086157405570295277756542122364959537680110958950088157677046138264434868849400879829634313430588516271702574434545843745923018302704710026182491267188782721349585136875405475131355837510362756480442582795490298510893191155920271088737886150493447248100006051811429375221995360078844787496607125214784392378582684647015395171875382272316642146234170535310448619950794148791848612025932200434037411713511398896137602963480079018216409568927258762369025012514931691893059935032731980694270647130260350576829188138603447736696922778430700386960805086250852501690522642427154759543279953494112604583995026308025255273068083616490872916229666166435065728504219980609007479698119579780562811630956096635744097352690934677371522964204374179717885658706133022798807031447398219508748759764527932311744292261771562082734610552190300230588165856449846480292162835281259460312626361634120932095610523169114548684374438262660831153603830270094294841138721888572617007172973680945943413875803451060355041348253525021493478241918896279653019056593755316742503983772082263121236862047985839544049087612525507663571838113348028539976771649096349965048252495303907635581867002021043270216744614273317908334489264527244110391060399298919329212524171358468668651293290924210099758964657126743472211406022272506907829299883630617300652968877938942457726443569685642093066721245783290097022295705445176656585125637172624550341128688778715870547829505189640781914143395490147394857425700247787977613086046101491128242099368939852736224624737104708954100746162775374954193183706826905911586709037350737854948732722443452648421046236848856826939523592319978106944577412793947811934786821885565048169625901980683752411761045011760125113151482191200833516169901020794847869370997783267949280253383170622821226413353038121416957858746083953180748343139726434223093634030415305183811295473035251180707102154491049851649890603149449529236811458611576651648123457908139124284013172784996503917048749322033027176825946413943888606164133186457527755949768377431206792366750100973664650797734836418534842982820312879815780816307349719041395447586379791533140839126259955129891017331013034354783410874172541735373020934665841743475492389890116679112200156733076915531851912807550233130062615912288682988650642988074555581213279788791416947639939942322066205355255242525171216426480122074348540527117914903762645946972104553150978978644903226211153380325492770409887422973738763958445213367048847209672584435393200122406627592697795105778396550178718396227717866867794603947798961715158666140178859972119443830940679353716286640707153798389862110489515360454176806913339106612068553438208369456842872176937285973569383154511016734458987264928862064846484931115714489524542472926799740420369619772246543045518439754020969813469876730648778132052074077733214168453967650919106012293547593760974652055015035292830728683065967338265080098226171565948660590472592196581737600863985218711479593741819144424973602814796923129349930563695190555066789400293781578140506845472995385479607105080481232127532126369577355084368673603230031554207941356261548139540084831389292797443612121517635797762747337362831026389178340503791464174698339341833817967723341221632504654745885537838271805325671480198555586694334789442589726354179749820423344575482980497233615588010618266436301166101442784576126643038708773664911371375841328757158816537016724994673631705506846967725495365164488207575849864713453995919029994234188779773184251348967663258329499729872647819474156972965368354662522879330315194472682557390766765074308486786731554351474784929940908195836666851327357755733240613383186515459360736828572539005521780587724000118162361803576998148862130652427821087031988368843680595091227897089664843503616922923545473298380889493582598433203344611433155707668933640211593476681526212631580953373050759666835694004762597221978063425239064316074867395874639775511309313406601877811085233155659031130078631666484591118426659594761941254611782605713948101671203672494391081003011923805177909101114222580197905534700633596345707795999994920978678523178909840650633845593403622036566817131957399551533077224807532097003582232636814491911506581242998318364337981342442532821958896470908292918665019068364640671344945353011231456754860813443850307180363774904570413811473313438763622256056409029349104600660008078837681132992254615146018287378111874051994889171041968680247281191278535369933584801564202292255871613714709426747561882715653065083855865207654140021576111244636361263768710366997428659982788830309795693785203091590429035310006236333766476149166283283865211222379557582556661523872223744830283059185755069273212734939965915732561095936987768266609412701204847799250949703977321672967327477692436572148752273457844366476540292272336940900635252679983395793536767512478750499078147883294197804743945736013262345149891520729737527326804948842442902463714183985102445398028862284596004137286041652203391449637210769213249311843230529554933560381757205403621298446739430659375486925190856415862327265261841844861733011583413744160298998747751888250435284703924652427798945877322941661186190270646213763684700994198952032210066795339989567540767160923822609118404663212762343407604180858502558780312985577936277331630768432557256988596727101246771341773889736263086267360599674873046947914646496758654581211604786465784606260734222966792841097807365561624622039250242252630352730752869415388043270119430213598025792169807423707392156216465692234921085437396386271638021205032116583399371711329984601939707414040342861182168148784373750686176673670566609532997219631586543426575105334307039333181070603256425315150880792042789591102135819430600004646731405606173370899474143169164393740916214791772962476314594681035917966408321873276564125622815406305109059171339376315012524185615785896353674428421971766784926002070280281645531091916373220066455495931664610887826307903764265194210191775760928256013472756674911013327103140660270479877866844863255744532401062550082911071273791184076997106589190647479204515028695233840678597105621447236389357093245722569942579360062752970500049259701818488886578879351210224800801421864126182757222366235942585900666003980268994118610570040782179778606823121154974757333575348366862019001109285195395712891983196923878521926750637206200568347600652356293090310254700475173099384648267177601409887771590324461579879335751639840039980756477876188902808871440102100228091804823365091373182912765991921248753279118818412925282205757087194724181881238402495569948482376857973142842973861080669332454970682139949226859464563314727580967526899645996919202469650735743590490975437475099367360636502608113782967629270402088820575053737759351048306190798487883473549329966919887882951621323707668963845615997886314937085920369284038384131470369691553869906949194410688409824389411205975887147044614158910626015435449937276224462229226022002361673357435646175414060953403774637720030802106365431549100074050316608543955065976344870160026837065915110199928367498699377041653795495538803445950664354939770192963575655427690352510792160191013054613875776877399337761931403087240345979323532952910413154976923178045722007192825873051361467865420074408845520019867998791171642165774849367295686056465879968667261332838235912789812616235861375211463527205496402565812136010993595049903282050617044840128851444789571837992987163507051527636157271148552028497391832746191116254095822830366857281555238603806395787423668750547922863137755321727472760533153539702903235314881000492726524262503546103042196820813064403130015201086221366812886729844789705571325400008933253528138851073929368853495923864860596331392094159830523362819914590285585399086218454313941773022697860577237376648480812251854765251457702080089835926189675474787804282081327441891409682532782346856763941471042900283418257828689672674595469848138080242015308266519290371054501096298307428198620921491765597102718252636880553742375775614453151731151091477381271768192160663757858212622631237465858803230618543472735647062166238661949984989218605724905221964317346300573173416457152201460897805392835105990208611298642595962737353923380423727254357725715885053056452600929019212886358266278186530528125370219598642641507530959531283717439967841820204730810880888495999591508787095541916439748818456822826926054073831421042709138700999234635457137010837399604170726014808631286589294706995022666788366022617481742843827880243115449007592655500193966206846537350338064462137338034583428913672982034970678890269638733862891507142257892505019914890956866748552696987590825185161961394906051509163309582256646848286741343247661856270833154174295103495138354046739467942963088155854394982174846593936680704695871858721410327668405606300746919404188215749215357800285084788441792411105851091796151326218989245513364934454672624986707855636282949724778271202838627117340110426421243848876647980933097179640027735808448855514982246059249330076180023862389264344710709654739555408560583533734774799826991690416486039834475874930111080539680448344732152599097992162989920651820757032905595947949686400210217122156699366937798021351677652609457076780115026350054557655315749209180932181488455079927168525819504947230949690526573726516988563896610680608527370145987706836956556108330562062817852659279227778405444629857240674865447378377525664467671056418012787346719844952007977519628440976748979819244625081054039094440681124287912271310582484891829798352348036867657395135850396361710028413998156965391049572856541899190561219276745419735637690249761471884628901859611837043279028011344771780874694144222931542963617735339583538339210388995335366199989214777863079349976633084368770849322877671430293819731359680406925781969551221876843532084013439356788825109313038015276535578351666358373331439247627221542284699924280103240912665306127649894479095329376192926750286242159229515005696092207237034171030661938841631750670185399246897654616042690954756318579028104641830306324359249537465451511340848043082480894432354822208821080863469468518955416908214038081669177825459769123258249735903556643527714425774088112117184709194164074826229756911168167493391212355239060385563738359438283562801244222187722537768116348806033304694561168134223268509433389603348224204784802593455024113717268050578054511803921392865585845314805456873101051337781042199493154583477241353078268888867126643305664883137208314528054577025364293687173350563898280023962468316388451634802589200399523915463956621047894259622136077658239792016652839696822481299521332274980283046544335569765792592696413411563800503282232013211750623724102488450543362098985953297212529905434430446980298362073841004917936947186481840712116942051072515714548122192270329689413761748322841714686536041858608669111277697782017760424204330207694904709742387251235847925183196649251146109011967764216823400087954844783778523439044092839074642699089094392959376112025554471361839203792914760751296284103131588375932739951753836043837149462250950352688682956351645049794681911905216475591985513081992551594750820625279609156214648647386201270480435741313581014766788230640975554959941977094684541026061715914805495324937406439343962616648864399018843504741236347425352761895618643296980005910514695185834859059709239066638073144612857454769445972762293270704095323834123255024167778530714086511364672781375774768189080757421135972668837723810513836845145203976567305901133107988727886864849405489855310221980196687593590819929675515309068288441410584613785373277114997730583026006694184812572965206500455957909533059403016304391173990834926488770299205519442701611653328010363742057243705407029174936778569597421672295649785312394352311956253461767450080861161383565623983820559053093775886762795290238440660294642132715540684920430828557998469404946449262824163318901366893914046273022381610156512914332013691470179538429588555477310476426494730312301120855951202353680756619364673973395185840755335989246709368254649705410994403648765240824757761717370211976482053856666170290596088908004036149136522951154443759180794853658497704977125082640499721174284322677500295198194623028855296992619236097741487748567936304159807191569033954911748289540868763003019094490901010484944744599437063825911494374143925226766440006321390340419190051336566557579882944057704180109974235727406997526813091635377321021039165228371222268960328440267425541426525873919152710847984076398614155947538881353899551889482533591339483561035254560754776408635671384045273956736659878475166768781096785265838012983138374873591566226971876980659122315061243445161085820468431476549257041481656522898438747017421559428695839284784299736769556580431554501096004088694404559131014886311306072431213373862335779567102997257076092065036853222033961234025083106699118608074041059284635030826688463906369275241822138876581827773951220002293275371632979132396056004892252926552914381269835939217536760435405002768425300902542035753456561562699147063824740840467301648644724815001215612868374106624720562266847513063533426416904967738815172064543716323750395928022846152788817711552268658385588899579565240420355509361733584392359041530825906213689426644912118400396341823630447232225530872492867660323851650109399709407241749208401994324006692011535548198714949876300656961232862772231244139106075908796671764942851468995690032253935304387538664987658669647468414243892212405016049403125872449151660207608458581616691273953342990483351573869437919304269657992193871680595966093290898789916708590221663348484253593053222521318098018758573977629158270835932044743460284574432433997076457063939352707686699523949005604461816104586482742770064763694380627224139797914673509947848227359894230527727654025797320527450813103116713610907317883351688170138637742610557114711626923963954787201873064806998972379663370883901509178905727668534001567777017908548175784897283547106909483024805014625680075403625229497995596775023791771968660237996593688863734355652068552283565856883720586972644429527380908099556736586733573096854860926365902005336225184846892897356798250303018054615179461778280889739676512714822488293128478510054178275039402641380599114473602586867287385095717743471139068843768090980344427244844716285673905724851020519232365226964841058569800803546761916264579588943272062130868174713647491219576953651070745589677412265449811072308981539570934265674434105918736119074594860517800692040599928041342264920341500282298506525669601371814447437489061465253463717929328110190091100274109881807312484848675279740338218626221269922063613093187782707984326148864496638293165027212846051273791587135250424237064236267611059351786606211440681862050559477311767057730335379941564532293142023985026905197030782844284349704176564874439402102851050378994823822406162853872567271360441955436818948253056482980323389143286178773470129971236184448677456233838337699271645440746437970375970953563747552203277148273615629989778366369880396597590320310827625646639401802484582987337010211058648078769947299034838400544198500130145864074775574358441485598669801291291418765328551256713311177285473002743323991984709424604969871568274511200894438528881539861468088845133573110754858055458268437715902614251200506581362259615376943371990557915668944612391156224435358475671854134387384839669376951846512031184568678363391725246755187342739473617541231615528567120620164150584241243353512111732919779656479326726488266735764812691568726202114715366730300756126342067637412922387177210442445754430141118390137502858829013754789848561839079824187108079164453866734564409263344997359008459306573989963796006143805499974421483068590738952416006929787105093547275505309969754882702658932199134106193505403654086485607593386602880778312037314668675917467660779633418741429074746954534048019007416853812412333242374496986938348830482571076678574995294285681191118442647756865601035764660720310505239325875366553973216718572054547492431459470092860178527261966308512134422638974292698463763939862810090838941118971049640326088056352467680751899610868699720436693537625732964943034465015637290078905397942066257619045360510057283616957962855477305007679992899592522135217844303833969517780722046313950691671960463869124536820357234884850311731959603064596570014040503861312393675147805047702059858709410153441103865911207390024038088630608063892985717183512178955771234339566749877696074229251551355121264901079848333275958396998626468319352480403400632015527966724967377893259590672479274874553790070805741450214749778791550544622795300748312173699974705073293135340083317381260805418974409786372991545112849456301007445830923360215668595327165653982337897679502265070967604063988522532683199865308897548575500241607115871090937406109197717094063416200571168580373816508400889843658354182467194130434567509370379967738125805293710835876130502217516968734478240133527580032616314697702791284145161104340290665781600642370566723249869458537441147046240435500532703965617766542834891525095208101986309137343806433399027162282826452189266000675271575823480505129375171446483497000943463596994291545455047045805092118191453972289128209782888924554192966994411712811102227674307397910493378540539340991009671949925651003921408440853329885361488682330991000937451227051098143298812171755825693779867883164756109433433256961622192604219155639859183535758279696138487257627586763201100869117972115486048331487965151598349411877472960170614575710137305637662257941312160236331283976162084123614760632603926458979070911578417177863492158668529765647389448190127903305734361451217992658104388222354682273823686836572796637576455455654476877408421420297978008203096094733640218465768939610794989645033660640536734798369687530193543525537592848765151702131590693170180531663186340311223335414399148728354462662476181645086253248302503572193998713342028175500844582088072807503833499785804737131431980487323646306784430543758572068551298098704813639892091915731686298848567459628576162524498542607817623346352546015644848727814870698660623900073058048781557282075490780096941291534487049524805157836960957121496656928879329258792168750856535560043823972497724489776870577604310523881692333756687748333728423795960761506577862309592982578005940967852798690410068264706029874777631097345976442345585090412977596962389453116914274611534031300719051555332694382553722066219255422408463383221872857291532555115043513464569462901004274189350856427372880570224073721777943989919947415152676059961634095943976872169509952748791100219660470448259891135702234563816387701213013160067196022716777730361669865213077660948871076717229485572246818410718892937192902407148733589013731485960030075770052558592257940269463004846320174552184782343271504216904788888355617497518852570760308515891425377581849392582892445150875373897914886054492170768489858428558428465065628266376627832333663119710333991789867816689853277897458255439878197837203223578184398808507569664379446697758706685057018924597698599043119635072151847339427825075564971190256318159597512322296492641037106064769092058340131007348396638084314933404173071728620199840968867143097771501268915694115663258403050722945630541284640844638836486416868967594664189895113929054032125232375009686858316183179736083984014896475218577753616762183596533966735848645425516362048889740587331812331533828937573277854386967058312293932828104730081512901930820266744060712482604935728229427885349035622374675989154633107735420861498096630413879651270281792691444544996649079570925567656728975366023223271890121973665626614844637525144939370324983581234322020527170589162247151456230944531082075099855467192167594724116998518029775457185670166823879365361668623018756745655245391377386450816004835399192275903687201046653718029926547279460432414285439685596963087915872530132694593755747954110340496793689294500675283623180059664152683316333400761792173477013733322983019277741235244588937342440650793554068829534487284074483306904313059143158487300816656620710893385999751911620312675798222460507917059657242458185722298876477958430698410770677260397198661195368753071364072931093527615415298206383245551907774088735458279248044339784938136626869043803696023379160443552691879827997444844766596582882761530436688453801570500478808809445311153672233344752377002420387573372579133345216978807096876773019044551551666652218795247058605953665885400069585499768151269117932453608249311447923397178419123046432595972666531852098330531799393294164242726986563627363442602115174179918410736867052379296985746355528457191287983408027905456452822900809816405262422714985608540169121499002730474736249708037896725492095238309742404717141724085798150386908115624323422755627947388960085474173249470437087540384600832012117608353498045258591471386183333845476518255730215214417509484486218392506308456295451304656144146037790615258326342308142877124030926994442398277588442233475188224936054923556559710204908290600571039152383420712155458839058948909945370985475259136019407004166355054374142473711093547715485928931651075413313177922817884361882310159053051798342650708600433651943384194512234114481018848128317378350148859649355349458998764185433320069341471944842145905812199787090040961128421168968816245220948691026372475162574096171976376214365359912564971995189745441822288196216121255916291716539664237753162871919116271003263178741067428152319356227532409228760477196969117747189048767927869101773085309514028856377050239857815216846903633572638798223954348393544867723044023645536372556388413542125813048001168089178296947794636993944466609658270050923172952045892045661453334362520949426444665538258095628772166361903304576181976478516806965722547616200870326809639818017605024397618105329243465954915893517957849700573769093110744135355517475272706377862778203632438709332528399196272674156574857702149077758124702054367355400075962650616568734167381426425320212672331788763295234581833825906950005402804684105154030481336589521332129181556549835817050511106752047740518247623617474253567788350288771659427217688741853319956499546833801069212667346696866688963123194710704815144556830866144772071456149179843762629905636015525165717920198992134248392893949448876557564838931323196277098934142030396451106815116958635945674859148851929820850350063544930253401938742392557248531216360891062083093042540201053668279316384587933053457787764344156226133863195544561139948215188466735209700483616990775557691488743782524196885211979326718042387166462541124735762358888645317818242075304975599254526164801645665807811527554717175357542937310509613352131393360766940776698335475630066202097492832904442299459082228040162276521884654250973616344283532276972388181971103520678696045546822958209890189551716246234181261074491282115704103714336771618961627857016252111822259326043528198261881564264311303070492749058966849178421545005043993418128554008110908098301245343977709868513970681405538298342479179132629825160679514987294471742197534018314242172342182789401019277563319143230755254920678243471441967331301249255962573370005763841007340162169849255383787647374804661089542539876872241703214716442076350916275071324700828166003771803721171370379204416437532149460101644193576818810452447567819670342487440119651666103031350925084853965812604079156675338771424823259407677548328304432734627337942938368184865616620144090783265280390031830310809971208492688707486622663386876576717090705474199941323778741114656371868870377447050132678454757493512300300779546627491994943263598213819208700434303109821305042158854483693209265886182854183183929533513111925777797966011194247553197862522191903675331170354137514608776240030904705348171211180484948625044445155080224514480802350927185040241219114480716174618618950539330466820792206956232390618478775690005680727419265011432099037702366546448547134632577824739366175666578480822237354060528818525357515276138524065496613338428271504189690543430789397203922673024189670639435611721973931684530968691824298462294910827172473665885474420301587427565151900589670754753126818252383956342703324765798707246323637350203486613187941007317900524536406998012260277541136776867982936723699511046491150103928069249012331418505256252862776876438827321396747551128863601410880441715553525886980845963065743596620539923643596050503596733576056584331846287539545542230269889921728012932008390295217619436034660496033175699029714035513571994381508789649055727088103348399384787635938744994268239691297164476165439958723377259449164025987880996617254390117427527123490795894551123944038836834603861657219620271299757572483002940113918978790541562829092029096893656366767063919147935963944174075350001864726023359060031787912366421485240187841029314455781196288565467142935094624793950132422492454210909860544725570586542002757167237577179014050539883373205453858182648152983252180696087212170800356469270000040278642170174952941246881188298551582480799773801303076246874344497561192712169595820408467386416039695698395179635661204483095836153497900095186452251815008862686760541228160579230747894409435831790828247974707510964835131292554988884493890021645076860480270011015786517316413613667569885145393882024481998555099106992658520693709266971978128357101257877748170520849802809800488276380066660572931928015682032076768275579451013236058730257769539537362520879172410298146267648283424828870989521734285293258486408087476431709919431624389673839852758131039042750576332668505168348311943924957640801048008601886844157649579909015220522720291966876780435132932888290082260380305221741829587981352911144971811682536672413727917150924327574377315547076632748700098530328629462641733049638338632108962530406246180501379874360583337593933380629152113268779365746216167250278768486978279686508562961979399345545982919843335025727118023747287975223597870696911646453802941866451943338568714359342566368027393092159407611922264584618878055117793164347853833708541055226855358728553813495672265207607310303076094909696129488514092232163151360078131839986810662551516143226638637130948437066989752105494853362121242261670273659178206401803681227554990147952225980857605067720527372030855543487228957751544863061898920061867447106124324921956298566168354618741404764192228341096901149625608117379600371128140019138866203378142902886216925808265537969465753730276407910120851874328235524842944075790888497220229776918576283916226400646072029058672445306242196681710856807510493688987706083904703973072827204483850837416164872687080610892250628401583133583087209778958056242122029511646568337104916635624001144840325166451154167906292834762387108944285928899145082297265655740697439915771784424732022858803134814227236643125121875399466977119519775322623802860954524054865903915207732686179397075567948201989174986266318975330858943260109718677802495452271873115722255069091322453718705365181084875907167414128320133368372880495104003698305130250446977555192230328731991503037276525822878988818867468983151864692438534975984081327993553260135775305720771691654720346066372965465823274492789260395674066909857946391093008114758865454904839391989311972859204725764280773776180124884082567759970358437586209895112728287626161192032481063631379150537552080525034859072294641256443981553999835595161996999364989793682972563534060763885358745729818153856464907381414607519668132067648670317873371604195145479166208537385845144783971587571001580746324639142409861805200382484514034150766810397894395548864486441844145568100559998975848924644856820465850539277346356793594527753809438088310417213779605907586085672432875178689101193887349756737438886961974421939859366990862311592707553356046184770051568736559084608499696819092998392954522876889852205063977853467730288443252566002354507295808647392686252004803766020105908953902321167152827977065079484593658475824820068032270474292205802761734351424836407696022933881547852853300706255744308809789518010982177951892855129761810852192307879291228127003416743345446068058708085928944407710704640236391594114973465926096932810835292105185207931249143597072638873904632160206904837239715233684279102172540378855039633523918226012051211902719969936654765318219446424950661512111277659355184627338600465568394333370466001774366498115644672173963871072581375243461092167243196144096135821334103129620147737406967096855457287826505725940929607003790478447884136288537831225414207069361092172061149183453160186429383026573665919682420987087586914077385639154709927359826309376001026361671188200532156529012257672866879384512129924612498284772374707108775289539572667005650745412797450152084111157662916236181669597312022013824470139801736309566140974354117321899539778923771419384637828277049689706850416296704661509525235976009518145170011754267308793986971182623330440167759361240529934280780125481933371517291762636698407480959958051812922030836426865946576719915718528171713049684753890363331889282511722437342329341889049175967224162346657095382737977742057584737484763309850568416712059948386801618576121712361938026201552200587022173992286184410129850282370971828425827426374520864839194864642869104124887983560556094057690711046267995079159875173729558698461807628213236936006746638013998890458563195748235282442504235050237682354913982594053744246554317290976414910597137392253992896381453940253844010497320324723765315403249375075316753381188473310291003597353045868042225009399581555238617748447126116541670923357701097421999302095725986987147552989028271231058289773587331666113960430624003483902218316991557237255358598831625378206712905309616229289335095581374748487351759093144701261969070016831019486746188681827749284766634349893727416430906742888641554767861855670057202456010121546017915655076728123578728978361153953969781032446642961696940998649597871478184018729048905417953051585066968296666312783002024674707932680596903157577530956757346008814894797130984692812822557631796164683320719723461526600328024922062081705670915337350078691098804598191815404381436926325919268141800156648391395883036212717719738511885131413789881204551067004625655130917918179708010573885807489915742408177528843654589877167428035676825482071748386894953230355317744870209762252045194860616724558324144273662396912430469826046495002959685806281952931508823056076939504319569470005584934532849196495503633076618519129068993303642803260103555395586061675356798009390358381064409034635736514930692621804055697009121628130064641143482739844567497175059293222206477843557164389411546553644135430445434530178105095819112421846238359784670561834201970023411605584562138139611687873057154077025844166005533657505771038661577143867296337962255242450707424346945550294156374650459442281364397065155613653663337727954206589635793704497747362598625066121241218597835913827184833091987096808164936042891916467737569593506490427025556950227387309965117767511529131893828771913179744282949517226893130977403895665539975264849271954459403325550837232512504570229958228492670550233757934826189159526991068272750186173430704523456645881086119607847080766416047626962567586785925381475432017789318839788858973266055095103844721439701740321602565043131864318474642430201981281905865728753912942236751098189003750218969804264562418307939797854549288741438451121995204410900114524603099290571376797531142515723483378633047997761330760109056310723320215941442662992715849789281441029838130223935931677032298562091797158895473176344260539987348986900494034973128370483740313233789654422878749800689186899273766292334101260467365838210234432041653229134483833001501940756539568247676088344826742974602159990509193495986980958504720999171306537489324265790577072355873563713157761013182651935956112817038269510144338505611832718662806630907614421370011881965471940337498357078916888693570446709928987271589864584805625667392053740684743143321660605036141855617197181556929571454789500211063415929074279223687113419839189991304883954429647263896960824866025714233880552053168911272672225838857764100669471665559756545851362668257757894419289867452751836209180592469274519025216540403964502592524413906338258153444236875125423307491202312561875219269417237623709928612295926608938638768026279814860903378806860696556739236795889496246554840830096410405911722314267384978365269493806735625765982494768283983686037756397683793950216232629702578792048999804136278090855867079528913638722971046930945636257697014971648318599726710081146853449517288002099492101199634992001993368921487860896550341229074807265742077849048042674332045802584561889185288651019994939379310783273871352957821058353293530865248746069252149224822184816613987486386244720136875308385675313744487998619276562874736035797749945342189718993618790558971309479646930422974528092332987684689048400282488965558064327548512114153272691913102316914436786664591976315080245866569283021184003825031497078400864878027793141305629500021931234006711528940076940129717344387147628250477048243263612451708223617459456206844390379969554416011038308622027221377951184843602048533817248136619152837809456897148591268142609424960496889004447092466994004382522296973454115423894057748922344927044620327677586166992838158764359390844693905179563058349827108320095980988951893095070576755265723442079228225998800725276460587052218523591370923023633275386824022753280637159563373244140393029766809682942864431602901950859682015934813098455389180944950118259275475116941194138975031357511123556287592198283812996485133711700335201861808133192576107292096337178896578655342782786758761387702943015230725437440169857486857439083861811569507718886756577414208429021846015260578842461361728834533035650534436953426527320990646506808487220104698519754077147068199228888131952202626860794396394977659434741157912403453971279527889141212963991927154235592478968662834459603600846675285605465457743697647065900794477835323765010608750732130267100592872998850891099272923796741808286993075465147307685499820738553799236661993774563381799739820108819811389302168597324605748781317751188302097065418213311806404499900534811237047736658544927595757334758365899925839576646523666463759490171382131325071425865695899610032752086310271952670116703440256732385890732221965744909378616377275079268854798999069612788305672909291424429960632912862909370962295072517102461200074629108751204605316976393266920622272939951574515768793679573636292423084831118248248395161936889201753709916286239419838962727324565545781004845073197330557707565083306367414231581805857647026861483659229126572698946570064665877989116901500653289892469058744658977007211987606780576679460398090984596846457494853243608826873769303641990613634836088945163947448930499223386042130449404917816106485791865837580248338398053669904883267144619753736773968736422053056847765368657879052429570431520245294664436261169872715490048602006073395959938536877713026426960897683424678290098806214031015955785316362015882854171553661541940563884984442923822370289662885016445494684086556139492712020020406685305677980143066309395078484478231601230995897542109148925365070819478240723043098995100102559514704429737406180175465751208645718652511108489798916496472978755550805742089188240844445527904321763039473791406671572756188928464805164636600529517462557706028534641217981307254338529825290356941987213615829345185753534703838435984877234134818914143117006622757492336210260683466709148188882024133195309905820023637613841241208986129526997865912582271105988202464261014005862731082897858260394907900519575196647279971374078290149216832687990566429695058388941861075738686026308009417510733942978829581289903519904612628342624116296354271104345514354451006490978193482792766605775678664017762172678456185045730754281759905541479913020446472451240408471573300915321656816949830142247564058774036686254639481564360033924551303709021919609529306331170351235343596251016030231072084283425890780741457282932046646505988682976803923740174197615156964532759625721084100631941826032824707424137548150251087937401540414672798932989966092294957668766327170098758309801405016557847936749517467682453546384937060502058084970482156221822997342062124179404490953236856025226754901201553263612500805732646548743462043278478087319567244556423507009946302533199816353842270478174086555872946896394403191430345364645760328532163425700972592281055399233151464427478171881658292788558092811711310456372169318458758852271622906397916493595476218599789920577003915257901864396630097161053572103578571331237439397508760787032203359397655066429191252735014928903826148695193591435239527046038440483588855608230519093113269679485325717073049429129113658689485583709963965233669862597061084395535346598642530202716363504883666072571095372517201367098246811245091469942134972156230363929932446529847088256733287892252376020013806612651151466710911361232075869002236280311640043758189224620145052520074438447347397950186632744794130227854234274144704179848777476491139987273511271385717845261122884925686880225120986388677758730338184667552466474173431315323748231514027568967208628305088356309863186070533842202053438645312807959837743138597213955873382206848306827443370445131514424710471335122776340059867542813171165712447406975354993930288231694158004716070528378943047378472334241072336288929835994251810288487279466176973524674308676063930935634486957735339870102847148182346461377017255618940936988093274730517742813498478233467527452312818302962455451849382407277427130666815689384251139837749725353397395478957951358552021595115948310433963353922634094874931667826670905838684887126050704758789187992417285086746221817677793900996821787532473541727960239044981125675962272093977175844919020004749656746608446687900480473831529503925471247202507384755213979735888228133269338053392616974552937855103594265117017317528995821414338791075007306524485188218634343475430693941697380130110386723309334143734854175511268209370555113015275713030011252527535202594969558971593096964633889531575139903861722845332069760221764810121183246641480619773097313567849878628023945545428472823873750419094282536875358170972324023221743459813899875464743022353804850284795980752618130123563057402999459776980185732245190978386031840279292833979809871033515953423021416975022308766108377839068317135987340156585775531973701591133442121555539298860313447171688327107283240404833229919369075282061478231910557507188620099887051291992217063379117765652693036084377210286704511215902235247678521000145650384734372122638890603599234352115954616507547822831303848655942174848197702909057537645103408677735366233093418877304504948392228250498717461526363952408317120934957455154059496333084931086533527829299381653315289407321604165263532186298007163299175905669786659150363054679010515744076000559758389118335239537868373796315045038306385842970097863408412509780907285374021332102365139057125129573003389183280449937519345355414727951302203558253204503543800505501651765200681163966729573313647057598381554943423286497273962355689217664272249565270300181627180908662488885935686502521562365676631041948956070699993119597242985622097875779142344449517814976655812661930288706947039680233421648820668934265780926512995293157798124927373983714415893285111830390120731080468775568692995637824885045370952422027361818147132102628028860698592727280671111531827097988822611546353131556732421301925789455441612295630655534193473191172125138420063853477972730791277357730702031169354818878021683229304170595755270879065885611370775516749890981689877820819307398586320718880513159957605344978171807242160851146863160700864647033765432102323589763314095776353069603635023016697023924402589597966893040291341858856628243328327879542714078712850079452787909777156964124640358794381275384228986538667447755714482256149553352726033962738814120883958251229391865719083667779481882408634713959010071283791367280698640862929969870718991773846248241184149487404036892057278537460184652604959516905026948751797639458234928517369828450583984340757955273172504777576460025300468556724307846416234216641306443789705836277249482752614124860465824363964130046194348346712097449205881134748436310259504165081922677352302302051253626454196267824028505318580919385448274638762491875576904817727161939479069544539736120574240940991048101594473794094556125391217641984596349648302771945308457204778695306369022906906941930750616911617844786114880782538601376345674026517405103471236576570028819709765832131012164159150859665085218128078831510428480572575265168522518831291803059450506536740006512981169255634421581032281387178569968500635681202397210222162752543606405889104010407443585773007155760344147365870185466290024937296508259417231808833985081190685461249626440386864026297089850711792598926212262922747837096256411618416248070111733609398132270010086954266743295365400342489758568133656752721622479288772742489066833551342508398044153824444639814248545754407876890586292204566526166250634352450770570036593608761737466053631723222698617586760469765512865038240860273233925514131818753264316279485837679748655233874672711020150653989192186874893757459140876070327997220336286022639747862992624606268870918210574758518295819379477829772223954987778990889410259999680138276652026030047042252979334494216992017994637961905183908818574219756843583742845533347486223154001151758229318287158166712648368034542257013580544593478438472320471150577184289660279511697065166793718369106771557306190213661221760454654444874749872360584892354145391836702105677757813085944249480867166413619985388654181776509807438096509630719275801332529771772811561865251646337518430898595932230056277649939962112975715325042309161356655365533779968891773798468878300137305868396731900556127682038302322030608352638302731823046678291589013018543623954289543408719709316284264642367390522489934921892460550363733597796167881690218460028004497382775648456973550133318198673800053320635545747018099393493340137703342231730856678915817464152541606920368280107098987837702073198286147007581351020023143170591108880017681494018977189814945816758016634107214824647553383562142297787888181520634931791403197176747203333268400815828125407488379593968835483031093438972998995005213242502068033136749060638856945268706865274131799462698997949493868602036118801257860074664187211451061561275601375206271578356195308491522601736391660908049683988972500787771220266839731342863806496030244440077539503460585953747831130139568597340890128097925067866068226607648948643878242071880924082495113554382505857002487630216001778650357133383248426427079497090351938949402900155296005673675959457676574063383042881852571926181124135132908484012136848162406089711653591542326659169279534319169802271363204962157596283357146869232526322388748696418288022511356131396444594566381859667071195242994548638140855766195498055719179458318292171587043468672819156165686120135314992368194323802677024183212204987249495718063763406372195569928781725221877583019763597532255971777817875595179621707680170137247066273353460430507014654928106582859045767612910923897682214998404166848676730829334846692438984708207028181789816993887592879133352372624844267883364885390219117149064391822177234713572139980730415773030889444731917706426369965804860102845712466148558801150541420936200704605348925572909895455369221073686170636347347674192087215048622711726643976505105174420527503096705119471068420170722995269158355253004771213475121751219097129996347677445116015524378902837611029387180423506613579813881030460402460302948075786222537374952666707705438632927192868320603655079994269881804214942962069419317711969130588287560883513847233722678832204757201323044134726972434028243307514855833428630961162434791517127630657623809935728066508488636466008655320549858453615542344420614124211164356531996940284691552239804670565382303851038853133393649247709538197942325733493956345711310743847097506082555636331349030924875468409213295638027296598386658591793080587252835318887605782100404012786934442899035282071481535097716781154659536341105740963118063474867869977405811198703420060174058215034395846898355218760594654077027234064141147805025367338283264456391459776726977079375304862168332273681078330718468037381447664518581584699200377599141991912740869461079270461561178003700959648461054922534902143740416021682911083306071503578093254271480772227044335163854165357492664999649885682686806054541947457259694774830583215892377754832617388786664067721952972683407277220234079485385377699328656150508544999700470862667486159647376666107861089174246079796227549162744317624267454785066994319786852620030964262224119742414874099314550339399254920682903689243838248210212522316170749027041187436307047458653338883999333718480078250525589714529884819466595698463033673078110719871539654006686254986713185284855467783976651049182112495531847929691186210428103959444429716208727000498877582020349528816842852518075382722318455140677305715728368770100416546984897082215461071947902740039952208383061045095055997022949111919199254405949380110199103961071395046945816355073680873024543231741731013168931841051168534509920210261772288995359206764731035427500522007688231928286668773595445109969049591642632573375467014042684433128467924838456282581998971409384444084886511606366016059515797081942353744903011360090644470319540414551983068820924811612294623861679513693662006138035219877433135103217887523254591284621296673566862098940819940473900324609648646199358237929074656387158446531858785798970596639436858733780835214582211497489680628685090097026161048357941200195492274949069065550874733698143298976360481989676790722361787862577619191017426067207225122765762317774463501129898390351608920069475728409158904684286407467036962044150226180494331156516067587818319229822506608356493675301336294983145744354597981597427153661766549256911845956058140925491145628643273521871167844342322154234300440275293593891325715579252989264620153429021486563924431617877622244361193271814068706770067869617157481082830011614675044609549178027677048026132816338768766253467290490480742705162940489332655289049355913850384280916363348017731629217626210246735952911513719631944739577286623892476133599931974186926602536039055161214629217811238376695910420222743113371964810402389022172637085102403001888358805697504458636988119428290515743607031639319455542494700153778263213267602576425840825441311260508626617957257099885382314774644613271763593883677472794359167922926046992693101340221524250374675922680997817958318060537594176501778995806697199685169481856919968157359348898728484757421393428628768095075514266408384594213086231024000291086610797423443104231150104206699050779503098020320431521963493706560231430179801778942059482591324366663302547441509646320137365755400623127781145542703466685030453957000728398824327492641839729417941517070445405214675521941572150095138760369272691239779694141045392150831197210849465433601461204043595250162335845030408282877081421078194943250767901573654525381988351827280848284827083996762883381221434085166377525066934987373565115041658714108269426216279844607281663576136497362714279966615541955093022719609144245442646400025969024928406011640415864471103775277633644683505880165349521235677602408605944877558709088495332327640595686072273425719536203047400788542003295522929622745634702241684791316745258633798441134120661730170535378676678400095893434776208717872031207184301080851236244227445299230973192145876780347872095040076906921297122412578025974125489537582715880655278467483146693646364716302119963667812601932122311605964230096075396228557821069215088367683658027649509074375970396766491183087779565347150116382026317150874125009439867385631131916882660161492312513977252191616667450592135587660057704930263358430179776854803112671566709999145315307343392248957987958653218894388546478131964931638039111477420918285550686161710554742047974008233481869574340290054870451556309380532040060651295518256118015434812087643326261684951451640291955310844700468756219776120351391386299246318016405102240610284269343651636535548536012186898982902874704264678440870637621168586428634274418507619495359646628905961229256888000261210125290192158952305059114899051581034889180595177829149556063661282896851306327154459732814209749315086348803356207445503678689945005485796435818476916555236017257968165691136479876217321451730402222129776998172556973189827821602591432022719027154847322360278560963364311964396388643142924843185626502344143659399628968933145957750050979630690292531749664808925384072889464455038670728747450784161355101838901800714895505327513509902463640227349773348268233588037871907339490630278465475714653825531483560090858268396216277354995781736413392612979475013812735513302013814393593091230118132317138367348598396214034104533148334461100452154522250163319910936778152467511826858395204029132131880599826874696759537792334234683426048021790225561920316765374373300414272445981789876661795902111081167157982559951404900228451776318305009097849098110642701237254602205415685961180717043234001275717543443433674514654104859699900810319824120071953525471210071358973936680539887406586231648865534657497079004508663841306596761060646166813520485963539982148681123071094229534958848790475386583776003000514125477116204682423765598667643115892952676021551599964762678047404353093953531832039364434738014273539238244575814122993281698205020948650782568698354991720875280427883256386800159840016611137141407576472552440711720529203399519902824962241429208861774438006655843365732862743007459196835514574152900494867764877061612201612476695485491541125460866877087603299933972937830569920540173401137161473026040272369627037152871820791913719913541079220131629827286878399978927162115903371702745787406616502693841400639830937445709233920738677208195848495703401718431772995449168834985461136926163569282122176411623533596046172888280842014480901656037273440245010210025449571808548923812849477218684865953761606542373207242487008748151328589079033074027291751462761184361865637876059826249984263788860247692334445989548969261788392619308054349095884090265012244232893779974466733423516721719900160458895817696080513747064756685905464632580152838167539911813284551110996823456631416363679477423314814079233452822760089105114520964436619190772540563681748427710100875657233726213464760528947977127874453567017886669722274633012674965112500969220423547027488760870609113151161260400757762449486079996571948258723825900999205005729094676502815545179904898190793564286402849540269512857855771433060512924054944350988131423051287014450428240033142398517219220937029905959111365630092103441922436832661796039689141450024122685126780028805929707358250993273228524750561716729460260983857043394617668125839409748306888708762075909074292595557080939165176008302127959084713417189568916686835665920368520524554735691902662758116856285944477086176559551362276961018088381146903560516166341256819799994361307023289216603148373770879487003582885755831287778989654479361209330587985829469311427800295217387209806114076992803481841219037294889553144345397254310902300558803773857854886322362483404473680598041736421124576344255485096137511446334529289620248014219301557709052222442013609867785092286645232154018698097091680054045883518941787894952221961118326819470688323332730286187026622222171381138736435610384972515803345270739824558852551507007804783140437861301946253974247937998703268108245445510387556486300968807166449635963696691879967228968295585901861432789429152475271792848153586991792441021436760685003875997195837226298515882272502864414775506431401540233115274399068511462156076065951125839288606238786599996354286717381601291844409493588512009109649513905804820168799216076499272335523383168265010487105548053453465786770995315238605069050740330422692305567850886796076996635274164375817383140987779546929997108189239268365005594552414788352136459869743105424640036851314103332701475728382588161510163392656034482000775660109715674461080108257489636985393774882797777975265257773680466103121405382556219875463284233116858243750312865185398476215820343933978389171180629669286962791065202400210845392137749284737022743148571774906093440099391571955571982498972542029465075449722634417428638654168167736465257117420186718408027096325032185727743661080992127015417630346533764800235460835248284462993193597875907999117866125153165122050352038613416849360714481285458845741257222231169666415655536664676151465236868860647849942786288884616407531516900589064286426621926896125598591391615811333531138037452333798886693716715319816975228180905662603953531931682003566690857750226773938049523296733310984697772332390763469131716595123198885956114134697511601249283543900023594482447154986412135656419765300184085241891153873590423170145105826455979091807472785584810609739555119938336161372401909622669766898798420629570157151623032781292356775019093919783612880864791786183709549607310931220643541279998362001770162041681619700446448865072655877625037910887659339208061230657998824089107378363266110880646794362056007202649703171365064205049527859691757540729665349219491149609182084531452245182440297126240192839342037827264054207566859564199987659685712641049496712161613045089257565031612749159024683321617836403107491974079934959728210747322868756295751167112513197948458905634998510127286452204112221678595440197206112316574293845751413003427301017421828482935759471143085122719986256978834111390441726305651841809140028133635307706575943775212740419323720381805786320976473861025822795160320140933182555085994361210830683098428273320985029779451863294140459916582857004118430639832721040688597484232128595474012175186691286429239587017454988978350476427866194985492702455248097753477518481361322406439438494920196740450820006299187885885086641640484534255543427367249917920568735595073075337605390087369841470586666095171565044402899153837537677421588528775928604650254303658775314319706576649969050984390046297373396743401891349996091176290667205904555709844349826884465295569870708721580335121450057946188791948519954230153534504902115028884764722861203312751557649595490252964762774067879384140806955469253959393815747244858490699332822493454567990214305615045463459873860550672877341096570934039883059684086942395214188184487764678274265209545058561533845780460053482027503205034025324793689341294387851731489978095482199634822338722377675802542007307436233316168472955285661227008468174002611560606909850333758173719098877243434748152718381989779757334167214448015382655241104771668296799027321000558149447787762890831437239507806767350360671327229300195597426597803226515625227862681300022297164573544714490727848043325901096359445302905728658232037371144426487230186910231938258485251758930020901413513552194808269645531519093640430671706316778343387022672240275808688696321234937404979658068626228056060080325973959500713736866234077586081988925304833391036355468559784162653701783980066685361161516466868114759890140507107241285213639683324619000553940522198893322070533103123597824423333772043682902065831081670235344660165129612692065313416229005833655024448855452147416052743421258884847692864336148988307759641778085705649298268093829231738161666922393219824852037168048264691186020342948115709970489803848287497098253293974540949021202365283456096884891802025082693178327162196100484955228527382581797767169699465063358905594713036136814448216853606891096437024866715625337119941006824221781903261315325148206139571902175609495828341084361839010592788522218322789429566864124253263252809801437184002669416822527971102562693757083817702994219095061885066872639689530958818098306194954126278328990835861919161699002088207143758324370395054923578851576976275011195379868320475525550249850889510973800823547625819111174697433329689277564212063905333600032358317199607147833555997267366641502298752243447411544365490129422063632308043441230547401087453259120561101486063072146124628088048303348890747669753712964369219191322574184079892670055802960313717336925026304589176864301598294903074385568526135302252386800533376492772841289294075008014854991143240161598660254750049820839049987418528333335242134380434782201311434034299753002515352963477054710954621822210693173317825076159219992818170811846206566479886936340660504613424815556298530979727093487973616668803440813555723423378735709382829949966351545852734141547794005294758623485760803897222250224014581119826589248556071625243294021651475805334998269840203249590647011314793881888425793191797313228884736928088085813558636444924277623277868026975896573549984949543902127235648458454438248082903382319869842298622195198241649643774139475369581807464547668630653170975544339561729442440069553569549765189628734732690020552573711552765958351926878518227657752277521393938082867141611518291602827653950281164822286054985927372718817112470040235677295559853716189067359986365981609715144028220980028714102081010720278806564221458520878076194624525458156524822266427514370440893567424059662907588722556178113986876368409995863624226055723459559205962556726918329150652377365670823943307464979751371686677017326520562426802355147290598086721707211529667916689424324223957221041807121507844974952587793544546166956853772515099618626070453423414204415146577272129173379329857332909678930132697352626165719273305009360022375007229441184993156169962056860240537198149166976771108097694233964145370354025425378630934259202260012681634671036042720933945572484556988242703857656252161798526995577510080227905757768218287254416259240568426217854972882093856939032717917042380349103930270983299713260359006921792451275866856391138889613750687142914319249739956749454036196615951664520388468191588836009461412028447408583720693551052254879462448017510894404365273412237052896994212081865240626807282796403674639301994950140169569321236757638276247608104599326239232267536993653103634371231745988549155171301941319448563403488033178576301133651136586928146083728187234511189593402733712935702452676951275989757136186108129353028074918364193576776938053767116018703374555367775043362163731982951971136605058881502739685740731550221272709905123327514918818176677001784521181371450100320867782311663292752026105748767275143506711310492251100780545702903759037656992729191559328021663445775715840278635465728250422610920786933121145252144118300366600848494404246485614900847556223919554023969074444491243116283141495101889936628551915469345672516850421785251290244711574132896104022735375450690270074555287431262734179430808959125091686398164698312376011939731739957309048000085990674921411855380651647807450568399763246403066337945020425236476299176428066934841809941526516016380262548808377787783501163003879870549282939621402774721652658352500040273155642510872019157507430505469635877467060681710104889236751099398735131103283295374367695791156611124837317212052851866990517255018189280568265862559123033833415240108216854754333218425718667548595780094623848062012560322885193587878070795216683656549849033618098229908399534969767482619389404200640779427935651049095058029696481280996373145374779596828929049869421905874775840154117131209904936325788688061072245368987858877926311065401753772020533921750857391477651970599939581863603517722984342075249422201249734443361781455323642829590240595364166128609085181898137605336513152418527973925556465085607375966972984955135252501423986420700231787662393715267704171878234026088742665911646317082892422982407758087709939050897582578291835019039482042178713402933284871762853795530782610313335415312474112678011874133667021613748967515223647384147415467184729686257318530094421843401573125796098350353582346865303487941284932054342928170374840773311883825184132169882588140410201721453980457888237110400762067430886253115622167821454304983764436308058125904219056132881039875971623299977679773084406144414971415898793314209189962882575928840745408380111923129264270699987208232452994391873180940246399079368635995216478204901864422597654053154028515517737273511976893675149719317404892581955573291339937622653620553032130465311720199124071644167009182232981102691833376793751430288948449177452864849905058724430227094736227068000996017273325204731064717289033869358313593808930776425701701608620067808714564239799041992585512455583219863758417476238016138901393660014517377504865375050888030399775126252653732451616004738539064294184729020848099593760004520587151826959666168441508715387171819814616355748060147613916301643071166527184370198795115724151626768463482019267660998187501530192996313135916068680084806660963911479730997022174111518016878202593759202418626775590393273556066920748640010914911295935420481913148925705485543646776337976542239188767094107106285100162537217394314408787201965595009591147676340963370655784604677196790505365259348581831236286976110179172565470898091164377240623446932221913989601692852435942026316858123579105293008100116639671783516148668789434348619119864786119918748582887911386236518006296168039376752115403355748108336883536001058374381184328266029222419278136048154423205267209743534380442565782180564433286529297331574587884888678698038131834123355681132810100040427384493570387140059895497013366678163626490283895277669199972589790633445039965758162120836866412278310635644904453384991050384769403780485032572549717942918032850938900236582233879353350658041447327592569316794748901383082140779565170087098356673963022543837668140753649545808557616208359746719187775243220380261729975816833187668117713145294135428068960165126288516004020767061832445252878881194667190482770015361905848911455407378511694422117637975971232722722537669675934131448122380537038548378150740494934305196665129721221077396487238539098338925858153440083357812873365541449658209779462454243660139911617148525883882304709118343730452170294822090196746003432735913704064926391531803745391592887844131359514827883095853853581977455847952268574654057379054641667257255576609901664508389975539957272809669581770893007736847768422980492007839765975823486863858673822289586060980227436223425671888039077031070212015144843054704931967798525301213666990961385231759201962586995639589792601790863830025349201680373450562448005732649077952479055688796465895390192574720808924844877817973578703099908512519890696675917693544033480766799593283533463007792464959774447670591412972681120034831138796662899593123249660687179747679591110295245388856009829039855612321868135586323492231342613298081633807670389727923587945098055600114333566611582838286228918084254041102310348518855471099543436630552611546890857952854187118034390563668571968319958606894872864050915847912961526630498481484197409823969269173372003352854312900945044043001325968475994963289558741757346466268854506507101604536606699509454679953928128026344877997316007235094262006872551584865039340351099787213285329796841674781324660593075024192251978901779308739257546259406637007406594789063628977766906971374198572239201938885171768931779381387239080026826585216375898365782953419668414691423669812386182205310648462207383376778448688243186649269099495438013881686959502267151782513080375351637660655089423711454012515181151480486440048071694150533050982538139125182624528288963657971129481114268594492618119426561726251757930262324121490929753366588224753147476811972001573319039751164036413674937681382119289951871050730551623621786114447395152348762793461094952240422932268086933336747057070829321962699786997189663592766657833601180077394101555911778654843786575954223986891368702699751426265988101817136446522179295330090250234720690475261216197662736693868497045421421240089158952225761472796645991462341505331422081796022847753545610749089342801272598917756281648460135749085961166373507678199090033269369295350508180996497940862057687212470440778234928281426990957919450731927331683471237972519098320498508113969917051562788577750256445652786724697467720264997107382992190270019397193524523379752552614726352584295394199418455125736749431539746773039738813913595352890856360101360909622036016750709084269405054301030154905419780064421449763265093989928927805768787851186171776704956611431832309710631341907130106383023979163784944357374642271229113145758166932964788336652964456389346669541009398340007428652446011880729982858493796051041970234162479873310222045384991712631849617847102996355136996424537305257582843473542492982471250492338909078372863586646182609174755704693067559684674058511977774289427052551282838482055661889411145652744819168918257770367126264101477720493089689018278153724609959137529840230775288045652419960490858116395077762703384724003646967809405261000518080586449190443965477717326730779766884889977804153596648237244018290613161678391652124113995830728237341764340652411910243704022732230595615563715650528760211363433266943960690548450253525341985647763670487338500856038493996968026328224335644683081376592507318817385356539047853334023734197126278388455414165765256483678929032804556490940463637587729883433526059394711820909985745991074378851737567157497977990264698290335826267430134337599610957546071860091621876998991870653756474767061907842895674083504648379194200266130353027467053716057252882916420649543424797024926184991291449290679208095178668358117576527933462559433925118631130860694262743128254235725471326202328377026717321578493074599947682970357469779088410924530581534076311497074784949320296051617149643587874065818649198308858236358407622607097883171568721018869638955365641638110794727089722307331269705394416208875322607578696874140848093376907754867161902043694954666318629577317059745610488692800829669182211110615910121853758138125098316753072095435774675310877728051003710342296702008893079099169732864510664481205245913115934328191712546032855220527024384890540949449585334828604596630484071514658979263067422210947386295055849228179892568328566736952154391702667909940574664446024679708893637205562681083357520319172515543767254290643770478889074661478543904458777563357084994726910585749339605867519011357974320450029135531082175369197818941914162277334487316081073304503197898550047912457881027972339939389935355975371598335320089768290566673321889266312493981428049274992604892249633763013314099325223670586168981459353834006440915029170632416095690803072132562771492512196208088701700842615241951204172380391475326389442983351475711442060979993224195620477518081578118724486862333454358683790001284155553728728809943625086070111535484021906763348074293912401656398751701208535083846366509825763170494226733209015087684214927450573951562122266674162831061819002571259187751927648026208897565058139584241682694285082148874321054049701610501292059086117192643739392994368539224610205493948298162758280461670087058909105945835192713345486694472556024128209022532582235014741789914777174855134469030605636678062594204877500196717608204431836253233184380089311288472204118349147914850799139201585115983780278792497872811742537256512418061456558527362431044398142345483502196614244519216126215659634564774917054637569525983038294960445724822782951147964355358172796216289167940151544503647613430147740629028627755151852241257799920447093559744086122164289284668849284854898895401890437981968198957432435148052075023941720632303052523316277743727586226927682289018189898610446370509998161231927645820973449195126164782878891872613441596453296464358049699403786846686557091812074724893207670482776622368969449425277090169867539530302482954042319622627708646114067160480403145777456821696739077257013917066065268948579526817708696486282325159942928664776635937702618715854153736552698690118564374909002703613200774655439122947009664299416862211168576635313935791767399200163884113342525215225490221859622455226141379723902197918687965752843612086971047603406642317105696400505889169950477466713892766103437357378297975362505442928254679525774319384710137632615257592131032146557445865873089464840028941857714662413024804395232868839466400594604373211625930596616865047944019512448974236635212770340412287954339668188744166097308859380094857557521651509477114664818553570710443964041800708997084018505861065879062843457076389802001133284186967173761323720329938512905994982544552877450397487172436167905548530115410085490052618503221688993959986141690340335623082196811365445408011855081064892474550346421969305435366981278611116260324277667783923256009379796424044963053223356922299831519124692503445315488339532561227959361974209909085548261775276216211481118365003543356328436033106625904495497712831894224011717928602582238311641657265696248074642153940795423064608773239153637649701032023470280931704974020608509464764547273185826408569717856019672035146874460833810386611704797309797538712213493896090358170647944661770892362853021076767232731341171533933949675921472852330022175229060962282849114342940467539051135970646559309188763811313182596286877022620979873767483426231373403472267054949659425659544894915648523868963538768553274117539033274002579747547135860417769025058054621998231871165867215878350688191142256363273112569337924319765803947926397969797397491603047732327168558936068767122975965556891469815952121281307408763483327748896816667118413665519039000984077378391197556169866844724508029386579037122799126264322945731947533580909430970411129449795668557910956152354627669642444252535729824734235156244299860909072384551509258738278749745659267850632681656392312534662474418952036777265085423176709791152502533274666219330324787963607027231445065550486683945185041801353137536914247683245172232174785967081906242775634413153128914168400728168809811200354914515072754360622843811699543489563765438081290975710224974540181802905096881599466547076295829566848800936319608068123296654670194983321617740375061661559268386487004404911556514032708837821167635402371527742653125160985523977299899336226566594263156011119376072008087057092003685320285135010419445538079604354281651148401145581170110833194895983878266654887616321819071000607091108515932228114862156900500429034285230473072966002529076523572852008661008888741590531463995411733211928782998783590925303455624661846209760830455962121697827702926353179248239549136710656860917964902325220291504178497528601599029861255035090002974999032608788442652007760053354346134803672567303092225047146876474640359100875598581609036688967449158503155696925414136762409239201461026686709652376759665164829338170885916458304769923145299828378563761838561708325754270723400736307927798012367501768169671757498421161945248227379050242645903857026782137281380817895363522978611057995028739561934382587388091774051294703634282238737228334882879117286791062102504632120845936197541225891733678971050276308891867719304663628310320992404955077437797052022575711237983137860817891247474967905346813331135334219759627815970487020868659227959195393024341343537630958312752143427922326915527380192865268101244360450693531542047779293237342616231552225477514871543157822242586023907867657551632599520241111961594348650486734229152498676979187552086716945864893700462066350643681996507014586308442334348009830142640432672190479314384579139984818841596750950053387048872442644672558329325699016943859165490137592571425999318185561309858650884014283518584090303083780185433907913167482666640310436521204697047256715450819741776452403905118460785437341037947085226081296794859897802680540361805267746802967857423291897938536436109637786145359869785868628021971279709923885799856805774832655938051887754339220727065240259343202045089535178590524297263641833938571339120302594383207494051356378024879759648194066218825528260461356024250893956736348440215180975735015899954707878709195891449608097507391861045324589404505698467348012312389929321647105441495475530503393250643600891348468439470971401247662303997777065408229508020160918105434943209977794760645387678707200081973596389246737246076550517082984433252701606979771943067325297549896124462777584857127665347533606304707329452538784293349624756358189573896091292618029326251217599783113997645824095967895863859964211361924508740552202820005410274539107213112036931036421954362820280544761618086674659164536532283513804689907173289643545482655822811580010259509461170176617070495646803032447597593851007357910943414459751467626459153748911316234016636499195691253329193995933227143829782484709608682935356148551155464927500379174566216913228609556312574969933728435127201904198461062687638744511434900974570915844914896510006254627021952735137324686661271499343652483912302468469713569826659834019835670071263072529310114895325615620231080790822803611412610543033104533677572531651119973004971021862714566236487905448000961754266885682255739651439009824060931846786545181996256545974640310184481420041497033645090396273008157505199739237653452103180133377502420919841399114512237919186313695862825476411174604875073895475192489700756744415069465379194381307612372967495298285258191477871632228016828495386234880241341536836154163963851667586569385983454804015873938962390478469889114106228619850497598158420552738837068740985839251577750554382037658080014087338631402837339422633923978431181984318788225268851628193557919259352721550869369848139003046201046362157123583924639072138850876484038778680053206445958565439933710671280556302975124720517726506220567447666557258964338414181088803754023703276559385365972573826479246150493138541534959711780535821508835584992395064583743660132952849892626542869125888695590296124378614699440395658798457159592249956657768598989970078118960466335979499795558570076380293154729202738491311844634979500140290186191864750337907461508348476565256835588107289884541130394202605322515896891316001169311638267152170308157588621996462203651661750379157537838115778181079358192471003896625178210020596376515669766773379492033759845684671716833822143313401126119042610500893053981850032642188925933150632086145494348839702169931782855856903981509083716741900870447963881412350317743240171758425807288618312953361807989793190452529576123884772344845975804296217935482794401871993867040710218499258938364171429922368308979724895224493056591733409846268569867439506427999058781231759843650981422781091983069114168591064373644026821106867775622493362698300278859832540804629609392404643459238314124223156847128460573434145778819570231089768504545460975441800430952060852561594606917293810614181773926603517652199014528885586657920810700769729855878498655581666826218761543109772433773079641729191582177368869187035676736785647801371435032319208010552889442400595696962088256682387882550129079113469280253333029397348812492598211664358763687254592755539241842927381618673751318044665979064342398894487434289975627726813086546377387172472405631547229130032089068878717467295067123881597415312379919607233402722170404453150129330108342385712322926300650522574171732669454527966836005020617706107343001123617765297631098980177457751618809509160064847353775671540189128663813667055729956831142332200427535761291463759595000124446983456853063872214295193082178123436153081168109568019051718107657685933283900117362074256326192248345435278941574386448644456125907080826067963401146222829068570886146260896943724179029512873348214183235500876039207011397884357469708012849086464912581554557229108784142815326559286372746732636896950636490562898731310392382710628036762297535304888669009732492672752517644111105302662618713039074193681076027969249675048975140118109510236113962567430642960880914326342181981719461720204507904580200399353011471274877132332563535105380663552854720017327317431085215394110737099889250277597568799122506175993194323031986617147684353380663583001939990066693008384077687611436700113284662433706523551443964224313756055422352498285641878168680791768287076044446479884089447444248256779048394396654494475598000834545706191743376775687854536264287645082676042005422813416380840440805920353985210823753834335408915144766305053369523795034762902186707841799343590867772486489914128869409865883262757615893999045030501180967467816479005084149911459657043393637707004049289764046925068861272193521395054650262729845394657324181352277674059975096328965404991114885494488358418807594426173419150346515389186438372633945381682421135169918230449937453531867975014864360268302442190863594011704981395889184326572985107576981339749092953415497003350718813897307453550001510198897006833161662195216162016142293284157736359796751186453904611313727858171704403111971895983355295824138886737882725606991599249528688500047978226985248958817784328891917584018055817452036652732603266930500581735673767536557904878093278190171808283387868440343535536814869239015510644983923150193129122976015539673960181691414650421073244446765470005037851975451682946834009640022166943521754774157790489556330962701506692891345209561885470154126465195933455494621971722577581735560111669124484807484356350554846429830791469890569537994004904314999899717547935569111775568940115581916884331408500649768688052033217462508270005577931208773314696483633102005268586378885722600222807130638786660195305106748321673968150638651270633063281383808127635515281004080491864048971585016598849070006187754731977605899935350994288193861352094005118433336581172532890920335824264717750809109534268388726370173060477714291788401593227560795446040373783646049394996427654941398836015703098000686186668326335395356498841924080596453521085835548673832266503645347975459331034959307403782244803308418996861590767204754062290527324233598117676445389825368631797506279417295202739286421129047373184316019072791252863493620162484797975082322063091027740651055735901354794759275393823758928786438403210786796080974992652626623459628775133043864845528048213866640298071738070981284892099682712222371324121712639519756829830019383698442146789294024790688278370875363751392149890660160513266805884929165900469840160486930342445285973091779515874454492739026257447793873295661454109247716038625124523692697696531794705826129525146716175521757792251264993480145617203100545798079987643387088506479370217896952212961495427269330303633821012075893575575068600716627444486105300845925197172701772088754469087879534317565365066893141838722979501322256919562575435346086540632423827837000161841214943139888356714421898124072086396984461546149824349268392050301620277710799427872877728117013167610266542546187059373073137626142559245386825791047677224944770323790549291562232511117622748097250315447599266030576966127597679758909185594969175027723014492361929624792004742716112539526993033193749058906110103684398028354131954855808102841053455804935837163144713878470025797624503570296750019135655799088374419551985090303494018895171685060634779542206817681085218118567765455353401665887758518706520888050425079356477883158626450938877935701603054217916200979066491554830951842015814277126350344477197425591365554218802754131380156350003623958417665697408364530492390626159514333960652813632234781855204746957653329321555589787677558512322078461515574436825518407581491617716155870312842707397740297930403927548939632169018699145296045141576820013275354369732921961718430747465341947235970712730596658511922455903086101777174086529472312423321572604936344935728288471070682141571757648133209864527198390530140313112690929596800185507958448960901742304358396835096854629069796618504666473170236931379638461506634174871331015596942638439549411110785358078832256673795194169895860054808126283057076207424966362729758045619313445537716576715564186172723570935398039570142841471846472568866504393387661626180300927929626552097191463633923780412006254383039414416009905602984883298747465107587923798070984040768324619260362989375336065087943920548775716953373218907679547424949682936073503016645812179201267045853529715106734121117117583050195245966090546261704932500677965357271641912375808558511264335861256297682508012514559564886850059542825765552116357107173061041714731042292171593777905612421315695405664081197397667650417689919687488069727843060209854265635436154869065146560089849703641618490772728782804003471844125859043216531854878442022083891143991517935873692570778135409940238543996606468509970440345346960554190540555065735517333135359252518114052705312627546798654319873580730198242280650210069641753847442860328252426983141011539029818839553661903405137106694945691440163594468131304911178618151171436168582755013338430422568285537022393379723578738414155804128437136517572166758728251825152191900481892814243600738616611115802593952751054559229030721289402971047732841691613778114210705070704372544750572616106034174441177383408381183482871227463544575938207406435328616301019283515769763467358898691727424654857377569253820343386593938023618778485702434303592442207749298093361995465805495448392808248801676190093239869816631223833415771264289063114627681293039651544401329674847285150187681652379976389343944977553293445761157165785788923004371234601599926719428239776020087170721177848224213643708326014945497444909081524840409250648465484705123289514081504920181307406494716536076038533839071865974063505869843173074834970580986923124157241001597633586434741356241788148589147028221444704537059339570035697995993732040618793419347304652072688258558118378757189150551043164116863492396261971342239663308986002668583379827819715548122396460619688287658154204821721226144595497786818763443132063384333128074111679046268132837874461337894236472942144595181586811437300956108778478815683220806945053827076976143779917250258495752343101669464149213477150188788786614852356439518316317182366895844894217708211903405525230758301321025082059536455515616249113458388980827314123994023010857706684010197513353065931274924424375119812883176620572508759041190360401721918923953968221998361607009333960458445689664995589227133747993390721082341684323868706106472522466319550281467608141511841449438471427987457237566172190327719824722463396169722706746160234764695914933511072854272836631431561796298693560988903343947913480708799354946830219997138888621133978677755650270990965969144045777904157310823614792551073937243588108758669495257072042490812554214848983973795576605138370384038903421174221220378709208834014118694619354696889589711461404846456430711292131641799618617715681176153084229358933229801189233826266735681805536207516535774895084362011491199080392363020870891399913858184641239104458713563108819195980720281177764647693219940600620515683046943367294671645248209560228422223941217295048449204546814747309437022121897550603573378068653227348330365388522749120123926347644502347430053656209166483535727176882029312013229399689519472088216521818463349836628999858896525324877049613605302711637471560605101673265906179212966706203886489100460462513329946568600292851706098961137376956140194001039949384161152825598023032270890973332148006967231581423295620878825574131808724074426910688154746362248958596811850310980510083269353203055017612078785399696302329690392410733058044607396013344450059117375543339825275717515227408661453285325999990736026055259836983220435068124005961925470096202003294328472109650725613294232950532424616569365726518587495687368514460499590526887903372823007789223037009641027247306270944704647419552149413660483299778622227676179918028471931288788638484319974615522622513029531042684828533610881540097549990063890480508687868322918149678810243563664581633515275756920218876533623126667982257054944717543048631122060588207086833581306904633862783546452976698606501917980150966438132187776959578243960109983586982776830539058426944611894349147884431418040900708314880508474477899976764829170192660426495974948920710251542512990495959927148058617522336779335627221504685183589856086214284305101084053118551448795459605910085082379026759431408678102783764857424797751218147795283470088752920067951680418768693645098773674373497754926715653011681700240098891353359211331337739598608491738946013709200703313219907339643215342873475007705353159036225578816249345814132464607488393906731337181961764150603862344146438245858751121076488139118972705786884054417001124622438862095475204114082653826280102764215965176223553585133564460476504519234001202427324700387863248038703212327311673646883119069087587887672153731239705859244244609466196319963259799683603887390513300526633827593483103585582986703765021489741280076030840448472990586558410609774560274279635727133920023517991700951359471304392027838540760858249471760773348121991320578254770179914104744989366854174230147842876645901651083786835486896973782766141023870206308023476183263811053344214790012512610759825124837315104698973481162064116271892723700131893031344592783811069452734677480176203762989439243381620903988868721422566398148803974479184134194064802010173803593397319470786947990200367420000763801080635194187121845031819629026361320856054179054069750268667162502646698605994892723617569281082219772564295294515300357426443367382338872320989025604711282242977205675041603271725055164608499711818640895435618537867000438729821891899945039099066333984615378323964279620810931648225648412926198321629263079573247001803077655534038143263053750582972270902804132196167190196829049570984421807671463935792405159175300767744051578216147184131928948321572386011529841461294433464445685273699380636363386200893647470938734324901057916849953721985625864034489639690451761123049414750281970267241952455932335897116797734678822880935366738237564930458124364328532394083837872463572607865133010775992413220986532174788337998417086868600997331493647974398931908258874555065756015402367779234241111907662616051134496069001337219619901655762082941534879481140004383868478169889146229541783483971799876992641559385719045008314591380314315564498066609382747644197853183915495786622422269332359813368150497293847804126851109823570687507380720094201034199894822117960023678361946337476421865544148469745056504547066152399361573674148659015532487327621070621106483052189876405031690681481295513140566962094442548073060069213553255437423225889665900502036954182009630928163554305485791018422303453393094003705303738024862551700091357302284657763316434483923574016704740916644523597424770681804506758151396417512049699851119894586734128789553683327210271355023629504162397924564625397446812730045180192597229999887936262551179381489610862023325667415554310523817991475400305599087582884462524663740984767157183623098750961789847875973786834314472617739764890948074496578378439833863984804950537835704659588574764622732714103902775879038501391798179420661952932283916360882631283977012305521238280901143209533433591411161637956920648749862210888248119732497725284381381877893466347255931726499723793590926746573711571958217082936008471029774655970341514009681488264165182737432315378768361198980835416695488081939953386837850565101609800612243824401133061597336649184676903682793794535699626308108808349132145263652085873936332482078269993622143897426442278871060141331739365649216354885136061846607610590438184049098877555236898664461318120821731685887221313330167111867419187235821061288094206361724076299305812678432950966349932646832074451869438076748575371966453412722952264611078390468597902599792709910569268677184378858529034996252163662102220184639629848740375653050965555371851664813450101700833973716751672330599763176868761281548151787286310625217605641551241592212807346936120364820141201578412028669480436988178710883036238094404378538963720732587578294962311208564555252710927687857760989538387787110898717585481028115000806794314692194896396293734551488516779637633263144660961000853428552369347593897360940468114856963341721006411322163516137615368631795188635698886722118518164469284270942446045755178768830721026661530936288588854684607400176004145512620300880217152987770629930417230656468918549388084077991005492092440155393548426472613285099846291682813495629340671673544394366523458141319232362619704664968439994071025337396770200509034256955932977854087530340491989548574178138592228947362333288643827512308387973226523715923204837238903993163374726171157808023531494395861625260911192051132413780916045218474606249797086472102183850495574118207137348994940203418161845816524989647248700201232675229691600600703424160145952567438825834369194063633136237952206704125962019629796354692624366169423048831410161613298915398259873760721262945608544009628183655293324169570464106865513969452225664789266584948120650537747635054137447046796650034691080937820107622804581017385115418899897370109089718673050345149803884331127383817400958770668863854095220130201831680589471050141046927905264767276361461008061493507264525504633466227618620589524069530958876048492570582513207539697051492395999155639156706187049836546730029841092468110096021982414292880422892892477700764327279721047678807129578472798179730971842800369577137590303444713433656662036981715717978822109524103298306834056439744797353103136729579776138441258422325322723699536782277398669650251812605950855796613559446733646396259688901964356426234700628847300226577407082832492647712194169973791780383621075876275647523464234040155616987188825460541733843553913452215614920232426841203883872667791434875980843280345847248300562154548075551093631536394695674449831522597948691483407213821777124966982297644036900074664711207568156625001690754167537323344343194994197079046074758082126746401697588200698749556517165281721942016411183887960508425662818803640541404469685161596470089208364250636159116594453324188921936967320019722067180645685502828384760693157467851633454397290001446736610101999964368490732839881199356552769932547451369831989771176975711530275058120172307631695752939260906218712643593232344290812897208030241492365933117577445071820570711252854101289261429238186847306858935555030630127546952606255810687667248124341699310386697716769252847197959227188975757993476957932186363735950472818764589300864374937460380854462114203263389162150065905727996757415680247672995490653386303717015543493572747337493330836010752698217761369775214991028327923985567129172561341924637939133982343866104173200386803440688330543390194892076093045718836176586406263079935939063918440552180247080044232317389779337710640112503257950239337940118783171721782736253287725222906819020745936740822101269857255831273076974682384338823566142671455634883840874864775371486917853341179520049627797123731796563288656546940944695253838666800603937482312493496226736762881356670913397968983829431629464801064575870398267319481611812594568307218760018961586208348271046635422222841499861344308998897545467276424251124445565871418553817663748834567608972129858385174389113888293462584988322090933687272520227916467669410554421681007149567559232826808783200012801047983322168334221344584708843360607710247270242164562814164920184826662229318958008571773311305463162084312042218704900832364447575363342791748818749895313825350157316922273083428493838644296055239802856872807805325417934325136683945598351898757291209979754634352789905793229432316729462676564219854550733116924563526168551780077825747882246436484377064515495602743802185182475736113940371130261726787765158203247937307044215561083273847493274311189264801656890143360255099414023601965146333171901770737508522827126617949421283819752929100432800764280293432512916390857291941407659456684898612933573680707020097433750200326765412068822033730848280240159262939526234753094986242207787478180366416341068011121526328910738680246926379470984098313252861813501502918766466602934634140560149729446952935770748865919693053687615245146072781940488183073239344404931571281888611071940981617587332238220135415336224126954544910740967634018826449958345986749029730333321893203362956435230491922774103593650462010868037729548273857287545570452093267627145941841560143549382929283548729935216219278747965396049676645213330745979174710797576076691238381666343098297073456687308268973426259674770971214862386374944136345903721447030003206088635286890610719393776659805148881004505777867523334357864709502816063603297690432367337028236890484166953904896244381866590881970274996730876495375722421209637696206057703108774199765296943208467523912996505819249685700643438910846137102209286086711517365210495215794291262292292660963025536830672021714890682412704103184914511856162344495572322595240450705354644272163332496586803183543349176436428241935784057393946897167022074128933893081987986312185576689039433434577550339764941945225990571510652846832697622596241631423946672335811102462720344917484316572583717384950416624981838869921928894996715059455660523143606438146091980350344617493011795602700003876917436155442545598143407276361080389173618010278391426244504442249582390849799098648875181094446756681398939517890677616146590353716666904684110710799206562692836247375097793459732883972877312440566058816986605535156508866068087074215641021932287558621634423304666121925499753018457026418043489716145467599557227323727296660939614180026024252883004436271859361749986762174260257700886656364956734290386294945160466490632645056642699886456406608133251940806498428013711128893349654318742496780961648534320960892610264147592786027889260416196587638735234790382950668486741048942057811574460432485129002262286925677024178438480203147222908644921879293105737824165103101773249478186520836846547399199803636143805932615309034581903302215102900810789758162656022559190803836007219779882814259279717354443723746648993419812894265318224471941460262630118599275839248374968585947622540458169989071810555843110983142872959685251950422030345440151012316482697273652472073554006035743245131748085749773191850225544414118923536016735738097297598123699658212268656712366974487824842663882001905288567648629321332769186370749682451177956463471885010194409614368702887753146093938349148351507949720708107945265384520583506655910882725620599717567597584660410606809875112951960557247805434352705664345239557995177168334487078029299281070655374739026950441941502853510821596157228394205849510580527385515779930648221489319173630450928690219097612234415841613175398117664388119387772167510055997319378111974761806188613821004011741557117250421645533329407601276706554793796149223471749736316075053988963418027420452357106735617781463374703325567420432711012283452241635765666852027950304178345269546195961489938332846293259496006609885990063866398981542888480426829652980264273660074293427925052350522162185084499621154114230065999235618962280607121974367765642259403424231879612751748441511284764206810300152373416055712242551367756970292571010224983851339881453648737162092807109976906679931246835253188062646411334277026110260225510201805590298680562558087232163369766334329562728668497756664996937046848408658737232001443094342226048392692166052744479459902926333183074664389687420394205353753378383665415956490646667750952757137822528862283185366698146881508213312985010114185000698036859084099562280544729878722417443063993831941272688658919862128194843987859343037068476589139518916581793348076555783693473244340296417219818367491682449226978583691274905338484880678963740830794317207952271603695314469529642549543376403850610817872914409326692213448859267431777103360115733916262888388601686940973196704319344576262433470159778280011703010825832505318845256357536917422819066360666774517661043582245608866859707986250568141266715306932405439710715995250964473067866374872599764329020520587505795866138265598422469308684899828947779908983722166221363981692786682760971973458850295775514604241757865819896695191276156168676482927422485735194587698706881284101917903448496796160836093896518808503463878796522679406608136667538198837725100020620350686621361826182443806119464325065163145926955899609259420759009997382406564404671477888192272087367581226560734513019038734850893113002200821578596001314254629555346374259692657270376927266165558316471476831919285662747806790342134392204079024391680681837197739104609161727092880673453132714713111029257999005622920536931219949812802309745709816595940920940464242824705198367092761190942573123629161254722341114223380077068931536197516367725614472916655984337669194533496500170717634843718644160873727795249396828499679923818714396731951278597992387895687062590615583342131141994702104920527500369258887274931235629937995841663863036384181250974956232353124151448987912471033914014830958682786282504705856257259245399023228702418822569319978997892074522258782740391557262197836122559224554477837600859259622708930238612756941213969516432563879383944634830726329407622457146567235184267545635759472576147554650832154571411818755026004453051406034647584610910767401285607580728860461576068431157021406612524416191266666865310054122743500801438767891105120227080993353728889983858771620196111676627547535053811257859529365214981455895769637520393672817594690760843787333954528236976092740164446124499903697465154110819195079976298568260284942772645052974656715506865443689718278165711026633488773172689627090189613196227332565400663528891716789946689739221084463791677139639473876695020872902121644668764865107818151062090175031907699245087108563161503794694856286065882338363203145631174418758695119318083962658266585554594567576059776616961326812927123225661080416925214313615348642670655670606852825308794549428460540188522818884449253974410688113601176274433884590376862574727953659298221300636135876123249714198697795281865835610342244449120484861564679763908812785670049422007392473181414693974606769096456660563075384579584026103396520434372997792332057024672360133170931868514962518122250943052283388526211769082891629824943091302451945512140004687641045308194096807937035388368533184228294858901599999251069742529699665591924282483484448477765168536056525149250226408746649273960138108049358207157992987730509097575937647508469851239683215745517748327559774590965723726183381324922195075467074800557994693486484269380036048293947600100123509837801406321233383309855118487658050354046340472961697096923242424841883671783055893953249177198581024986263387423202602220282616141521144574384850961194537719168479973719511672278364277926732361966735017166362291223466752979598572278170411843461555078579829839715540853433918991898069691551306035872548156500571116105485427410277910333169013511864174226326149322042047683706029244376817078736284872384898991456799016010489146672927755495452414475905485338757022286712542997521393418341123842557214463278729577817450210174381456257150351944903198182384226448293601769603861574592034697780191073580884015324613917672059895082023760485288160746046121399395345474805444704584666587481066323314552413016114284766970426320898404119922016710686666581547005984978700569282076909396011040180648992406348969993420069575995369205896226710267619854390328396360557480329098619239125238523950256096166598848992601734237042434477347136682926944779675666422674974245780696653953059907631349544944421893103914795136358788463957761564805438464739781387081543668165021367301937804948530676146663485778820406376932859791041419141309751034719370101987623774449817517749635015178642331380787171532216617214891684638427524628495270652991025076810756444397291416218400905990208892656352408409210996904820734066789541223224593458106764991551142237919481648493081789675142714772894651482646431693005117711031580915940240344087139657949070582389808300704557499457400201030280671206893956668197712948332551570487865891866849711732376937970138662178255350939079445901981436558115120610062455624932099570763268732001454356937230155810250880002528029726259545688939701650678445970985098039852119873862245712652718613849967276942936656282922057961456579383039537832880750534001342160474020675300990868049553044727349595415241376796430345976154450582797099367550321077399006081107718920775450319377165993334895027988992710902408603662851855761507123853260541736065664007571495593097260960803238847000178419240435747234429338067206566830051478971672690172388103280715640067167172222673228021467954508526731821307361446973072258524105932688997864432822948965801596273154959280842380482559199837866937675997873470320228538416730364160087475303426676802422479326540621275662835307507167213207291789613694010929332769618983346413259063813627000805345384789396882464126436226994087362114376198264398014908438474861146400651751893175714248077420731048786933109030266052958892713456975014312671826664780336205183796633839588457162700068921656083454028779092384316391290845952898459174935287186256179315177091505757879664836684280652591948236301964938774065971376371946146053488603331295595751075956948950504015393051926171461124481648490336508226588702565203723678040977042366403253479295627276608289250364028883362293288375333711036499810762806631100909593621166818643849461997883154065049636662534942652535953111586297541447540397705374476823422706421104259075484812207122229008192342125712366467271508679008070536611199186718872878611042157598579717349170390064699539053081450388604514144828322559440765788115587174847142454448610251524329426158086657235488615187832124288138642858677131297498348130650175510948462370936016729241606948543185227859327731700135011102343720652991191825824190709862305989394466700690216101771358625619927123690625347577674883622940161106367527582840583007342063795864774410922684088310719297970298008101787845071758230902336405953857443755480582885063825872847479321866061734258151964470517555232365337547996832381865911367798986574891546929162739092168138206489763740762237762855737101181415628693765346007181706035325913524834724775205175048030196220245883495898397604144544434608676855204564579664440732065252924479165152075216547836956579038738662503527972228834233637791027265673030369057623040990397284915013319967798838719281540787601834600907260628606658511768078029637931118019425106089019092971262989288528649010742295016807426713903954687697197066254127460636039365794497743116838325147813095608768172832699154373022561452122405299226982926399514032611314593823591546791488628710849115786817836184883570933937496440103652117726694180639392613715273726689793421345974994151669031736126783759615232576543808723349427401672077514883584382486394929821654004769579335729952809014811025630907214490639955634026894246398968927491981602666548636323408831093880509704970400294763140221132390143918018431762935510048698148388743892236565799636965613851461015774536142820089319429420089137744814250777874579420399249428052065308231176981662364737238294079907765297231619940908256308353367980616404828938819691194680641884154568543458125846720880279687756674504175328868395384121604539761455049051398890255948864273133596978774642560745834382742443032267859612839683909577398394454006380886677814128413028458187159460134175880617240698516824976852880481664951813719411338547804679755901100132459476334492405700132790613842188331002524029198015523964016071863613562859801764847169848379211471247813926494846821693561708382130550330868232126874026745276886333394248869775708381568154526087100470547145979600444473810072519259937228656318165562414017599557424197810217164244515637390360894225052623093744020948365093939324458766098529337602601920277489790258589141396222856727817782609970229249940126840623838368023529209560209225488106164547169254226015280183582626733477954836010054386357840130019861260574941686699942940706359075255640351285132453736144701899443260784955359438014504049200289229868229677766850810446980449568162879305612813831114902307717676545224573794687469903275065116156781304806836174522432510305831291449183360150208021241750183331894844719993799747529230010603655796897899033213086089130992043753836402023219273926777134304673690615623423922121197476275176478874495008372237228100201242913297027611947066490996906760530933046104603418540687669334881877224920135974901663713834996371583589000158538092223270594988488273184107403779144236859266493562931899046179241387617897756927249635090666698574361212503139989624308001716548454437448937340246924846899856711525583971717770488483372538516506333374739166549809907148311516439559305444613372730141989169172079760586365143534505297646052240494160085901395172757900087230655873496950172635626970269165572504859236493146723548030818994568151101145065930117583807549997153696628609305057139819409336558619336406250437356927842973831255398750377280363523463779684123948551207335099430159964924195858450369139365604244583881715228296625278359794960687336754788437174665847021451353530719121698131871336443339066139999773852538210175555293041699783563354638989886043946014829043954435131726248950326933918529848270215249637298187742116053468873445720922592084615798123876190316212165047876094412357027172468044486407534976677967935337966301486917442828214952176796304315915580447255025542754387570548369838058709335564545560331971264337941686082846789309467279468990301384869444562418165336637625428279894339998119982215566801086985248829227931885597299767544001881507304618934348994005974904794296527358785303410544832444061979910022058303029291404989272256423209181889410532849426577689798197757110027173542349179460863053742394465632527551461315613452183045536458353569635843812046226529077610758185420886287386493406143063616010313843031117747383643421726493271823559494398783426625193051874148090233393388847232067405854217411968972276423084119288918936467881918837577404183732258195008176513535116398558590225030538254062191881646147986873208615022061796878605486383226271848026437855238310790262126967510380016249707581332624174315366362587541617821550684094609133428873212368597740260354426309944240040613397140454678103237397060317940494158417079136500477230773833084058595292795162706353289498625942866783788907963413815230262822717094040884911796195902787295179857865176754035465532257771997434100392980318563141113684135415911587728032420136520969589579293926766692711276562964000705908788144728870498178984582399018330028205656408286105291370975298951007016996845079450516658650698575004663340581413689282098997861875786853394092017827978161026502937460915614727664142277309215602524762000297249378336797483468486521961132570918104678421119765005559306757530890122322864648640532556844203530318347671025654761023987357544902207279969342951654847788958821261400112795262202267671049473688213494159622045178896049211228627841543103844570210793394550104599729139342179745799563796583586257366934160340940639447123587399287736410187446144840478434546021904163392324915112566029747185886703904075191506813311777300724411797632680446517846959179928680849932324190196546814171172206197395069402608970206259301106690650667925038714837534096402832724865252819419349332550360636255992456295573540398789393907032666074674943077751006499211417153080641785439087057263484216936341081802063159865659104228583509514782501749019517441044516662911180693954617480622281863450437899336330294515060111946757801207622179192093694743452362615972884174469797464822332490022607363783897845136919538669501711406111772448155390066393553112766362315894946531667214726082980151001881549169874361540835493253376768472104974435192553875916234036572119255564709669307465830111831682343280387865053438773895936837990190520883502849651577528087554351765517444334583081935865510385214184268409587599393729488137036228130454886782445408015960184858364179396622703105833304620993623143793269385181037411891295890107610644200253581746708176012826594126461792194986545050877462023628921822076865923311007466055744144489248877527846974768929450522021122937711763051276447806087840738865244426017826935231435866853676233499971081562090599092173122318054033040546102514703140044832866184267624415174701436683745831297515751041352446048892167503607827769611882936045338886515309745516985416097728332000334804931939875807864089966740225429802835522997833243430777163328420254356884627745376721290821216568412464638098280724246275709430034468585527062180381226119756596506024325282680946076898028083348163749106618504967800658834900104499273661462997716967842616764750869816115053989293273178344678219187270435213383149839457439043723438296413898082198676864977676262663855700974264231611216731765696920506558453868130186610047590134499654121611186314788565457816537923247926028858998070620123411207819768179381129277902017021516300950124598265236136156505918315722284718754602849274814054750366839120683679111863664384819087104231981675020365529570230058757870280900544409919584130225326441862918839112800174621001325408562087349237289099913030438649330789261607784375794474353327596342654091020482144322083245496189167053456295941222863512598001065652046855551225526540168479810706197057881541615136417031103501028112374982842355712593528536026795842627582845359295724393614354442610664944113748913187884043814091436730249145421204877970827986473103545746661394133914976456389584758470174371813374351154915055995223897878215109265430632443394418571831084189004415391072861056170192477217231214037015560929308182150023192994608340009938634942519343002637172668534636640082768082443823768067530761947877974133507622193875078603248104357701263286383060621464872350428694759645058209764319874166402540462326655526703184406086678689965536825090719185182235481068004912964087576100698560726007762291088406792181822913621484550891271985434699901736813619264655992863065328086123122012807272820420511260927593341789918410772319660508607353803309820293277748431158670028506819108062897554723843341273886613755085510271693939770597778891332058367540213015915986835350189790286618768109096580328805902981573749190963649599336700740548085511300519310678515830185992543374462782010436855130138397336781433528534573328038179054599704499930280588387388277408437407849097046539996305710005058863099865419518763739752276818793107987894598395903913856098012661484953590989867758797870101319776099362979416714189170692928831150266642059737777463415198829851454582874685852363820258818550843498367927121569541699003081997196965766621141929575353799195846093834789167690823927797485693741882298519647442164211840254091433539890116357395047025814503768872847444604757360016572714223955192614331376010723129034382665679334762157822896054463472684475574398469727082184574627738991523136901961917036472332002249990708497606354714545423837291912836047158121296305553507461052532012970609845663648314458209946357355640958432897128258242893022172948167168848629644514443646033598758956907813131761133695012300291934562760749637165693833173293247521034653153753003529446753264931383319586244284211020746325905805383418914119253156036509745225085267105303721054210787365909517278479465467498349910413590193872289907003458362577749348260476716507704226165617387241386868654728716555679003878625975080336351584363490633372485399261010932312409241092635064649782859804682180518995737971746165643929890551807538635511526260360845321990775891955574236722635369722062363292269123689897704243624203934688745579880895535508706153599765835955154005821819671951310279193336566997509936939033093907960434980932994309697282474744365815299188976083452119342685069449617933440262217186913866852530218986676063139681465729118900455419204444232354191252471619516314909271761035360797330584206931726106536454776186016324370831463648900158305205424063570947453979413099392080963970136700232157075590798408164840081961544472549021328041212390195151865335620570259233294234837158397354001164668623540305028546593568973351532901853949343246660376523593692846370525935986419881154420382912031167935242531825186690494721032033609810403243140007579066693776940751044986936911126439717090259333985467910093895402801736560382291782594101601099253996253219897095044272115457682757309978513611171215437717333962391664449748700755982495794899526671507647332541219735712330751449362901536621252833673784688477568811051207599419876841089481505824115493206104898457914411147834945781338865060691139981610059550788331402499929236303038633896594236272580389925649897764078439759347589732401126411807077935689134408059446055803853433391805473531467872059832288337801337877504760380023079000395937021988779808443989742004239525705021159420228616418883661135001978095491108696077750483783412156076369615627108379294642000697281109247745229382512858483675578982334032267282855587058881421673587120330957949197429332072753163870947543736502140348602016745768437157212361007111877045717312693424787828292967504274730949994508138701709225375741350455800761620259342156310737853333008583479474077075787618908889612222864181991394876469208578231755188829437211028793631023491686773673677334265995385725233665094276085404406934372717794292196202286252617797739219842619242646502722765551991366101940269057250911283884545209994288401249691657941025613329935982896150537675361676606908254558078086427066037713062303010993880679297748420212269310881439718681214423445607900061179886492446574269915135282467942384927024400130385968577228287478959147413915048491077209614896978548602559507740769132200561922615413324349267371604550683056503469123166806627979170031477354003000040340834029406677899635866366452512285697513020290759593527039415606508889278576167282747220653900624412377440891648214053140376616279377178114189459080778732123027417038551577663182421448788734718984299841676009856374551444361327011465497985461555435153493562623628672201152340483943059389194858601616875884189804946875232966859164026575707389090669298140969764780544173202054551362027075066064789044698931392575356182320076058006962292654162509335769893168899296927948859951276657742796890491009788590671376899149189183178524392440182855233823057206512307001117496729233651407842944270358407878993316606202510702913003588427228083002302921504371345199475133069103000129579879869007263675235870010716857559382854222743745871365859394592388949346402099924357801821879533959718554285894766858715656530585368601517354039635421277911966168679865623146223193961426066106134903419961656511352641272601449437502402002162711971793753924776535399571433983932205803202524897605180719275601847998314730751976367566811527664505931855681506510974069122779125209184681855662681054562330997730490427104548910609095858085004660443055999146999852686890034254262738409226991362834020645189834255966378564979559772995134415299759923089766035928361909133023433477173836519406519327571304805562036224435104057423121822938040527012490577304775510708262696437024236937576162627081740306354229276325457941897678434726745567705347291862304316660784794732478832875095897226985892333696047050921702850691990477480902901319038369801712375424705850651098971375785484099052494538134570863775010732199576181545960069467965961448823841404498873826047427145041415105008727070025642641311553345928799050549844060759760651489226675043886295664576306262476631632663942107558527124054851408346379536368893626845773215052836271902088347075470733092937364513591260469463966547293398478182418473373866416384727621768425892722364661941113036369329211769335649748205443967462551713565572183698209827204787416512562353022069394491542532109090421012122337066369524401465975816488853791849079124911592325075444162207112426553916812471472657228091013891844707994106758300232714083676442186265280147229129291872310646920935370343273258976909296118457129920677932819584075602241866585077732406340561986950899466978226213076360459584141409078794513311740902863146731327731656772863023674965664999439093650059814731737969537646475727566183769675020686142179612493350117295804456265162050215166618557023843778772674783369250439880132173689693383728611655798466171343230940389851888133548919622079227764181504957086237142461043093917815319787819390124405205790237262752226786902731720587423916593448659416941042053487078399152095961385690473095375046730661053295099187567617786817278305064231828504675993273781658351661828521174685548475561717523165330550955779363154381022971119401977852332714480158723119679207833239019470169159689935197704797080521274541459335748464820062211656986701647685900012254823304662212875225165440916860686129948782190374537488523690315437039088995318595962842256947556540901817682737777457852937798656415565847980032173121885974101213389914601679138329749860182658384802709627621625761808477073455430928170300681971634621388701586760250333199737557137151025943947665520945242798565548679987743778920810468993786269724083236692227663806511743145715093107025943867015062362152641830006882788092738489410298955366302371236302596399885861621327077148342248556618534254698104730000777536240389322974597154605520847167751114615968331439151094493720310534507965606033370276232607561758724890254528744078128944197119265113001946518028977700767610370567805479536676569795412303938727545448178298875518644068666971980565526040680931581438037375760346113983344199575969332989319766769287810561449829682768479488564202456768246752036705830555171107049218001219290130166653942410459318373678363833678283274484394097416259367899394357919499513970267022736147702257866054713916090520213108687089967795451415268612360890564777387314478868225984291664498150229687199789917330753887575250743463758871009304514903115252761461714684719175228644457961091495316449876355546459512415152420452996227531558504252012457416098503080116933896205287810176002692113428871402752830534986731034525667092751345273807746908932771692292595682949915569376100602682575017137336291640823300880474873850317095853105005161616368291772534751688380805204449569849406394367121006560875915041458248405123343146231924891084060959863584133710777858033297282179844562143451720391874506097472623999180936971806954068008725389818977482686481482224910939816441208952313222119884865446492184043933879018268807722603324722971850973300658562980031798623515211491519507937231501753501163620234465952917333339037589278411227732966492628099895061368123177415733222119352735190148297520058851416574496984459386797220077504598086718010302588956275967672046443891166483222051753164281960851957248440784574678280577709640089194836689116136550833466698423053025816946772630716606243928473503745606927693282739709170612658659403780775739715105198544085160524195861869640244008567269628451834820512692092913169598205364847086009103042034365850873984925707812735345760127814246939071816365187862450684909465393067372909829458946681906343132906069209710963387416811472741803805678554283068800699535491047258096332071339857607519727228625614607616505755132235719763154395197942301761510567542044507027687295418624807387258436656666596922816744101556539684257090506961414617166943044329996668149158145956846753413198450200930305872223875308171307081654785210240165731701696629510241981652321269041402582344254514698384483919435678507160961714013913418103022817172458178063659740399405543375756191595093768087526523336732823906636256086604086580818108153016188088761042129515727433697258181848312805414467093899435528644050358819763807290110820240405981754862321547914319602515640848546040250451158161458259674152258330790920615418694444992631535003388300192772440056468448240806380699957647337221268298114058735404309764990736632697347591677182577629353644757778471934416548141046007404323274949071814312963477456483744418059710835158748486222517862265073180118719299003195243975671828888313553058076212158998916069393665329580704672656127737500399263471183639422334709164923294446787714570722709862533999169513012694435228947617929637460139324353731213149467383796411032748880917473418100745311760941255523233571995954092854203881912008828608702426308924745455022224962844273450968459316995542664884668260505970847598230864198030434859089689973368485259172512435532994812477647785239153480667009852632123843318175061967206244191554672326672708668838500620364300115666070828746516385843923431438114532702707306541485120288886917244271642894198322379611408205844052389046527599253557572060566274380334008502609048344061746063075069348570558563448844812694700086795988931418368378315265878623980026893465842827708706854485935635346211822975260939078187333142877058531770431329577129786338163409692103695283104557004886036838745298210053518525075556004930057133630731088035421697506865478261665385751193557454967011373675165369569977772515084239988090112540718630211710292514436647452396837443794382336354092350705276614297110397540575312489928764648177067769251027604687989461486531953304074037473746546962555366326983483519391587144138979003945748617056007342603852767093559476050240060412076816744881829358581817909730472242229850295895340984721878804531898801221993911239526691182977060271099797153848597619399968271436315375778392676914301660469615702108815689924710427007980094428854369473172682174092851883249463699665934400225015449366182001955415287052148855458100636431706193382055801308906815717941109423405171369478637356938310272469301600847078304547481300298510853659557404908677673900504998092353621254714595349164223023325626516025326104997004248121201188976864285170607637296585458029032685346293257940426739658796513237735640747342960931436069582782439095264343187459516008288821767939986865923756863246966481411679159761131722109873461882349584755789794669181641321976049384192939676412575328640116336040936634822956366320969890954736449218799647225917315615763016942372925418958833544565380921758808329828998387236116495131813304711653538293738678488020888646668427977648443225241304233013847501227025996992420063598276128788510357128918809737697060885351632844386055795033412704928844748362382035001583031671925595974487053717863403170117599013331700657609988203721129474904045175857065982041184590681276879392029400407293515161353538691029174065868936667593032409524102499481634081919311548427824404176801025811884090450283431218864905223220973895387662485159110513465349447930490888749330985340273815010201281348966050749807052180972188211175856402305780995256348419036755220468460444245616989885918434281702854148006720389820901633309093238095982950431045849967071834173315525669256214535035124451975476889657556005893264035835296213615076009140479515002004170663932488267024420327562843767773055809666152882773372742220833868333918390654241834997631892379781534667120776226363563994016242223823171552816941739500161483823887549634921622494020490714258910054108246554181356115623598275640200502302061085811826665999326100548795317047688127610089699730411348946664433429858756766947216738968286854973530656829891133791427237959931613547842943518600831664310054966672610715873696298564421989243548704525612017711807869908602110575167532525663032931694823256211666128331031513158068479826664158077861154948510460195768025002927283238646102533976755696655985083413465956537857345553028597760994641503343173397990127576411302639531130749211937316170209117898169176954926148027305452209377969128904523247537182083529740447344317838771896995924801761274116066722062231192652447907746583615130972918306521100402218639301703539451305172644328506365853560570723069374095043409177199986603032834987903419134664010164945060792788557857096447588451335084761325897344102494763442571979642432721435251731107127634535619582488523610725622506764291974196269897476433899472817542240962749557558386770429849578235509856781154076592560176361928053239018909411092920491746814732298118534200915055305970343594687008948431005379573713006571460386075730365161604412706385525651096993957817434169176760612616952054735501508111110836113144153696582386465361862855637078312369781794639567148004464701900574666344840052732831062060371652889697080817736641442491177719828267774036488005909274869162117447046814488603015453667204008377134893805232502031978130641676624857626352776051215815045706288905877312323031541193057552386425110528293750398725365182237555709610133557693811212563675222581150712962449975714253483630150770767137881307490526322862096600261030213659751427580233485366924081840726314712425360803728491590866270512805366421114796526645894785355199954688635287471012906923346686328521346678261586916710099549798778063862097112791801070590639984659397446776488140154326447731114728502198544057304405401604525344246507491013322766641287425307499414650533223581563867714401445249610123235120410641949727198576618542983470539009172585869052859162441223161351631662320791775717511665124952352901767856520428691727580583260029473620530469469849381767287095052230131120140943656575856256909618857137055753465301324156927002169630846148831678675934986486829231242135894521648231902631451832521433356082441652077678566527662073673090232277310455598921443401043052088160299922724120402012796543576046810770228356493360321484476205169043854981392743350946277325340611354535010868073451968390966454900803052334369664588012187036775143525030304446916439630360021970809826209956945960128296647033740666858997426337333179349342602605215256337719371871209881782461407656092870068950849068969865319068398395349067052480725436778939812018311498883653367844619520594231962481886468136745474738681977178140962451747949004414877241211391967963747628487818110740747125061156023950753895972007909114655091380321065116879268974015974028968498338212103684470687607765171468230828639219879464678318639729143789482074088973375446452323926061097329119532984967691993960468903083787670118219810246565378805016733425599302192106064215621655150285006751140721038491374857713416243859671835400130119369010182474574718222146796433055255686902719915751354582602978618743397400679229245287515414195353112370582949952372225918711101543474329889264573795776452497581816907206843059231564867987299968505484055697989393353354840099083338469791593599283764250313611533378316597970661602644123582679881977031063776543048616075316905751453383569582344499501533698053039298828488240944724348857587558307368459813497579372762185447340368904938911474485024142956161367876122004210493787900348757359355543554579753007213328094956668340961059593273094896620819971830745704844809364218165888959570967987448711099729671087180475168894454483594056772869028196886202792245472675857409370658612815134345705208292864122256739351442902433473791418887181689258145189548354356334600604013610138036618812683545033333143651595893878037744335538722840090295209194571157070915051970202825865799785818319500770114232604949636277312111754921390299058159463952686247241705070286609713071155642400400493914866255506843121731497362536152846114307495016479354341389871444418611061658013945420197030691085755399946052728249378790625617542443815711816472205913270676235524120206950795828367564812101548622907075826819443861375747736410062986293566715343307457483748980609826693009682318195800718034998893129466640152131359951857351685188207614890930820406645361600720102943794401698306418866077212813928969737548244449733692272145788838251133146193589342945596738487750554581548656822883512890743712008903695130009548895121946668270954441312240409385337738776716314339462562634649930997318485883890594315871263296467878015391957879806342160580198084061758813559153373392172789798408851875318576067115687161134596581221451499964777903878340488223769205090643939091405427543262740180761685704937531156039399654668030901408429158999046368308853523817778096589919636217524788268342224006833253582146404463142563530634933896093493672294445067236593935686287752416863036682951656666566372284531493707116432100572439820703599106737209727638363749913773632973879356089666731364847892705739039824606624295989852204616401892597572907082380556713821643167568550026125859592189108262793447667015408969663700926741246385094715425768045693922474550605777682644622046178792655262606093757378346033346515808570219957528490018965140364616236111784576326444798037241932082242363133942965224935241933584981787934186839475964766081416011423296027430723784295996392844439047996781236859400126136801314118194487337253854413339415394425901071932940674305688665408218146406783238636549687576435461190071652773008277012060383124718276387557509189335461476500316843377525285575114785657698416250090767279480263693178029586790546142808764518488736954420359083362141722764005720546070532111419577630972729500180573780154850331121335143418575120290451804249821571039075838669998010827399514486546813777932812622917175984330104083248793805450348428078395774757590763893430705958606322640554253879800799975707775600813840469349476172286432366434765661716756639201312228375328093455470346938246986786477508145905747524896788454694907266187179158648821405369309079129003104448823207447821110040965432874311090198751173880757439174944397093823760993150810384366200084895836178393987696755030146165674504534078930355288438924386126101858730747574518089439470963243833861295327809257180959993823878909818465955485574824443864655500312090895361769554660398508528084947072477990453191450377805245354422989949466440512962187581616780096698193478936400571939222931671523999966758561844116288148900837727788430047020868324193915103394170255833288031131942821679191443517383060505004573608769274416446601692231399513233561349227619821346023715381346946271933583888814221733733020688713108528826133105464052084004912493565838138850317873067273186486523548969821296615836459343158164864615366426838936759384618127552113596191751948044194518180181790660264328792147785953066351664077480922026669317432195682533337383824819288689900781962647401890322149352859455476706402912909468816885006894133160972908452341613325449550011901071684239537606599864762412783405960039813601773881221674793462476893018278029937209222101355369835583921866456767925731127284013185324937150348188508145411641435176658532385126445661127254735226738738206975744116321818464086808664452150754937048233573674704800501923074436398764903400953213161052847921649713946421583063683829925106287968212185057527101100027786673596490331123113858738353636524749083456584801387279443352685651856399702335154542513289118965137301628100493007665161553035533087688471001788834299198417040699152555373865478136951621378809289520326051613221677917519521191782756561761936809206454844302029081763309585305883672035132943339507203426603544439346588505385339116736103660788577031280218370163469410361465317799821551272868825756502530854362683527138509005744304902169164548077945226844585168582908994279640600805737500577666572056730916055714460106111393611179968106528287126764178025010055534441097290082282601609968647229372574262390453822877254793641769156087239443795025996452302216149706274233462285653969059061667609289669070415362423130927811995223724242247021689839957105544609714615399440173162696437948718782446636703155997791553946142164558639788810756685350556615306189032481324150729046141047862368974657686678751716572368195550049986830367836092671176712521307679652398751288175580049922523698488065525268063060570353917160873925457285651909026674278411879109168357182377390258581688806081789430322845846141668526622186286168414233045211248969081552670190180604392102630939531418116966828041575158491179022317479948078599234214708073529123350340551535254262989558684475455366031910870546053488465052187792364233629869550455185277318747247063431342988362821515459345202129772631708260496115017662306289690652674398455099182768498399643329061902096708496096057099566622529122616712513974086610301385117777484150759724143430695224534872683793003659705407213327150537285396989247316722566753735520354454155085568019366704107059877949680539674620402109396838900700161101119796123873286874096075881679169101020598075587044009552538186765639478856858565874121135676945684237754476703599036419007316013758800901372576410760708861241978531125559625756665198622591765534968110960472613580505276508698090461454351094910197996021444964335431667681458927985594983517978884103343259055002504288172061694398667590816786679768992865639037624447554234622259484782396250944479269787117526714040900213665049812676754368960854150249742516030168521307937995329795943019026127047082049906429705308087465499002407941846857279214635564318381069312157948027250871202308832807334187143129499479259519698131020641806587615917616644786198761951835326840930207253189354322902782898324000157402316683373343015699601022663862454949526799044824678260134899826009783324622010956442522405361369808587878405261497018163375816780626339172832799837339930242670962351243711724553006700802921725026514506233918477583011331185673622456465473903586220785316082442482680392090792037303995396683852240189307984470408165941630837477673251106248214436955638269838171615512696438565453687730961137942549327151453784395590473726293577311861936427839061100516631157723703965646492520025171455103712471901885035307207929580723604927181683596339779768687095984151039002717407539404046095123629558400913864540420130596186109384541388036418364982259658967389774777253486344057436074411152525787667012996045274918399081578207903044585868482277173770254758151203760579392767400710917905201384695837862047325606084015097246260651826575701826846019107016121792348054810464658968099679453277223421788822644206341222791617044749073479221160430406852045436514074586574625688846015930831183383853499320990133243428990923038889494789116796854393337638517049288191550426478143789638158384001267857219223386253654016631638719286683041146902050225324503843236042307550697311680306304914072548690574524936793611487811528558886049630224100115131075940602491390216906199912594256679774069544860491144155149840814140354093648020224300251180483010708979551527207373036947991703897386869232914702881389431340931003692409663378777342716081934499226958073672841581908794976062505764485637433440886062447607397703112338686224168149074252995932976816618158723510183167479496629428701202874842462120275135286566720622034108411905511070581243441244303027259338804855567639216032212467420014262332189371770180887079035124463312596360055654749147541039611365621289060061584062458092389207239913412854033289608990809459931624458242484360785941458706537333918696681248526064233961759153096584911299860249896312549723728890467171005404054712132133470714896223629477596404984492102227747353949163716875497735321078531804027453150986869630534315918020481894753823422438282771198680832495507686746889709223756398047357991807623897407873857524545191177534124518210002400632698096380873547559753150893701135190381831073468748217433324947157146679603179697687862275486686976254204635584872675007458554706741235900639678888219506639350750797594048952197570013600159463094921643459316546383661937259461730383184295891178611089226335048323595849604677104238805174921504023354525309171048102271804305665155883660995183862624035985672508148003873341648751736559766364137766421499491397429706515190645485688699730130126400371737079011443712616303005302343620087647924159204136896694402827886175947772655354293886161669186326667844583913521662554451077176758182227122014173298315012656132983667489445635921086680219838303280231159446672208240042217505905237882240848249127802098151069233563590245908694398660250778742086499988787074442936913801532710810356945283953858824936556458917667414303382154573282306460311284142322199388162798542731432295188356501968251621741207508583261090971345315455025697998223528442931856253876209484770373411338829814716662914943783778269936457886804928946030067350092775911504752701452323405556129157232988237101547952352534603416788595395997243473655886719883608128805517790093006922556394968336009865233810659744664274128265091539560712736967485910348731792123724888895692621915905803414427861640516597594318138449263737116119013405942804809174573001871096901203580146973633466702972670782682351038688208200989849196099674880641959160292181724041292644351536758723445268698551380614954206575983728961909568607073011075445061679510149375877250315099009703921158919431799481402877334219043645720292046871831758124162029051007428089025627048473935798088784663932790833230103204514351550496688835451116130442189900517680936499160165659465768283412972645193190765456304641485996756269470417380576492480352798959095788579954375703499658737969698621616935079437421728374836264310984207279000812528417093379890946417254518767594183854860392894452437499343542887176565745126218384791662198753019890603785377065109497613215755789981349284343886888083776422098745125611976026774248485161062688202649772684643762891213859297227855134942433696748670760370852518579265697054869269202279308294702928311184474885451620559264379550816345122512855932224601528749360965270430569739275321768194546299468170389599711969393848907084359337850645037373627021201598249940877486804217964498870382708330477472855388812563966718296462260439947314217456490751587654615331956539899500791206319404761583490243853458922651778967056472340410318474556535120712693280769622159434686821808982043040816670523572226882406646975811648162463689445354078797646638647473343158059310074067183027154104063055568779149830455763927815241594942746935159094470160138246786209765889057499236429501970853866265659731481219849465174239447786392162051048836619941009583275431216354497466306427134567096708562311187598782575990549085418531005261757039420743572421440662798444444196271422928384542477436335451419209884416821498391435057467748988180509080324048235325107216361312646272875977933826007955257369211173681336957929673106268378676867803704021357252868270868816751869491598614838664040563054676789023912102306309384021872764728054041783859840610617816389671946972478083624114058436362057250950270952523617456081960619449330149988559587187435409505320044676939542101446747317874567563222972910823289380247847333241934791101499519135501032793137395888161937286906272672740437488698531608594672335999795810879994883339431150953238701415857149184409821604613473296529832725213781541819957279829657167126091713904897459782233644489764195812286286812535402743790337236964594869864813491275297721807340335077463208568476140006785000990646552234109598697046847487019072012373508814613563871345278351807810566499987333460022713613416132265581108599910412086750448413793927230451798865877622469315245339297546699410883936094696966299213000133860454026326023336600578974875804435720830120793962098316981674205613545623463801232939386079308307954793415059846871467362824232895673086793273530969286848943230449784167770593127947404855871591118966949313776552180644345873475291287988753027782816572111262744147421429079188976134414328785025272589584908733514181658537843409929784925520149200245479008624261454105660799962553135070801559263283457525740673778958634206543041012837364625125537335129202165701546949030705892664707443123421273721659349447970946185663292958957163102490518563222329084359772367101065176115146402933097559212871892072923691832757070427803208538204343606659581370107096302475585913414556386691685995879598947029940581131557432281795389885077792910832996857931850785795714525868297937982853196720398719717884463323246377736172018644411570501573309544611023287087050966824781501357040084832864723629149248492077546049704844523473205530080176125297845326257284331849240683667318673982778599954001758388363725544797125853915816107089956117676774212415760135218825453586880412368568611415473311475288130655851842875533472928920867812417169165945198959567606095701331449356503286213656360200714189416943025359164102604331924178968988321702299626811355507407098685108167188212576596914836026810292631256697381931299242674278065386877799388020788971450197794838463404196268971041112107349337985724794290311584274103935006637125327338290607030758896578298421777360378055495356124511622977495013585936356477931407797753313722939492344147669303944933685009648565829688030364573728864059409941040058851726382427846914467264771617369464781216463910180620596461759562396419691270265749248163934035259582931159974523650399377413439570354050820772549500177374771714264152146933423908425775290261115117908620836383787415247023139258624491165462666165054883570430517678750822002588451775636779626456786471514816149554447461929722636263153242413330900970497754667417850078935182669957284197601378556516488310466604796568764558563905453378876011049746071830543912776149834762411857909934217978460595989777648093141005290464218252372467444826448131611687929635049287252860935020882755307887415208745978430698980904895888503911867705805069174272378462885830282178606062078370525924323298703853463276170438465534663841352668112215620894944094161585485864206561159067964059909659131684138562810130550573954389448265191531876135613049380329155994039428288645596469314372732880287578441591441483409099254647125834209393444394190826370511911348347997099378945653814120016282612951040722673227911153677033930768243090400561224165014648549150111213543395431148464223297945178448907736769510809597407361769910476332749885048719141329921156502659212811832141875666592171473027242241165425820856632716793903027563415315086924441541978237030697226331575706562795694535798710261672882711380543711284929121477320233089600435794453552536211527543428943238793875440242341079675314442185812469379826247882872676578775293844565422454193587892731722553371539439053703316203701164011266470668422701701792275049583053259480602789756495286412638821794711739606583988615377608093393268341518272987775766075978602119024652597610008379488460031721993028532309061128365510463432190881524016299688597870733484788164657022904970099305943073690153039625723021804633153968615115282231503348616149137676234114157106615793170417365556374905955246715666454320880366433867586562983104095727530788432543816097785654646285524898388962991384844248728725356670309297188210670294344038236193050008723161355020989563259838180833603037753580166794000369352868177331064370501109766015042886447896702947454419584964679623396500252786564700595449244028484620205764770960163113906449353601588006651996463084324673736208285061650915925394203923158304213855708073521746821822071982595473250979121438866856808361118933588080390549424422459867254072468937622839216158464117924480239186253095133297124228555326070651780609219174400311832388928406792365151170836018193825867397857703999305425040613085173017344386846761487130180632609337096729009032661767536839059029929300179286030109122944010230411596980906548812752414231326310503048203524224576948848888917129033188563268110815051732859778136520042747823143559174950049703870530343422006946548774899322837808834608780386858206141030976240656477004245107495471027344116213035898513372847393472355844900355268024529907721560432996275334962037594119232105335117415492097279354549762385843287850898628213351123989629656295569309048005960124666540854301832691103315154698812215352064132065792633892453514102318747752308027528788240673965280869103819480532873409962901870053068936670491041548003419935153891462177220712757194052825510438998067029486564300548930046795683506687789533691941273704857514312432902634407716916557646414652616341173708520183426571354273486183614311705153270392671686296217275724499359392414574058074453587173988451552583804581999347047931471194852901709220157555953577855850459270734062487175231417733232879781846762708013991352477798396258064453978405425077495521281453134813376189332394973184847162222606417700521097832782608964419740962169835117397625488369350922393306972460940934228491980127299515570511277124122865893979676176733088269398461616873586808880340348750140522466310440896810297284050329432906948258892308355258948646004562041706758286965464421570216990055704731467258611288383915324017832033970151956969474105084048738666016302619498109799920419490222059435692333386247111628174919292679400366272515813305081776123061724642520119529905678041804978655176519707807208588832737683597190584976354024836732251055448761882976718265103057845129200017890384908577237910528410800555945972121909722761272502517449449768430496906961812342022906306713385772646913470022454186748498762169963469492769120847879185066992924893698553059556675514745054382315865345259573809996409775347026775951302239871587782540232284792766800438921395769302898307798108064143140938177800383312867408078656348518868400708628393172893520226271340403502225541079989560857296531007181688740387273145498083341360904647913600661236078551427288694295362954832159410066133930669572101753746904141016563239083308758875495344986947757197154166398591167771200150116471214725478043722620457939375051104365952126529772543755611520135551051684936715170483697714380725019044653319947890626532054925433361672173932169372726518331551733353543836049069007359031344645837340721856755012155405091290438476121152863504264387128734285769625884362906173145241719658873111931235159945900490771073771811279178340957678297337746397696961387702221638796208237450615532856107722156672523465166419140753847799991247157965251594871850430066838869404726880985938923086188217387368004771981969316865977719572451030875680750356119805542176673301080499258412550066872500760398367316760944814550399845675880382160807592716332552727622908973000321364924100025803095956329153696728555565194962454049108203548004133016894839092273730150745223047085571260001460445276687146624359985469512558081305921341699160604663167940605582647520521178701104642407649647323869405447403725601799534685516669970974826080475659147749196988609882374631990704843171407857005244807207645325437072322999514356512780842143558509499849802100326368058603005305025872341680302065460643593689359446082342703110032145463319477452053508298005727556474741240424184208555872544987961126700403232412832427415099470593571643097954157591897117052638066959711756461739495345457698229858670525120560557962972359439057172621456962517913962829194360188667142299041050739236647092022237249135126392147689895875819035674588101922717761330724223588217963003604207646719118845948166949470222469211896506563789783157246862756544174221713128936997531248287513563724456368422709671904237677699877732646816944582391066210174153862312943305895570408562964820141390362553041984166600798452141430161325748404654058254565114517067358228404275275185805349570638203972320219649719514849239029274486138840641183530405479189415962691926152683410694229889066848745201309156417276466957775004402459599933670224234003973783775108375857544354845843955385486517407215608753880518860729857965324713459690536894372027286746090742713763422196898704330560533986380039448455347733390789879780927539269490910162844081945801609529757880428050614579354681804558067351473754195467957924585880107929876008590607374866631389776011380768391700685217152496877338089796089811465006618965147804167639507569583608001016231147461581210714887426856656358675689402764745858286137532738473215555304664696698766756960192798044263613201914586924794417942164035260544455352169452599329952789140882434828607270486192438560971492830220221945089961291841341900737122572124084810725076506235366110596729165225687110111555676797085753038001128363562965780631688007905063077439288507672387505761856105277760600154341586578541677662173469803102528067310552360769881347316107524152283255680993725425492508842303201435541459597738303747351081942124265852573596943605698737523616021840082794602748265330155901616806358873864655676130090355304203066395945381844698181483319879506484487484132994093828015103398985456534393905662148093646307273527791750559295225632320717377267828922344842873292952364310164563449614495342908373544151703409672101472495309612781384961061342085047757596134055476329266007425418021017539824556048982375132852020484325812590257028402407505710876411578822193312188946815729690367007813126468112268444944069825471836216512398474169987790477636810690815900244276230499492644968610577184173637696628572094600359876689689687722636077808305904522818092526354392761984336708069634496628081034910334382556668620590966462718685593109724291069804312530647652638815574009696530794160369869436774359755063340868675010644251804847388963879030646204453333942458701662207941071838202115309612101132609954894656467237848065569309109142436167997878319923496914714378866246059301348745639451831820113329937368050764279408902304612269564206272315396879335083023731715134775901985946205902879914526108847390811357325951984110142261078202986275837577050501419572384109052102291254815760294954162459615525742625862085946113059143091586971982350503253396825072751924583033730618367533214930961277829471966875245018289462125776776117163828760821207406329810182767557977940338396290513656488228854117511267853136192757471069775643280147736352146173862359090508129361036302149981483220026529948463506787722947185739979982370446170630717616218337949655357022078644028212792904570883780626784068659871372178492687000271585393770477351405264065542974220151260590034725361120218252373011648298607934012173630759660821862716718336883218392601185881885981565585108110991378338714972422379126503404537855524580339356260905263996330127291948226189438465496580648946377645872629962237023354490297401062530598654785778025595578715786743306496385753669693993787050611292041604784930255122315965628625155833381615440041245523131395442587048924461360131097883635433111747471640527271674587322354826974162532163425224519155761404531925165438980509337573415820152313449505062695988649876515026348048683198252440532159632042664799890513047577590223542396699916509171971763006056637658579282523953573403112355090498728406115816857927442960191248253906693656289628988086462952568915180648131154346038999963536132424779479577545820117380533592702616897472739529362730577128448827386878317050779169681221926316302332760238243014885495808275560597061920155721435761939303102071235082188114485381367305008731257974717703657303554028590409144054338142538889968518252204561746388256738448965588786879622169386229981260591706359485189505348868822819473174094860734508510675072492737437375905232992917059841908651514720796887087864206234551636368076684243972150773325826375840846802371083270259631783356795957139815686122176441049555466594284932907564255481599166283542588609014463710458002721376703922843048909286674928324971249090465257999993268807499178628635906298289269524734096079858951017716660634772343878573091911766240182023244341553555364228336039490749315182574658995234262811622179517962757825719272735265771214819331037339500408336151613960046410682306888516938161927240232532031542028938944089934668040895862006647718182203931629909428390435472537542391114418617780906527334291510180839388910483192837366427472648399276961011173323311570757059816775615066428487679592527760306878231921301145529235495177348216893159700043037576997235725380289871349534487833868900662450744120436657461100424235328995140765723659573191871026005259826545742546980372883493641759769098553441683759121558774378809566138795063226744163703801311879850992707196191213901059200536948641800685977904633557185961194343189619230440936822000443377649330042711237436132681854578325189257765546254909084519763220412663588881394623443220627039448886978415670039157059937221691606890836368018779504176693680787288827035882121899438945983040458566599776197098261776352330777241339371471191951530557588215394220125817538555305475202153344366920205067074249943658422224626497037915513218573838140183751321098007058288737664228619411392012906213048614110321736055046934296934538213029403990853974935422786989121492674558598622680477535002529293227877218730382549744054903473545243723352820842268488920585170755151986235628071294854827654203598668157122670450476721689470548447714697886776708215270708962277809360406870212389151986864258238998644807429732602297289734197877410204696768321798445862301785102594578331148959064713194587578918639368623096021471421329964637801711934126970056913049860341474699796198622724456342106783589628544632255369818477800814215422682174464043246895634092547473101975445833069706355555995176468685016483189925630690144154119470118594202342325051325656027994019391730329256886677607508481090327719977128368423384264067085812914593510892551808582404690265960213491935520462935256404049752664467551564482887894261051258767560577281469702614579433155695851448963446628228876374274467934571310578021437374560221978874515678046152417018133123238204281080199961958627001697545331531027919047605581667094860348410978511708047988101936252958445560411003335218067941445024842024178992709062297005602125062314892272513897834106103873689557178236103065350914034997172921173881097141693076431499290583311154664618405292184389888991432055114281727633585120524581864192668198542728831514899184970024057810486885923020419109810452349473722619108651285571620054120990647937983215283011356770403698165510698150397146979516660320231346110813643982815674630665414516380670432429670826622918802763892993236651150387114672340114473939964608680292237322860022248997355185838289177311938447518149717914934225111645547867956792885521417776220668699184590344790945125337889057594844165051447279140610159950420654039694633160962420871387466835529648618724687931756812013288472539999554679774182201867967252877074357156080021992404247418374518762588955500205191071250070871430377237297913109529116032449875773069016737694939913774878668021313216678258049199955367491182873365679021552964504105627447084758978964568920868476228347978767944041337092353251111405214785961068527844886722734611568961984567954480635980496385985966856938784216876767026015666818447307681103393622390213093600081296857654338510608565953422402838869197395278909771178520434383620723437354199490553000597713371931487359847416285898165624166927215229620147530928683723764262937239803738979284216057005740587147796070284054785525571228693195352359504555012648234338564972490166504597556664887980297223223096258423492855349795589021499378728453378704467563229832623546352781960143068309352977507409186309746753478712939249816015007687034501292702405801655999777808234253923614606039338231437555236419752469965966520267134923419105072551438913997653282635170837678944066082313912780605323357879775682248719200215818678805028890008467233841394033715369095828163494871481869356601855569938431276246704605256507446262842000006893791474912778436400392825301674052699662398592694020855644350067106439067408332318541906871868304458814888543443377308246960136619560091581364332406510816523132786723267039367693167500756562589623084647002614145085786239062059100888205115838681745932191291077358841473023559952621076570451463231483556122155916722283981791763547968831507052677949253911746508166002470538245411160768608675580001479618793195600325199326094548327246880046669959772004607911096719035014751359723893323724676703469613448717653385114590504782604411143527643979666716144440264291203818465084360580553108825055685718247686363536609687988946357093035401519653718698090954985545825780833233125515554329256134689545211469187917666464033793801151390171305383260063857265081762029940833643782176559887096720533344805884818976867003286608673269833374478134029265659917847230943791816356719062647610973248082853051322807690437004736488982978373480820534942785658757192988121918123604623906406147754274882755202529879458330109140213997989844069886053087361865928491168596953778217532991857959419334524659828383402790823671790862711683533871786344652907925578854739019526782822837656098473968463277439171415182727489948310442380833740124688540186160130317650953587311793652909221026388246946556164636500714000129642645232079799237680739658386261448649255948517956417107630184509539491481742185895896349660701803800401087788713891876786448517347422081928521802265369006651412758234149512533385108730914850377023340426900111888202767011117809738491399124929345432836347742366759459143449563977188718032043444287211551817933601587611236096136871414925626466570937831889378765345927968729864248145757346677647922994048319389312775685897068118889868076371408022340288247176550903342119609689573340346323629030539557838877625608899207601674090404842689838434021720171617835461699369930368904235700485830398016471453950598438132934422447017674189917259228339682617281465208910868400915194993108072637336679986875336115778142318584837832067517245689154345399560980994107027810017872468578481689707729261225326154790997317480073349693597236330891632088626894301165485545951788176507661476155091148224110869722774299451578729505911612431637718715229093750010690797760124558313967772956114035654984656232988445479498856088353882380971224940438587518131044408771956121024624377652001036836492938515966415797461685405084346288641628471534245953565228059109725367584150486893390230277763555329677690297628408347910742953359032438705531894075723811430762329301126099187826907389214545720504304908178886361662090041911449505474863357785888682752078982619783095444433528936583623611165587172736616980401701695829635838277022842693691360814232543822099345409294815553272829385350829120876771722873341086920062945489551251429655048438529511484872290254833881569387841092054568304024475621685922954375288560576487790092835290274932937313462323056523262787171158358552410144437483147552707394091490022299115902139744057873590649459613536566247656174738652291726056602416203280805663830122245871607783701685656911503957900605078171566151642039101205620019359686551055465037331613041314760640641694986881084953014235495481979850429232362538312181060012208859216678036087166638985422727102292437561203478099608549872703050517303155066170923442397819124760680300305672475006189154069340745271633430942346028828021580445547856558198701668139322160052954529551194544922309752270826153101040685476781199810319743891916251696779471293220039500821082115173848897477214327242919781438095953388865934092395116126633563729594151464142392297125287017627229392126802919792014048848597822684079978533436886869966306384373717016104276712471410995342992013755438939927411891578274612207204485343726222162761722503775593510922322960272513602506128547087398955546955838541578234122438202973132229986643273413426448840614665201309892673576995925613546617142757487211114211075062039139045096582041157794970013067457307043817917366955023432236199567939480202004584986889410340424572031884573396786509200214962013393261921778366737925289699183217518025031047515129450936765575225947436601627042828952406778855319002768410146828457860988749848189583003034657784399470188640124472086428830590814448947202400605671405273939795412442233881670759168709712389972355184706565210522622515765728998607234066306757112210195402407646630265984749654812912640714906629064866728250824854682685761626644904611451665443075959225432446666597862414864160270928753058008712805648031325471605270847795506252209356017762857179737543193691894894885419588367324770672395871259123281496265058265674879138981339951073582686671606811405168759387962968409782521014002751700199652104508677538161865526446371488961740488784406384161587920751693100651021799705640482127076563615711293223334833114078022796703176306206242196675209310617755145817366567955395961076372785003373559147729201352269304406716766757319729460615438260271719105443093181925146079830116310538076643677576452086912327133428042126825863433636886303546849734307618683077891721244352568220986344544396724257871945105474831136338746303588386051078713098499617163458943271502714763935206922568014686381541534851563877548486302252179959340945538560067858538679967774397318491440528220776355816837924273564364236532624990923247125577364885879783019168460236739234394159504214352904677988429289445964942569288438695157313028153499432683901910957110267992609162087215841521697258680429168052608558203963166173409669553447045301684575936800048472065182233744564618100812827980533583454895014809190467838711648062564843693879360661847796098519691335064502114224225627347071197450980313998968107475111008265348282788777217459328914150335528744378797345939381668463837460298641334668288205069655847046212356177240760158189207627399452615569532960135559703884583537288216436546159806550776147314307084204907375997285026207213703758154704723480760662563913446597792897216920047823159349949480630801082810025218109157292164189961573886617408240186845547310488858124356167003906506814953976535140588130084804132605724235666872475790541038536061434831207001004307312352518091364539898326354550824129129800332000169351415321559050948257542149440513323319271031640270381439183743487082262169656342511820458519641559123745646356855776361878384878864786457190982951312921318152716813925521279290784203155478870465812684232669049879561890510587069855079775626758400708375545233166824345722952195487851901295442256062768305124847959092987251559284926065573140869547862500624479416189253054667265686225039300657578280225566938861816502661823733785708319089322763177406663061337553489636112425739450285205990432760952044907259511821841019758903202596492811709838908738608061165508138880878801895992979893040358314726820965892185167336205158680501129795755703339494773374503314922094591197642493359232999735179922128486455497533231602152733696431984864053640882179413269419824921798740979065999802277747021805939480628480108641117596626977583874053040032187320623519809892889163513377052104742916570448783431868808484794912513036648508229164569876329288408139988389776657721227466504986841518087477424749402619776190604952965586552548346903079703434314146691982120615335366760827422590062646492525081945219139009738445783382619615103286007989243151631252245740314336233091442068906424993351818596620922816215426785734924085852454169469964133855724441883584038820636044918426604494821680622601337226356325733102595842618323784973817913678651502197555068179670133904260662462814506850201379333873595550797365713604972745103087733270297788772111032961383413980342275698360899149367191675935265143750059346695408718273710825543413113646110171899248299228291215052182183454286480797762787991702935135867364587851249150977015878744676710511021274715941335137640910220246834635586793314619417543261743911816272359130944763180722088381661568086278699424369220149114526704105238694441880251079803199136421951240660722012807610108240951980849418038445107203701996225340322457949915041944155667661485104760507447775297925064121347920729715657437976727989329370879491058288884014572747879464932303579782607423680801291467091851847241371233211776968016047547647079807598990356512344373644082427948009100069507149457995928790740578694782946160877567984093180876992015049228962968564076517031423595322575965409293560343645358760855977096641634495465629523756351374088300889488665960735851448062818586808241222125320478539707861063040908006262640162020773829458666474082145417850576944065291849524448268749034191135094360693142086199150256366734240035137193501100440447222112597862252178633290046655062407993190307740217388295632075841999560774192361693785616915790908894421351836176808967125459722984982013255474286802589809540265987098389427829227710793896643602713110381015718950526706132844185844700682422277144958227642037308683458745340798812592351893563014866862096187947492576612054656862535736315629620845634610053218151869003971777745051518094932002396823902825465073432837972787674973451025103906568044784342933862677713525953126653494030367232378134203973846584491758670758231093877401730524596731937869104354776542485897054787550576135201138343623695049569409026218994790998170398021906157980330593911114560013476401702277541036421052129384246599610695494925088416125896628695025016234631278425784229016507857466998342033658149903191131334886756140532813143531074032560128853299277919880504633500514361801297221866721039048725351366531553387429929332750616898478100241313489885182360421488678941766437126823362849267882912660658335757984719388398802417569736052316382857882626994640638500623117099755307082094335417166435268814674668880163458141325566426233626226228298742075657248443644512631326490436166148639431090003114741767495403536189106773502650010534331663330213837711456511052408482424506898833161479434406427157017170190806205381441429277385287801845384202720917514201915395420419049497714048179875597775850891652783387491029425320278895809333123669612426572444805088452012988172148173807145731948196903778819940889258802048571355410576669903562843175245843230781242517505741337751371595677815058902105085323111189372265020206701415240106096081380248842194608256552620612778377949442259231187272581777009434705945751156061536928629729765904523595809184655503388071610134419741766365019781701751061055870579585400868236228070395342530659675101272432841008673808772306738942085016932853424495051034309326836814264262201808202791976975245933156247776705434676355974128031507160250749651942849755507989303009341126553456676528049824258693362731428102036306998687494913344329153773799511983580395986228448516390420356685900271823818246164560464199368763775989860975718703514022453110617624420528310976306665459803541309550346102413972887589027251928167438233930844055192983667729350503352074407178595689803838931871877174751721109756666506884244116502585122274420164814525395142185390262968020937351714806040822578740023642560661597643008750605334744939984307846883663447757249487005234978710568574350636275843593782784317141824567155160996025041313552458011077211322329736066337972997084915167033284786759813597257440288659812061303761326840125935718524427649705061365808349054352674351695470135873097424086439182462145167773687379729178625956542405174000783579585993468119747094852376437383234585408007252724073828863439320081651027315438956557270800944712943835410812099145965963699188170304969214849993849214875205717422279648058948684599539949978875647537079874413281778291185460331797531206635095814024753321425090814665891064841087854190795379124040263842380785178841905817936097472199937219298560224495164787085908442295536851758047329907203236216778725447995488986124674658609775174839883667374372332442491163379688451854217298745878853964938132579632580706507734947195053534366941735362113714685052413211673162513840274570032734078860469003895576178191578149980487418596213070081800332994605823381547571735525305345914157414500085709146230395362170574239186245124465044317745619870866570496468587235575665748168182947105673500855778235496758790194453494103945613801348340020893930356050570372543871146811977871907741635514425500349371303364674056699931616066336045991693881769388857947445115151415900412754352415564778062836731805852669019932007603157576590105017874030356471664362649019802289279637616293387985025792035227928425160590262360660159322381505909259594585897948216367962685135161861651970451329953461636244808009845944822784679632957117333944555371626101120472564205444271555559048981014950877583289643895923962511671392220163976058010266230819188309185040422747558129787848836130412127330205250995760811347712948548423380991787145851970692778145222264414540820046732466334771804475697732525978441934778260917882363556757086938905664074151118914839830586722754811882784889380367338963484549190874320382575692802651318560776372791992926300305779861848075620433941966772884281059472235507507835094116047581339933726076255388433058466280164686798831544024515362987137884462621134522802543643136699417554389638366477064560535592103579580314705342164633422031615707041425330915507831908685617744388422838002077628052151365248732101241805488197220305448337074613384336742137459472033183345406013433455693698480934015029505208596319921598404450478332134756284010819561776991641906708885870282687443606956303860651099538759138961917304139750407611901930561598938248774083829655280103023590401135815238715375173782851571516620889173166713938133097670992271015406656397500335844200613676390649611098685519763922721817082405786913824951737132604784302623738001290930915054703331213904990770273682509200351406601821959049058961707701797487012184836303197794455158935119104991816947883649889715047101062496555409057425496341510661557275995108666623748702550593680676127601294781285143997358811902861285814171614937536017255529025696248976220463203040413899805427832624013182924889896233013447705925445863047909902554789443219713236227603633885948146006330090965223072286584639771199315008387805315455524969594658443917483653674357233089959653556415405519383061714102256128071830867919783701485375537144835197359363634944495511359811838192072720827732506563456169994440498063824754743046831760421647859153633010063981984041925010118268788234171691686971154957032420548286844675452700463606984513118568525324808167310416649396426250212435393004440514954325220248573322736579403728220440503869276704625624346367564428647955850078251750985863049191721773657430077493832513624821258118404441784783325143554018963093011820134732353783411798850027761683058430624057335584893429499838368738273718048589086422173743428354277657989381492076347234742084930561117775822368254014554592471994925255683149125950402243073869106122997990562198734106702026880799921332965650734395822109594548654739870176301257545832362320465779437295119360719442129159817464689534384649573480859380443816516271711521995714738703873686731373798435700923876572770228727017685423050302555921682457310011483182460180040973518256786693590592726818025431272967887330863963849417985553394834920106862721724624948717878065500989157114377220572967486466631164103037392793916113831262262113151064502696115178643738920956742223444132423980625196808829310030679905964895137980389949686466254918016834155839332377981374684818121974110668449399452828597283810657796105169156262941431114554598351154272930409229045723041570981609258792777613999490268877666843581829318662885563874271809272453146035033797160851420550820666574696839309278225215559652386613073039299212544027149786992028914638782520311764294198060884917400855712173912653212086058984760643231652377192416815913119292874471309169184788392433960480678198274607705489327837365151807664294966706397790694328185951480723433882543824450324298132705875654471632470311630625970363970356819425125602893929176671086728500426071523468025523201827376509499975255850087820847832357333597999174030022146421065473961314563523274594311691355210243946485464638925742186827229137104757932982928617452349376238020237494167265061558064161273380808069260166359367486973197486870888759694752464779836648234200804564685829160253521006678762555415142490298055072087790727029493565699559605998753241233870347369651966637196015093906567098802477036956569177176020297448613426166285247343297135080218624733390926486138283765244074984940696791933475073710746378045884800748014078128326843647667410303414192831392998824528931157428951589614213930113068128578436563912088971418247043493569770039621903379356621131689966867952779493498179636875417109469437835893252548914076045345233778444166173010608081104007987698431594517371941652489068151041177060067822019448554071432493571265902368897530586787207366845429609368957153136154801194462108896639874026804265776737432800179232605685387802806179556933047433160744884469096110488115618289472185441708353730806375268646656666534391197579705544422800792359702171458658977214295423059748006750445140584210108656278531428414150675004530431905499262254154573423835708925513296741391809505729528038609056468886956278207143970121841470654485184662662942908757513687060833666431774712260205099622263540703957601420953153214180803629822662399079207220288871116955022680965266780719622723322209304792655436476192485823086853220707324158902471311306995310294928762903176760840308378967629642868139074019726767343730500009429173556772659097534793227887970086487373067827020983595403951208788422918730898022729924961136909601263150230082598486448306760665057988544948886029199570158111289510041762222323316548095150669465437335225461131677031515368430392180585141333369331874161434048138284279062108761964192394870211689886049148409392952064790712301086298051100585311547227426346934985389290950075615126449272222189725617455713816584866390978645568926192636019189733675910503766869046883206222278840103019630982963974200428570078745297105298245453734612868312850636105062321169198739994982614840983593846422251820171653776207141277731746319232633275910609209375381894296667592412619393233932770819105211819262435804915741055237321165395187203034240898684575327636069620703099389720226299652991754726713952934572119860234574336943596271166846728282775804563250463442747301534925340688127890947015602775641487075342878662476690719442740584107399487964760838289145405249922296207302835099214875636914716778145148383296515336705645295277872772685119437728136848072053051898090595793208217002183470579631997187392937160556088166512064448554804460901354588177504847990827217307623249047731479063993480799156765202494044491713153478871612149424831622882869323913788453172231091414268789931922332655621818132128667250943494310443707626860946485040026089444653258815484608984768957695606853845096348923941713675851990465505209238267926650012358799920319809030089423542255675856907195301021141446004385250790307235041985700649901697789552868395277314488083210066412810408877323052083414821929035080128524592972740243842788223681711083536240215621864972435245419933542804813871745696958200434578039084150720796626259866049323650499748806922622277451604697245956291978991231045187247419154197518175254673968199779027951496977800028455673200377577980130493384454793066894898852414401717119602198233903745461032617081072961316210561583120538100216251933111443842611738278125642629697735036299355239912817826240963018391973927758229573204827354961970756229209371056358914674354816968095988336199780357334895981059138246314685299771927540059200933146223760057263587221098650310439288253444982124552589897887382583803048265543570704596667140868960765535748839658140956424368517766475433036216705547120655176749065447509447181340817441715671939540772134363735479783491426072466887546973065571339035536122632986446799042002951596986812396714333008727231615857003127837143556257211918056762333636961602589518948096741001996976702770295616677397254197101638435876870475334743165266795450870071767585491566269852004446863900975700273168366550880283076623225490018314337676038049946130022705557950853602850726471641896662548993903529982223128029231892908633319645846372690273976747196825441673811693042209878145494846728593715248528810459141271983580222764532210090055450499068978016920637274998597998579194861944655690174710028599469928687240929656207571157034682371142939317757566447121663418343424181759766437742800426098177257492958634434403395780307638026953773615815502086814771862409042504533517862569102206799074454126439171306816835115602016970935072386524352662424960786252828427650108380918532246787429176580888542702854099647965628187556508277926618049224892750695735158004989801418100671122964166322660789959313728434702981380592103614555088722295539606480629908417699854153654175119102586911933302198025475434032200279701311651448317303697692109482770783512662662436528102069909520220732155075644225564370078939205878201585624831932092153439863629003888114434675662129116245978350935517088442640013889837273417137257198832889424680663720682440346648472298484339493953970736466347978610706417279568723876109928345452953468969279981466585532288044557155669723049987402093873351726305576487471270514961091193472153173454813750509943768158597457393554733462773853767327472630050812875478509659583677589241408168334828268781124221839847967153576156696275383569957779349448061261598415585180536912464396396476387087412956720518129480858079746757842308544082920449759713236599902297629765531858849867672209598217862934274194106056330148522468288245399473419131544360038151144750954396394685426743937154346871659243990599421774739379691648582737618702156394014228199209798204956774877665882999431941323040566075081634717919600562370615430497184154660581557108128566114995324733204874011862344925878053426569226806885148495687750645698732988974871403605951349321910425256485447418851510756170646760190912199406857014256564711829554780795632225590218206606310248415818863262267069185863111423780519780945471774732028150213047538740233045411652766102857791756449437993664033617092524255530208538980766941721788130920697873302592684699639886499662408236491224013656884618809919729304665697091458061443035209647531066784260285965133079929534048896094591151975171869333421746729200773704612505544303044628724075300057412385840168085568111164820188765579877318286787893548553578151158110202997611193030229586985736824491476334834575938531957267794965116819624564867714723267826515998126712541478712663488961929267345957517211314994622760204972209149628370899939393471923532816300025195811857738537098842340216869364349930769096805410782196573478043455850427432945970626287568098175011516096899981025897129731029932907715477622271139795294197719244719292727954149687206774398018276164215822122549107837140435736655517719891997840440106748477019172955780653801971657944327874179013449243050966842909449869521753421987286630492060447078043131198973942005507199359022149572955701110452796876323200946805632351684406742412886182036191326025459630201681809650282693321711436277742963610395845654423442118937184337825898337932082932892584794523193493357435746424877551967477477263386281315525609863761019173979464611181991014219258598939042431530159495025545842841024878421849122792277366865540699409359968578611040813236364866606560923431642956889152757329712184502345964038637613755322630879971234532351789289607948578267297214499593283127857291118858142676698175956584414332585925725355994556146450192712316939041881072850947373198812976869129391540745625570392711071818384894004843883366123661746988525649716541527404415716941335767220878409022192288325069944055229522492718961814128779392655603924668240140324976228553262933691804927018662374499853829479014353368284653971402365059747952232726472010857457404509499992394543164754303511697751675051262922223534056218710064876768001318840045744320701243975354086320287056129001430222354385656854904010565394575606094567722126508931615353921448947435259371892588067260721942140547590077050142042196123969505348524222426075948518726055124570772135217321490415096637257778070359692934691020308727780010381510423583552910273982495490385065899190138208646402375630855502502107524578108337137509687560541028004097937785116267361807550730420602878982181133122875515513411763959663508533052484562541695677253480452651030744114766308684030925215087495168547749135544174247337650538375127829445037647226453779172267512865638904469033782813464425278315422343085720468705116720942842837344075719571810874832401096091507168787570918656108521352993349013016058120733706957694525873869074561235581793283860978093523805094990760405253559237207926959915545613671110796223520728859224054635419904005007221596576262734417780450299897398571863197103639862910531486989832129456942162721825056960682753301453081022559939599700577665239249227121008699967722456794174493236524114061885958128629923254848861866078532979007140300547433640895737208964906314161674713119271049522449370020794046468543095346512361827054315043757328686111917023763029180778787608320773733675547229609541597066953102482718943394272224033302668585366570024898210134678915448274667439215407135582879477191726286039825049542199948835618933879201218100831472569614411377294026723022840581243946575553385873155500291758778469934119356391825597128096087481813477797579777476242161609505300562918318945412857297630506490017918841990025173462118913421360699529948255741076155561825495003829824699843626645373007103792371287841419621861247666766964188768665608711536157409660786872801992025930024546230163420352840722031979888681975735428976133547618045478017984508551691715665874736870318813114020250645087062475472091059433430227674619927004312557889752588247439201429506013676079121265115100032038163569952189423788368716739709603810431259705635694398566641081541696031988754611343176602780590797050345727770437028018191365647483311124735681016246606043741810969016337128250987205461281146235732533940529757699897091696691841230932746949885926877290481198449178027595241602322551990474356224874194876066186306756482603449549024026368733303923520869680150343184542547212371776196122791415446965226966268733222522604251853896601874284491490640386191368776530375722494456068072893621904661014245043141718611458113692405583230050777959868290348652587103847900419242980775479312201717048521283062625514375398225402191258009655083237128351016568781250634857979177225123623632244075883503455035740490041641221548732340871595481291501942442253364237235757860529742797103064837736167395885485430845014285638153244011588500739486535062848188283190923025515503801905940297611002288041786050725757721411067699674730816594093230757687207866179088886805730308299657706481430619086341750226141095011776486594872139461601304199213130047812230667447587298904153094625072631664642323549664908341457153865982286949646632574791035112841290569945393054549027035370097483051189002476596956734940403839415215047267935499211364511108141533900747038857273143338041603047980058188869312915069294956526049951281434694207292162696688762242508871825746045111905201777403632734238754194990196467542691414792377992291665617543028625713642009529484282900040445293537737864961905699720734303353485546563218033461818350614270524511659370398556956445776764201204917184299170428695207068506531729951886823481745219042845155471114077163660322890438227996217652282574791523701708528260711203886291447542230499620037782287618887243192861925708836037220844283158710897340936954348663246860473827613421947795649484714764461502294782457834672706088404209814346095074743594972386614993260001348138515091501301673155095710312166745567758649502871365076946437801183921383923896377599598932346116060304765174092609628107902069987362851958813506436379280404654426797498437459330791096794182702959613998618942313043178224436808319859263158409204953330111356422416289384337521021990887413365175457716135495435505087101790067941342654121550977286651787830119986736029949009687961202124013489021884843597403138318810474578283250162996751632617568307773320620349935063127214937452756286208187120107042428178751695539450502070242682913310928915566886264674030478511241780682637729895108276193161966694792352296105302797193437488572446150950688410592043395395939369285219867382836359565007837304884850220957779350276906598281397791691728705742046812564058164751123660123080972661616550740334632629987290482740333738240862833626015118699670069945641989275418285270106106485270810523401794841236311042843511494918268820651052528824656728108184244069858290496964031520997224856569922234726583124629710597677199672299247561690152597070383151488075998923855808334734369616699144897136691241975458731807754975428113711108736799252096533419147777604745344881243142783710917946298545628842293106288462325953252270463259860215085224277506291282355909955750579096356368702200966546316977541545130070345514823110892250493751873136155227361837762228455226558377282763604702617865410847353583500908297325231704367575741203496721064141446518607647195052468516389075779123892232849285209216561188918715272902994666086051029964446289246115262035640154836535710831605477123481972147741152783589505434364388673784163421674417302251023729629403993793690728199933103876576809147468565742229092043048391735581444585787981656646220258090527220072163379197366511291148919516643222813972849624614106069646867509445745794313073316078119624501874348528811404616983139385387125040895735304871772819574286786778847679389878576564555598836881524543544920229579917001800999642878617068819205397563772289494600569626416732503564994992145560290403438242997685422045249044638233589440560202895662248685562836475176729713975805125422754012994153142763026338953957775965436528735277568467269779906094018038976807284102105367333895229047954989770718021573993385990721342536986619687680118936688474844610606601546202826797647497968002361633876544042087122524941491107873738530907399812251007857255778064933642292597840046789344896872458473813986159079496102166877462828149153425489545111630476487381431724723948495567035474995737641282094708107022706056103649065376292346549526841074192925447376345133538379967866550132634726623008466652571127583236874869004393913385105709070106258922803282782773252867078984251759026916375153447508709492805328150472590196622713331636327713006029684379117419265517085883852657040018411076874258965744451646033962073206738815981453462738933659391557195466771492215974051088060991041865121786903661083198055927578400850020824256290118852395015823719796298827840303181597872451642106042260673257129927715721764439826054003663607992307649897420662930587556054303058282759288321592627209686685574928058404257359268682133378771158971480179442836049521646659843826170122883634339031284526811297654441895600039892889943293116187553393079023833664114866905233612243295622599786847359797942968182796834829997194565444073697835683162236014158097714087702556258559994172384309169190655900345173145656859057393387460481184897464966119024577708630146099261713029687012811608406172971383715799695486194355755729996603128552764551744021288660985137049175442870068545207603221681602582028168056609379627166542601271416340235928042500037100960771212577221163786115521052763880924293766108588670782717867969312603887067795892206530189592338539662289817328551870897772478569953479130615215842978821031876713474993726325156603558616302974064800400709288569869222245891593823687956836798287451954998734308890247943538818300238424711286005441358256847725367642999836779366290935952098144711791378181870081526500194886495775411360440934755236618613788568451470144443053381697584976609980815346091930808179590928714423958489507806442650849698164959655309160740878056215392772128013921768582838863725943273306977612392156138503562767493052914582329552838103248303787124426687495725901255351090047990794117459861683809117871429659561334059784510231110979981649403679908575978578152049429136333207037679860936221510620665131290003104848637881545667308024359617759113137630509629212379809091457976822251487989597233283620717996469830336940142635810168860203402792708037633503369340039312321198244462542679900334644111331778911398346549581411919570591137252320813686028265064837365640198940838540930895304573229808347521094130285597542346868915540367212231411836630305385960247613415902331301127956498894331488614280654509834920794088266259712578814071988446832376136742319311947745069958131492019136194907681621470310291760981660954793531181729834886026710792417537186748017586913874551800524546715204948271630989520684501968980894763453910610128972108400322344211695438484996809595608743819170384629839155542888944583095804045386397785115501535749646073446738055868125900561495920116055037265641638898476244139129812192812349596567340449924317872447772431921802993546797672217121758656833439048164815197929690424127480233649501342446131828532273445413216378590589930299754333430585002549158765282367997195745030668618526278232193654320207124860459964676712756615105115051457106840049975086580830752628698572297919446405944136228391090417704635878295087161403821747779701929238639284557426658956434689005986660133435517538583570324223986846747536314901731556262705572796056319994002449272466994622047323392250639522802586246922724653923939040930466952698885570897730470299243820078053420339419222165457893826789951221936106665244035088042365958323830068824165511840607257413268760855986920505067698224338400313867279689279978631165959793602029018503594424368496365590016856925126161868008011457989114854399720674587071641351032765939730208100090370771232647817367464276847961690474148367877007083290494424589620965529356966791202135541991505911596509682226624661995755520025270927454337482555772866590180885886805775897395378568062002037040269641385267814670807766456238313120717623696281309626393320408092289496067084111727465852288250499296284074284254303272382221801259589724699304534627790357086347528053125957690069013806036519118090312649211244451931514308050815578952483959685964471233078601765581744858427355701006099915249249084268803199921649873061307279471139234793233341596912611557158249071328787574805338659079352012207415348959614765063011502856770934862779223600687009922540342745211022000357069369115409493319694038755718715085572399875367912174691386868139985335468403595386960088706710757225788007948302134877274000721524203036264053629776880508461710678858126643630174766485903642469911382984248102834671190549880522538216570054007754506550625421201952270167224801682763423309629347025301227987123911988207178894161756968397856700457171619785128967953348196264792409753544198678067656390300819731876749320942884355105935458987955003012493981446721084108934376874655846956072725149929853230395412835488134090581191888910072820735960968177632995107041951628582986966856290198355104627952506596234743561470917666776747879443355012856868498538264374726491720817247960101732273734413869052369214912645127144082938335669005873735287205447501799500500079528574414907644409264116572320224876376526838535852081974799738929914653191637410851058370005236785443002600716863593981612013828496750501881802046288934054699854961283860079947112555306426421007955777286773614819979771000749681289014510050189067749223032058424779515748666893030039350125482606872831655713991933248250448151230254105728959030690551278451223299628265236982195875019713006992269241625722439662168496789657607605236016024783895080805438774391156019564870949198003127262200655874175179673534590159239434111867628779590187715601262270455983303676381813515930168746742453231045445245912589958255443341714677525975561496361677267844766035679205528803678288024743147331255883289426719455271591350737509764641138275581603109994637719276246368179249278810860991183470432175631550880172673545659152128428775116354836830749216904701154090190571400776071574048429503056563186465295101372139307602463509548141157719016413629886597075869123531815270736258913164342795124208364347125272674715249672861225120472458588265942336431172594528296265149695984500014240576585064013383042176138233295880703141242891480631508915299409921032201683122910031417342664948261800531737081917650379948828268251763287361008279267126061962970239668535589650522860880806305615761633011461422822597181400128152693113178323139955043768866727904800296479931279995644660327770362461466628156987657146401451915453027498299869269313173194378133293874426150036428085653922530858063763908888520219991525606963901375648038574347536838232955262318317741221610216830532363605593796149764485305711317885780355343447402691971292676100680476890154119826593153347668125627677457939050412659462424168823572532381975240033090032754096615195871780319073455605194361471305219378701495190686575344477251131393411227131247012214574645322599795862609295782725107863766639820825868886268935189949461556340898886911425920332434256345981289111892150151449165488622671211658569941301487165249178988638059285315128094043314742165168776008151190287332038011016091925147727290230642083175961309318163685655610969420057520448378692789636963302794343604094202083988244149181912910676584963578667379972429728443166694884281764949868839065728259523774984500384489398419273004113691367535018709999371822086054214924675592372814292663145095050675520493532569125266482207694437303426599492597099648275486298931326574981606851463024897687733498417464702503064626742528575292330279883699613641473612175205361844071575627999803775448211036107682405537709897697740662562758054883583335310752818501141393053720533413709804904144120768945656051260843543852677418749240666128765242752728992930977216599750333602189687693700149109459966070557200087359403392343904330036990257683508566980318177674169235271364585535920113432230770654112032416387007672123093316953381851837229222867799678866064681423703140845197099058308107578219051576383665982260595867502222852329877599916693910690213048980785080108541323069280529438511846387245642099441230439081110987367619657841646312803487564866469825137362057325226952913130489408112363243734484018647626812001908104086415091268157926245590837046538302377592039229111045683590949404887034421304725492649777838632139670168582265298168324369684967179122179361784361139837645163014488250224203522302894663242866892362927775742587066510861775597433539298271746664323021581633034538132592067681088489621634929165244198649732081998898731214230565273528822810689180337804371090864760829534041866736598122187767514471380743361607424644079699799003078259033315485934327338409389787726276517730967010446484255140030534070937396300501708727936836448922522463748631141539357186337760642700553626409008750171860266804576731880796629972583704247969861983500103069919831771830566631616531680766084923953061698912346786963804370552741013264181800159126014805230407470733374024207451459782888747998354900891087243131800777608128467377603840293581579098439182832223945802805756774678839866006593185377122637698835606794434103143465382381689845025927597180221996475793328289669358974584552806319465949312210843494204047687818718653569160938986736479785834157748536203953442208829099175307549397015680059095371385325642290423623590091867616842315498910107783543792046386266112684575272790174571458449515655917996362365141389266944608384637208973663713081101923046960618921119590656102782413706213968177792990834447490971591729819278278267975694140521747759021037070866711699777253844596242712136339489085804124748162327514067903313666727281333639964415584017758398092401290062382008744127770490361644245780261545665733218943942439484265246362365899480604490188991409257140344469739388454242428892240646638323936905821200972605827920853803377124620875257120655494363129251282743432410270472357742814827780052007727364414156051051785591980369403702000792937079314301702204140292492111843633756086487260528735811038894621785343351672453432210254830651613508126957745091000875174204737934810094646734057660979491350397496803756110191923699183263438586497565871354460819156687634523967621886142376954164752219878607854979989996610099253064710739311092589707771105645250670983653778728893818369903761369304061388529211681182193353278358977268115516475287428710363463026962543820632972632033566681318063061304056477729347452125777075795593036138407682314658456000647752055924125138650914192292431638707976069852589823848007308964009098668262305820175527971659927714182075709382038065578425422676623216767835156160622023992444589532603877697376815539299722387823671762415532045528798753335092789340724460311207389771932496881592715467255461810170445755357314661765993925998769378602245981884070010381848303356442694364233997728436444892816302621154563986405533385332665630085239849709698406569018486061545776825874581209066471406686170511968580883512997224878713629865688755445403681413099420517432573519518392615910424634373454653667568186410238092218696681680490223350879638548079909258786800202969100199022743617327901604119607023607855372219328395085646280245769791761694816775722147973101213106071099335103237342893158045741774311077584892126757441020761643715745173236053708822552311080086785924501564499800403855167612487423870289835582138678500443203713354455796264830265650671498832481898016542167025423397666507870413151217117030623646385998832199927677706043519044472027041431574285830306473632176085060809086253917315161580561264858954656718854541528495970615912754357207270791137772011488546521052701771756164130437641774584892899696575550458448452946879011143177465686591113674869477841409157116289704512378229118154810614543118436704957291414984334242279627981366296635978307987145370795079637021027353142059962327440190407583688931006873154262054856605074603264583134452990581271452759932161673265554084876866329591442029567419938816817100509261263456196555207101256200847464808227184318853555116467835539404556173607184489400772065581366199220802008695397991607142360831322959488679765344382663989455329800939006041891409057840317350465875538390028362827003667305048825241788162942464428875033548596067364998474383635889707358753325768451458644366779760240723903691094892061717635433888737622340626123861723439396794045249159216536654520964295805050562983358209758090194915161174375694677222230088224655200537502040523518466536400903109900313009361853583197377127517726153567239449634219009519489032452533994286292394717957517344623920168191392967023342106759013276793305391706539988752706540949293758437601445409040030452494758831818655519269343961952689213076285442677127653005898132674399164409124389675521065043065539326427172661581323754925153326524216581305273811014357346840325533810378551493793660975285946285719942088598538424378223174115507999303836942320668034278600954752257187954908502510276158973242624447802370951787565713742754818746091275701609333693085184602675134602131471724856304732560642081124149088559083521717177736813496247750417303889210026814328147143438179452686322088844360411130550339605517623513652255446115366548220590326078910508177167493882718930463352864596624728894568182044674896753857764775289687173372569618466891564290922094858605357107112665759821527190591102549488349778957646513017937086238406701607981518510340257743170109121583950771097540790307736378721937716134935714508346461164680252502427603208653984375803263708692640793295771582147344491431328177826753270666616703163933795718598454003356609242914906222611703654685596790573841988022177638163128788371541128382755623557692594987180686608494414489506747967635861125981728356768335947642373755254882011601536980588280593673620102970680518771740845061744213747529651106465111980356652495485640137712718694152504142369565678094879288717193322713724724219518667152309678424533463128987880224150748756925305860579749791596567923584909281143197447116105689571955950117869722790334496222855167515917486803552998367480334198846368542040851620315104465022079273054158629276011890676241967351324171918075445663032367508811983626984469357348738334062494017179168678231149710008896301878378041289989278886149212596758716619929425507803764996257247096587415107051505876560207478156710806557444041813356865964057695138422366803737420467706505826539286481477328378101751576221475892853777033542086605416628248104335524712171058071079152772015073056507910519805395407742155587813958488709135032235825031955473366470754194563691330084625793100359968289384985666192346133221158151612708414669872651351186318709762944757423081296379371801794872999422890704277027342311568056790203742247096542620234023728506111458896561357735508552461685752187160407168069555657202154455172761760868516112845581462752609413075024463153553608987648097501686845635771483038364949480353197080656371835228771376759811183009027797240727533498224237848352804614270564230039964132143057365412030635784592102545349294221454013638026348124191529313685659229841138866997753443913321414765345768765500569202514944592942999616522037613148549225982090349977715575645922678471436218824541243892175310401080573138602165819413168555994636147596748866385016939904113166831734368705065358805058568355017266647738374440422491243476371772259493423113693542355065140498753724723780866530993574348540341675284074009684357085612483557039355123204425129870146917008906206934823554514452483660069059514811502583318412534197708845101076676627340232945278260781434354393476448234618643776969171416278236280950778349106692279330719255455203319031824523558982354144690266504605534530677545094835953040124453520505133220445634169365292762448350826253641253617990790791552638583273667684914980089883052501925131266624672359826606409502297069631658965851353690370486595344964486279586136102904634626448350017817324404062626206714005898853571361045693213414595167446897077066241908268746791165577939690743380953146689436435474699633806988595772528461734588531534791366271743179139301167937449070483812230544764757606341297313171199440935092464257895757841889724861544064968232965082415342648937876581522341915077127869294767091155222756302552973289957104247592157571792720591714716853932264792861556708333917716810552838142696269053187987308735474822597745380243922414647878758375838364550389495980055628759121440591771002868883935693040958158202045623230419031020186770068694400102538356203288939446539258176297452038272845661325831557206775399018222599562906540568096229688109306341735813212398829988027176175636369679093709598133511652133625105901733946139623638100120624927521700001816943997931216844176562999397366851163275846970500186165186968685071401743629597276736664818056539901257529131756026579694261770653411004128711868435713241440232559903252796159396696716929258480197142058420280777355130883306566437678233595563134827838836944425902289991747695477892679300198619757821292020235302089549369534644912530596755636412349980829026181470220929275354605662725905727005694028111818716941989908938289306912075556923213080198454696212921552279951544732498502470273214466982982423402340043614007465486105273639649399150633330612602803660763589681749771938545017011646786625372219819067504457911785130340766641109401404541484526857411602141892275352260953697392149565785926657655147060840157374648782083330811954899317969536016631501530708611749289340310411494096011843719171897337341313613877518812506662102154741838322081565933146855026859170139965845077042450158455976853715987362518003081867432510797625930251062527545036967225427091660655577937449808857362764754549023255364255134902222360887904236957548414004240937896175920811111693032675720423669604645077006275780886656294949564788225042204454757396100592935506167006298037936514706542233105060351328872101789852904943586649757357963592086459981845044061891666601958830560231514113647536863220270269215533698578711184361668277655790831264460981313790440699869821253918133356123883664009344530526291520323101508436232780154488125168585779643862602342162521002601758918736056245495117703824117471703475492639311185071330759826185582361459082434122935528623327117791941389237584490360793466430935319858097102818783040749437098170746449978500129112777418738154475017294542762422414408811510573045626216636480944623012724112397281374040885306687183086705225685098378469533731287690197476382068181487405024763160882942155633385939132500200395414016335691449520892639743915935106585711561507285893675090057675800876846429264805089814137812192818844417041981455608097168268988061067353686256564157978759726634253728161969154538400179080240179493873758719898247376842343478341968620970169188604038210111737269616649468832894268623248278245734818732668990596198684394535896453437368224790824335620490168651400742182736272315362067182625649305049218354001626217566227652033295840859544326296339251895466663033557506577806352533095095158513702739745060814102368547048664920307078728792613090006525858904067761740401244849077875060548661916550510044489761938050233123151834452087546207206839595586886955944524602568859827808525533092897672279416440388980401414629789718373091439537363869331393455312924467667379685053163103357572058329250226568375082580261616587686000471871474835424515632821373717073100869023479814014398429569098214339190815274000929945885108239185188730793135052249055443355083382725987350855283620804288216644488764353774759914268850682691922484506962618781826632178754093019608139778782916891275513524570169592059875731213488049181130836205813083260112256826240328824799177107483607219761874770975084123153592790398200097940317288890822810748069285683456847477502294928763790793645840192808705712334637773134587770589138658953347939760564257812135145911532258765333116908749582279720323765951165980781956959693616401786762786413495353074471029203248446490324788658845713107153735603267620735543960764214843265473653267376809070440176925992136746164221912495894345681413316987738066762406143026879196094220685043433612927992105246183005544686706538160453233056188861179071164692275498953454830508889528226339416361418509170251742592550543734034309653406260125850225258193377276778954501349094154758166719862490792935605873610301878995615788803866416178151879004183788471074815713384580218642466657805811451481219799546513293677910448196067109806487653222371985147223369810242930517606682788722547340995463822065979232698024089324834371780512892829850893798025944909546083531971521864834980653365437855196629219231277228184854366734373684086897253995251669940451961744210096762841597369642136494210289074645619298464147811422337544396602410173691223675387339539691812115054430600260394379972039587650855061258098885029075663845085693293501836445608647192506311018453740507220214069019301151872997173459914744279087372331928881420919973970426931756988130767816757893190927590632759262102480259014842565258288048702396467158809167040005626171998778328958367486888909570163086966843284506405531451272983426371515764325695899656680314504733148854551042039814840041643914541628417037373577793901536039032368482368323289306586806555632327437351497065783926706962133176716899184404512774519523784920412327675680115692813968466844505112297246293012778250867437666565770666877983531937259258514695472927993618657559574668944667368062013675542665712303068757321219085911315612332310058985205321816291288866981491021731257096391536998776924135347784052685538996005437682037613032260907144477367035689839822043901992790529997494946930383589673839529456978482497494790849063015227410037287321044976926136540630480343551716434861879646367282461497332185866597533879785071610550728304708500214133155084192748597563976932117356838558889203673423469630848434007356595120148287325825004883809205312424024478072025013720656880785280395394495580142391797488171891650390724182142960664509303583957126695357374542748570763616301305653629980403751787718289205233422755809568218199800277383083901871901910161711547347174482611679081297042105922214756029469564475311443383269857999402846826715010156048158776325373564890712970373615888173272809753999907972725848204269914386505212263798022997174135624754064899789403955504391028850362784022748847611405348749897036638895753233868099629998595332897192423680657886353750668512685158594191473362287122013630230547959879662350694971215472722275102894558750900285991095551071452716993362050246579436021822928535345679053176804950008624876838665652652517011124548201150333641829411853303475718405999989861520325139183388588143925416017470189546335691444082767327688206885635232685985277846351686174220948012511536298418398642089590244910708826997893937833479558667004017074294299848648544241670067084881637069880612882796671617796372733980266972888361745006693210054760128566772890253692458211399578951643054329634793777875848899261365564099148170439326397276810508169073866881319250129122332006548542284100648410861148326837264151708222193421078743642202336749151566506351668313344681276444850505698212504806336161370991469426733871671762068084622039328107168498297240441356954610114898549229684070140404923526712564132901590904791245069864264297388108003032882262704237960125548000722570495049835539919860532966488897814092068553945462210425186986082893385996331158955895432909585184019452180293731990352828621927455487213402772988782504816907085838432479331623881036754567591396112813000567061125893249100897791057898858707730934309607686912344967437320664010853630711203881684862894133816717047292089627271611102371329376365673799271407105773721571072881184857326385401447420720589521495450725176814667763508629083278284609416542023263469365438223432383340539415893047048226851232261987444718653974282352381369162301229516023278411789925501341492221472626908403351600896856343043428507317835509278090006384160214640937399509901048924456309774432357795928656443008010023303706911478844715730401860755171434912263213257554047884865913434142088201716828418497015054845203748563923931884102308923435313659920297208498020921962688870826786980330863546637367423218001687373462825990737710974176226407841182944619201516867784404169823897874370491512595889860066468026524808054883597917619970545119349370247659517336710971969842633618064570604164381988381209437958746112792127008784665773975126211903016451744451019582573615327718570097413038038340274882199241100875564218062114183796357342441590506851151172889534829728528424376356441768106090288174689611274021796019006810468625914107105557773190766657335942141782848259344557690012935944221668946173298785806499096183433093720683617396574215808922669954539315550328849894078460603678961551581072898319837540997961596036586946583995707747637949697606175534201941722788619981137156276048331002775793588066148230641610910948340008237903198418345376797442655217693704191326434037910072083792463944080164794487800220087550181022246389947695085049494720214748308538746418337310661657159454362646919918877612266686458994511495092990468529069314238993003564694060066431460582270082735052641710561874767334057613575583682368631855856475767595920819523865335529011599878259988122596402892936631362301448577382785871145930896002393489476694164047677557590946715371059338675389312218962585314032683893673654020325595237846387431032777758494469742268973918559486008020227513809582255193684349967959033867178607559021682947208095958163729488202699622723830722446969492546302331174537406844098721333492369468131354285630028814010590176567003370442840964799512821488881144996308684925436096433772334079361256709365795902744641653003200361068971120849810605237954976853466772911220227814900881058987642023589918903614634955391894564466583535777366335140059085834224889986101717009910200966769549311698571088191902435803995840294316399097129652819273085479402931746939863231332390414304024432684662343737511979319230424421427505217865354962399804297719342451191203593063215747929257036650146579450931880835327704113635849700074300435688363933982741599726263012278815460830948093069818374321762349767628563684489258626863464354611733947711461779881470246752740766365125260854711496839570985517968840019297856192709883987923176151933854774339423400197119452535787802040229679708073780528621114784838099369884087399476366836012934121189521149300095487091406971996569402298888404166769965035508590562711394869397542024629257058544374101109892794693476129967102747143249603024545469324460862817674693652739652554692895438568192071695862652758154845646922489044195461423590969511065860396162519471525649118185830838365560751904872955063092748795556908098767766460009026398334096724877192509025313153026686267483502631744393253832054059911915755045151342108441707615976616329767641440854564217672378792015043468547910107971015583996804225192219762106226711916754076653348073991962549761866566000373907351269616438064924478248099833742176587523895847992734757432308859115240779941480984300958889869255370920551119853632135005089732188133392970485077169168457267091038762071085819489431389938213526509830015291156118315812762427413867285332543758088258354879874475925660180361760824023585187840385335191616994808804595430658407179258802063893990722015196540742693131017923145179999685141618432765465228571231228518704510499476065214389608355475561404231504511722525132272114279909376162075560870905497498904090316914450721664443290540204149224670424621565953351445200089717216232815511385834741681234946736990303556265343108735524103480207565697846766276179222307272890490289712190023717661303877539726140624288811230733554074694636903343379731393135675279658676992029834283261644028603847754866507156857883825714031100237042593253509912769076946710619296996174866361867047299602565386302504575421220035061474188806798567936913786540415601062901101916253249763672437191157727954308324961393442316787195526044133260382178026254777271870374215518969136453984967908956429365841072548995665039609017965437672184159558539670893256291040903649998475383302047302644505937568934464114211427903773407037509807802527360355114915444508728986845071998421142646836109748202004749191487855174487925403534088536906898300026994007747541070083327912147511734975557198204018288234103776619989201900355884989778468086304261634383204235516374791329828848870713119770265212283485274397104884990938769488248463424908639440802836283105282749445878540938214548059829534716330924913276939565783163983466503545090524169252349118803246148624083494720359869929791307316300660827998814163245878590651094645508198065479673022665961916245376847891567566268055242487613273783279374933767095837310948063065885893038476285392271929244933038929665320075009648285810190051231928563219375810259137757344955126600087385503037029048032524352686531450918971357973078772773435990254063474793032539142669831863506463501941105955922238663292380819461085066511335457299349191273135626680062170648183990799957474818507660572858370076631793528597092486294324475288130206705983131968779599279664279095906937336468940455381984586055737887479774668654073828312449632690909785366639508968226240048492345969808682835058568582117575513086859474390355185237164107120705184582820162430450240715505328538938716955868481528810937495603229494704306135735922089727750886308735714520849358095924621595855250953161920106351575153426758608825017928229202924453262713408664095806438637528061664797430723325806267113688984242939447355186303960566314088651218283158209189873901040853944973359183566016077055359492059159693415663412984150695849791352970659460844547339016790258417039447219494759098212521193690365183090235006565357568621650429937391288379341363019697853423204074772023681624507044307005236295516510598365526457279266631320643404527590984289900163751156287354425658998553132024109639889654349799587060860033797201221096734955477628762121989646147764607174866245291787256885771004728359989413804117628690593726226694575978042166912040029381154134529902489198002522802312616264282224210252797959164513959774664575924399094696010362844725714306515797873717557351096607154699945620112828618405524804099348868450423024471327691771668901581331781414378231347700444317602996773952563848888251143680941732364051764040513092556577714787260461472517707694005589858622645587039638614629879036361698565837465582380030749450958939657213572816609746927378348584555878746109715094904748276758909584136540876172871240452127822796039361766055485206022290619360684416045885782211551337072411720058569955232081562510810558183471363812417027107916945011595266236218605482697989367165000413757328608767485532295377415368475090092163271126357405283192959396929669002495478710100143327327108965629298831679256089151474570246640020364701970518145418944145667971061576449568502736617577509863641698962583276557685808264665793412165459515158074565843618353325432723052413420724091738468920900675765200077510115816667203445119716470675783639423364826310698122722722401935846888593191118077003352280241093553966916944212785274002589137562007259825879408706109480041849668697155093652890158702384882814720177074721825238523365485874440962870517949552492132934109787997510737939662950223784352335535800739602219531317006639354662906941963223075332234111115572608694673638901699872532509159373869548091839549928296653782723646422782179664924931660965372809399934618985869533514102228475750111396259252548183122303174633585707238303446439413345796230883214812475578391170590282436701198852092427011486561175381739941702206718223471175817186989826314414600000104234281144647483552494023174872200853150638685756109852325010362550199845593844506071632927331118900760036353353842026448963913248227422768555967702143296099290613008092851015220818699370991791753836669272834537301199874676608830410101875066490014170039374504609188553843723740796153974532601661700159310921471523050321106605853889563828154374778794718282563970976479871110657027472452514384560662594916810850069608985885557369814328542432993012752780446745612464313425538383690936301648978967254695857648525594207051138576039495986058200597071975236601154387906239214428002678943745570473279318891487401400967718230651075439214828985180327476949972863537563239681927691848285763580471378229583164030252061077541032961834998034849538447694315831640162455163318957771836746878444195017484778738929335818059718128593234373438876456739212167668134800285121938629519904489985994431525162874158193730952158491706150752549477739302489630037165052382288063375629595129266020602754632820917065642883613969218638905984354066109639029193439442277280476822029793035594208395440570400089817699820117496126293062102224697516721750185207932929767495681318348605303557007293792923259205508859542317503969147150991231136422789714650655429817540448862024378601667268229170114274910869945313895340115792176843117189586210138568721608223398030150912638709491891892729426589749372397373318060264882799121833499890137646552056126001963021873498387971835103893300572765752722190734941938674456319065009289180932959295031937070115495984847108554127142743833544953808989464413154370025178608904517910728232649791354930135011408436940999755951818861862493733237537568306618527869539247966649883167527246901204377462626254096728618166688410503829932349546696231348142943310043434135837723978182647127628845151889800185721129144500319907399209915844461782448567180353073062538885349197600649130401316077744397519639876480675564657556798566625363840286495952445796666452780380258713009306974976547404124139040766863637726377227243117979689711710595417796988902412888863917874356110276100788141836126060678591418937037791445148987571712585075738195498094413705501996752125024682304246555785522064479555002511719642200086240628560676905319219793286285555541726197856675852368092034497501259315487985626298048909044073077033293808517126443388392342815411539694747431477494204405910956349705364892173615529697656738807982092109677149719266104968264299515160708387728465861760302635579808879576861650141816289697869109292448476676041918042884160912237276791749955269670702662656882811402626273109118515256145347198987384545448337651387700550502749597352806540763439976799638598292313623111657582724940804085872232962245100716240977619546565410764975758066606654672917486069342439993578531676124677002705384692508132896320925857387854230401954002799405803655651683236933923577078569964257022429251518701923582276170859319759881424683021262440768906770150469134329827807755800746293794682202658755096571747426990830135916691316233214439110733027711771217354564136402863623070032411796183554106898393607733984608049435058447089279450692835652313645749401688368700532495763494017279991498037602158482285101547458266328590657125073156442540977174505208835503915716062589475780900418109899563172776465338250592202436352998512540024622096908152633380513569258407594173587130687185380710859994995238107730243234272431840094766429776028494583557641501489888203755005319119361112963831150090757572227474011924556849235978415708266326654727325036537598325982855979254670315500035665229651934361095998948649466040719983072498741197366522636739850610227486687049345021600649207320687896659142855032599088602178145044927682687474866797519275443341064735895662741353779805861268838959811986695602990318234704260602150869909654894497115109337039114158108074863212784857008307146168102719976740864659282442300536632426764147984589774215187742075963423485747830684859762271879997622462522185362404274938596984014446415475485537921993660791632173459446301960538495578961249478935600792651184305467102701004613249901691527166652394721199601782198621229994766831600394080451523231273236472987890712309594895997421315433696000748138975506662755578186280723697745682393229716447382631046788313118038946095783646497600497810271562526066927627664341810241208900588833369323172368653769495794565679053283853348790877654683507430981935893463712146354073680353393893126201577183674972357747805141456853102935721181877036687166947059391198015895635603311757780073697060892427658682199075040701871025829915993276366370043682329864541926661736708929013720343147083293188790868826029799654725436977955378927400163031099245215791016961720262976655108160189433595356326164180872906455084579140512334231714423440867767431983161861124810316023596950489058061985490203809673121621634645926531221937540872542109678449915574053163875543626524596889132407062020074383296691567430748256555637186759943088715297993028860447651585226360363872514697542260740548003051787852421754738870281694336906017891930292466686097968308097475369416804083125624330137096233155639099434521692503462255089448656871696751879327388403267014546546140543080419032983724120297569012573971887259915314761462055742615655928385495346008742426558699366553701314157309472308664356291622714748176754748418427414645193658438565619209345126499793386060282871761817726539504399477081539003185065444543371914098508432743214589295083184436003493691315644711135932668696404125973588349275565432735521971055169116436514510982650447163904175062545715666313891123916523482762966910481706942794522336428637560486259395421584861207905994009634140574126909354550938109401969319221372624306743322956343421399464197766576656070369447903086499318555211088325896521839878749008774045373657430710158102675746826230070605605099588695394061958055591046942785478958177131671535387044819912549007397619533225613858119155051110530731977374764198248152056495522251434968819174027527079563671839303420408455403176213096346855737143079133469893916593329122302490857481849342417194851913403955836450916972819776813609945072928970562150592732019573716222055588505757641689943476675420725324095746781838511912863345170904953231814624075968759008116558020404380590669269235916474807811895052513587944945159758387935779328673410521634880962802688846018265101283807485654998363540775927465207531136942992635066882498925697915057298590147321695831897625327783601346464698782113581159621082293429442616129427015989196949842488258350725887282091232010471458556379424893879087114053692850600724337114556971863881167863350401514817707444219921609617617990540438796119213683677703644127540100737264068312941920077304431745579406473081519845996632105163209274908163635502306520681565561180862710752924642209961056930878672865507754264366772707536688073254371670566358812554908221338550386580089707389528573443392924012790757485080296707434278494164524660520298494944250741734548373427730642892197793927436215281228197828329287154631994207098272107634500501388414802132114079539550089304974581445774042037512611768691422963031398462403947454324565018767375254068545192966960063527799730309704986193086421265551638175437169713717091666262252461189725388115603185302645728043318226631451845820454522664429764212109605949729089057711527383971902278157919509300114820800891136336501726818332851104325267977732586261004955486773275646155128060520596116914856421357823262729346029240700277192081054196715858181540753638142872573080825269471929090828542964508463457142715663006707710068360656715424351110540052053796665476576661718242566302016118949389087799078550389001508493327716603090590295465296571297202452782269226917944962899774426816633468037360304143046786202307687570531952596199322099588526909198701672940387214969800054162495949038789192795263994101270272947881491118062870117496772562139591173519957773061151418818965624284082447753705294582052599870846916432112364267347613048518176256272698863743308697905705426634252465194904491430693337946864961438977404760865060705297193015291915314987948442024253622572348500249769623027094848899851861651925273531940213519687203046242804924323005309568022808194868689326561641516056057149462513236018190637035638290413982387037036693816612878240553537484713422668451934706745488667858941978061196550070644486000249348248236750975072289011645519488170981054829655720222556895614233461493658724465460848465639439068281734035375194798606003009474735986915834950855686143907971905394716910851522666274324536484452045593293366712475808784869668408729659620289792799973964445685239170557674044456936748393894079520181767509185844267377220517793752775579347761802029357414144092555270542716681234408296755614412871127187625838656175127611530003684678138389658645244416184226712923520115517735177679686601699858320442756820206765181975927210769979612456446510036508352892846589537464817428594283615154582735957891022324661942755498871681619195572118707928874361610943469383637479157404162281012496751269755405833625279089154914980044796463818206282320926876219000279250867681001697489731353437116193315791905651592942515296259779661736259102963786471882131991033938115121691335609372253797683186150693719357795736788310993394620390860225113724562574948721148636396058998100023113306571127150252629110612058747322403958331452524247802881928705438756922430930319183057314730057354638656695483156272149655638008317616293262700019519612086479809565349954046865651474374266019485483420853825750541133399231852188482260431676250803864849858896153904300220447381946651482997516780633995416521539032612385756865085952399165092875870329441807780138500259849299062680312271306071662542033985650913384859791221746020905212412368745853944432159282212323075903077154026314016345147263613191518917522666262840982567775479385844090682490015000925667883835265777890749601291375957829712142728678652004355491535458459655897941244989743272972893599206296889108711522151717644922390536817110233463307597545445805722281601200319568915674789282422124531803654415331681951982104879013895159114187762421522957125418594329600761803118675144089991942017585256321957055742785728543407458718733466655614499571090847712782733996322046801035164553981005354571160907623784921417485614525661857692530535877632451238182606577008174705166326717436504951827858577008399338871055508564653251277344102765954183882666127458804630479914313501577777616601301915745311178070391356864304291890477102600848568721162088292508374061040053011533111970039751214428533796030733450953327764261863987717797995545880606063646324889259842077736722465191179558763163231565538423880968183122142452804671467382321792526841124111283269868364434286332146043238151975608687244518285294450029899893132070834546523920410777528881559399629796180761742287672084606199966126668874005000478707086856940076718097007505318275897054250720628202444107090691945360020052321174005343638399153739959569003654963737053682195683198549866008278488745091680626807024629801674361261485812310635663636117670437701859343093804762740624204339716636751357065981839792648562830932219940612672396181862508247329923948800359477052880597422806772856107590888654873556369911224416329965468409813439333632230580047455574000358089031286519398708933121643996226239776801877258496593942464463919219263394106313984835998077219121575933278823909743917892828441059859925831312668502061569035236205641869798850438593627063669386589339236908429716470409878556070242075696189462908871563269387416478555936831413654317144446661562571709621342274401433354277755491623338681508198690745830584408500787390849585421381584875386490125103781787467340852025214514392747471705331027477053855263700290638406880290320897811306531353970799984236192957201296360402732096354940946627354627750624872502916163317424226935031741282233469498842049474907263065097654345578922439666997530551897746931339712075019180277457761016770702108710048556742167882356069642985264382037633652358787743312066232010787240218658062223497158827867862655202884268056638618254768393241080196786083476200996497671088772904976931680034308766758261453761976602268308864174415159998208157566477969287470781843292139674031767929009317455982041198354872397157013470928760413385005784374209846233749463141356576939616345239924776436735574544241351577159850859469419717850065448754559246963446201530734342403799988092906973143005100660174851778042106681151322094665615677609398197490113618835754734522913348251851196109629227228939756498131776233991011114004986319173095515680535338028839957852017937718624698552949589028782189792602342046323508814709741229959147464947351432995240875372424202237635559818092728013451306319910678706403726673842799806078317920658583443747315956426072673112488446633578382194038673447598432416442814034985209353969930431765445753113377393668814106739272211816050722573340090914348662370415691420956114702985169865069179319532378894221522585586768104008785765397358991258780903447069826318765664810290876339026081798488605413610806201171895401646288911216742017315344061054399684366127731023038150651177668421511743898970531654979877764502224257568003950416862466018533207493186085093104955104663764711559797196591114953919462817538926103708087363658261215212462986145166477852703690092131003420598502281990991719129398603264541798424993671357235806891140996118172720500671701625228548269771675425612902950991680647523433420364998651416944301425517815064615805034383462634084746621035638063708895792682042649521980855024703355328582559165117403258489639674456160788474931312942475790234977578244261920755347375027830243112698697462624848963006810624601894478330964453990338155825925976521871421173072111141879649244226556651371372462585478711734524713869619416565340693572171582322718902030077091862920807586676213749752798088235166959797673588288708655290007284779046895259589837280917174195061091394112467169695074646889913368860040087088293283926210114817696404523776085667276591112218788279740167362324377585836392037559521654373508111199534948298159799369815727212835554653031849127431172125821853055616297981419090735033216097357480519405789686757610489352030678668145618131069550410391709393172206501199016247332942473123455415980719873523982135614690954284296636451507806987086596660351304282875494441001394034217258868979125500050226292101033020802205343076932064858016039307705899234019946655076851762920705847102396318534709137802731547931556264376064780665487429165316592244812945133839934595675156038876457422712044310655617749155628319139082538815031075336131226532123535038361053287125734918761015463646030657421266577357989013955569630258953960946262534307190669381998440988617375844180872042782526548347764854533513253994580595432746473661791888699769322101796190591961924612912256347224177996855068328246486149418323171326629577771331605945126498828835503165250485577836795670144109231613928986322018160326770072222334032405681420616493363938367549020176968412979168551574843158790538530869775927380753865750606654100645786589843934157915720589648506170013012105445378401623809522350304252724549932249758599866185729700863312798608989673592548533188039097530841356731133648286486362899188374945017688825749445947169398977294041663589240618989658042583193523248082874646521907097470188390287422463346760347676118487592286699470060601905412562863361433487366077211801525949959449840152633175022700539243736941133910650122723552829542243854197441985985939513501860167058589693812084724756839705688501551802395076278090043309414874811294319237211579663900253122145345519245939569111578159876627744093293587721430883366595913579054143389982820600434248739382031970531274561534702232912002525210820534825724412352437474220030451107677601119147024388388721442267773778913531733019421994098278661087693633016585921364145221897511278349608911134082179033340823083440455229243219217099192730301689701134764050526217117006298539833658067497677881784252943522717755455845883443069565538761952123257202756814893933356654053537760595789409398512690874611387106957270626951856376914632157988252524107584540861073024621030499107079894040204209715379648282443775683828098164975184987333934958460854940786701314692201698852483977635943919552370025511810537188691581613377345604138675181815744347975381885737714194499279790855225590113330143532357736311458624291812085102411731916441140671704730850151975971984760617172395681527890802192962565436924885264364078948720515598739073792943772930580937046149583286275346438143250276470105602958924973318463898066660812130897109287874784198307993529193300361651271285744885579520479601834067272622948882612277196331035919168911694088475545166316729824853009344585255253217467039931093985120321676707946945644425394761882574125871387284813222145264532522807726261793930878398358329151445417964233222031921546746362135351538302033437001248564076587251782561792662551085555309921170513349622351932129429660824702164573134733176769936812509020411881310859520353075517378199137937450605562785454212472775456448046607623249097794160205074702682948588425909879547492191093472519902749421278479642593108659960141823755207756355908140474970926690897070787273317452364199587660895133415037765029398937379883632819514397735766730938257236882172575992772749489425067737462686459477672396248659294507472366311269784986656450452254602320897072655331782160731921616575169714566391270241179369870700006837111262519986897028104789308745801379213671287092892365367683594073436831131149612965325324798552141449667716249349867697880392467992099162608906940813403704586168901548630418497541284305905520895970811733248671520612442828067810477647704417922143134602542013568551118009067188701853424593659416476490834176407486603651667773420231576473888355712803441468316680326183928620217485135010564053721337858352489545787993285825280138669055897139837673514511590438927323607157325302481219493582392196779681463614071438896066383461759726331372508424761063655330698683293265570443358071103780925321479347032046669731986843841838983034027089830777732190138345142746805737372755500116225306721925927397651605463576862798461362324834549190115852092109215809452741850013703575480540719241616609479964864762316334827922476742457195259400124698444016754401929676112003254554602020504147206341943021214156913940452270937520655628193393689680795162029597766609679700864417549779531124954928981218516282744456102452231184904160724497847679163866166096427414974453794073174010039976291878555768261442569070224979500996734305761182224505781299340674966308591594138344997532159484825221383947558924322272049121587394254275679388751732619235953639567357782962213717686499595985410920833014569463623084457487447969734678614073903023292986017021494223362020473436183332894993948987855567344643690358507286361623966015359651505411142839067802666177519383833320188430341425911754814355043105719125023533420280701465984425266056538951172320024242484147935824448479051934118158342899868985060220994311329641681999868124307730043320925270991707559234924979236553748089444380954971495586729774391937699026307188223866037395899380612057420705163547427357632535029779313283287108412732164108746759278701762733401329682641804789886655157997407682858560712455989182568654825293461972223826334750897169257621702031057639535225078171259843503240901242257003875237677599997444056202820597233178714215010242065221646455688558554875634893209287394768315100164580160846185502138604755384216059654532506900746615095073353300567053865017164471304901023026808408561565319578361491245116585606188098947882677041040792011633690083682858950250067356125912469441125736615808975858590270074863500004740891752229589261089287566474907108295125251479737354918985551966555232271181207457544374401013220191639093129772657943246250163809038553540827820028306653909606705246430655711401601755482360564496239798003977385217370831251344233113516352400615600221338775961638631898998924023635132319608716385951812518771931803015387961245170529065482279389085865457539179949870258174629515927681411163123083051060262155019557114871281393441223332694735703537278014583319600975882872322227862409459745439153963135845362597704098532950494568656414000340294904563899267214222643616517511126528173459430328873289476161879853728670243638869491218223913101461040099957435519934097287529309705332656622951885803539601827349846234494403689415290045210588305495627283528194067286186312390748441196804857733825142959346204681969988254453654016907803828110241586427619991345309385834147147336064013581857971355321964072616850819500821172946405320030926441301976323328625605035422025091716979579589823583184895374283754940262102578809537124853488316462186531214664245076045996740070691205006657680461254098338659679309507774047989360475397718392830807761038594920804241890277085658936886050369732515806349880518820760277933463009345913746424101980335964220140716519989566451370146780765489044825243528471831808435633404284890481066598153769351959703230070937947334091756596907127911086194845744327963651143123854559027645595966511562752761713372759669330446352581313652306298645209282827455465601887503379299221356958290827870976668503669694213198366829859667648470750704469557200118294546653551799700363435352656268947140044822995840619303168073562266112275639037862666969968251555008549181298516592098233133824236691864026237900656910554057049450025805678590634377070000426438685440840849776257003627099014392344465184782469266677300953020852625348932128456474629389995772347623691323012316402820491463019311513332900309751385686854695541075258762186426039751223424091079685150578836343688723817907473352347469154840780028916912708469680706630564689156049742046630908186925348411506445445867593594820218682142502714428067237896423072059370775494472854797558032954958333365376341405373566455764499417965407667746522722340864907558964668668595460927345685353527742736452021818246732216599158812803338792373115519464101816832152232301048474923672943013934407402305077181590656176954343612841845770645568343501602045863569658768225868830578518626777994908534085066018870920253894921736924311263184222442198653433360102269950778380603184005480690285150910904145218733346338173496483012231193424434285731602734990271737706485310710219292548572433759244847515729119856777898572558788436235128588064317477011267174455352964563650825502246464182176732763118830387644266786037696224468749778871066602191112429701276171156561173059109123217617124669141953498464295490477616653144757548453368139440475969034161427637767939545466171057765617558233064039845159702948827215200065805496050746616247899095322935653625663815977067327425881874781806692917599713831279357158248278244261173985025465807255896961819638184692106739097716984112860088030365773500654001710364786156375931429010551494444684757761903363629262184425456650821057891693595467461767795182447108153073644804844431134493262543930853779332805199313684947984865247508633571585634321465318085796334786282406966293644581751421271574676989204895664515191241228023612195714691739318316360689741948325561069179923558413862218373015607924586454574093904366591559842952488987014426851758024775598168806166937191369642865942792291396905985661335401284063968468487207568197322218158340402183526165533861200132928569985649810776692748777475737503408588507871043780719922886744476604158133356441408377392575115637431923819482905146297198095335679992652631409202432412952441731479402991542956100439062656336909133007570263698107867501735742801924305614655972745742550012032618902691088540151564417205290773029793336557298179348965891069212389195198896455663503791515148079215293356915790834839962625388048898251288763090399041724391954993053780106889857740745013914291099560615059154702360262000105074561485483007537493339176513354357126547082891964898134611164310597967226656586057123108744804589860449192710405474837710445987779851092956324815914829497858830083001862859597735317149976438299037492185833322690020958596347115816972982677426226991502983142844969983134323343201809143982075714034942727281687112164704854123366197078547816463270674301387147377326451390126161395556735284618268604252706196561034520174192815063944295704787608961371253739773255145955032872888181213048942526537307020320597815898345867705229719105653072649061797963527664399162282779508953157403138221621345090663561681687508087171100891498070194847770215631951958457132355154537697063263480621093949818841537495568592151531398877089432673274921213460731120035140217025779192803174426849702262163695178360561506979381833302626617082712638824371560335881085989817040816812306046125714567242316992717010026500650194662199128168161811017672170279460726273079729382190073466895746415176853179995816756990544495759761220548437238732433754855511669472005520678005339810234926261929479537902700474127874869193532674187531799650053144232170431098285255891864441304234266751837082948104786946981552776852218183941048925744601313485661628267703553676166975714484643811661294336662253390086240197466965406300277245002027212939712362465360883118214682251698816520362846141545955299056842614506123442379190532661088518171993282949762719932636255504279836474292744389934499483090084572723329450453449058069208720718450963020274037822382669462464594981367502301221635666826922629151870047116964555634103784787370468400223591168386843651811963176637055859263878939259244161883548981063953263362089778411340699848760651646390735562277719041336887133947062174379653082219016619314986626315239767782604517525677387290586609390246121291647983801769699571702659547616522449526621793883619829546530937439711517321238791724793427320923305228562144673873048064213315355684330074811385442670082992438917825026914050478560256167695838936134740909086075691661376242528080822231105910146760564577979647561784198943942042211676613596577257103192235733555776494593160231116593842185018261280691779504838162590821609192230542258482030007649861155256626684951694563955764282263261102067788240966186250823585294542383475877491087360087483776185727200204161267093493848057384021703242232237196359591703617759932503914764795491258755827503971107677274812324967583972118112039664083108504145012951209768235086933553230081779304705425383960074277614398477659771933789279658107942452755677387834766308176669373028850367498952329797105112967674566607563223567579995158502230128564827975332817158176062099796443582220444284220047888805283014580897510457078580412107642208292144550105949357129204514233313168171112837012866540289582025312786649578387749998641009041554634891901492290492718853448089449439548182334537685247197943444335189629910152851473054911500287271916343747760879902296487662008204239937596457739588208604782599748816921773945585631064816564612040198566870253662860383858757872121174279975115143783570872026755546720810982441694544364153312101367925417778492418110844528242647951315013165856450568385280003527337640461677304728251780318177103584300050703701567156208563948702017277624091557932697477679924501978397633408328184211473600860331284715684692169547196776514652476114672236213425810614010026201867787098528195315458061689476681719140758550920481875608472900275131568650900705104596013291349899580080688899739302425382416810943527937282518936099592578454073494010125899572329928353619076432368566223784833343586450905843614638280815471963659847294578967994355448098271544883589288489777599237577263542125426057307159794563099346370989332659458531571407829267747084212594881622567802610724196403986613300971981797954741382017177376085400163115954076942634572470432181071852735490659923555975542327523708548809665607560302750229650193311930796001214340792148139808967649039719453599872098846688357636009334986048190132858084879468294357818346346181263472733595944893917845042614088482353363912925067566347189057843525184659860860498081171895081534625109837539514594443036844051745837767285059780783779334132577940797033593560871192252306494987456035609491401805949281035080039556541626281989906709336097619215781127357142425860353419440150664320784983776658001781181270083330562668985247985024684352619252091066675445600149166130072497087442905315172384817731075654499872546708905759709367669566661914705380647381706633443654145645775766387288608954622294406254393644853365160134736422369749702382863969990412146776793770332900889977665876788409691580585031583251687567961601286418778808138400896540929759279600603638774547609727777211163753300448873835500020435924929553387198016367686005382503074833072153139565535737401954577783451264269653020767657284373909312614431860339866966928582981373677858023997657957220649457485166045094674425479253083098624532696008722768954670757238332655322302843842900641222694695607532924033726721026134561616845511714362129078064447051280970674227292007729650247665468948052815039577507809424217846307631491679520175106544279932080671466589487005821983188866780425085118635991747278855358928419175303713700675760412227911689585563320661700950149372566151122440096302190827519765252484993287949484033162890167544137696154239603119010798670186997517544812587819740878319245040010058698339407627501300621893670943547009321224873456979612759015770900995546493720252456814583855941126613252270195069953430952255745490516431613827157683103184876764516751568973146248322273192073269550112223182008227224021258510217291431205868626107570563886896937708540792787172096691427035190067922402520672604098920210090260018352465785203308578204070753098992632773320917610286638189753424492326479774698631965529622491521511869248011976664920695224861953151068537829299293984312931606952730280121466299897457484453584682825009394590745349052625297850674421209330213632237259740990171503763077923877862976992862036687049393286761337648122124151943504575556868108805672686881143429920236069518204806506269611760181193490462981461496006843917503286771493948701003409384756775321645023663965906319527351242353454573397951121488649453960205899773449392311722450060794197919744543581742699332298472468239915962185167040628504084783739415995600810587005360904300624038959112243205676568870155985925845146377161659812042436169232994770323752390074211380733770923044427535034725883497267440257182103219253518673319888043528854345247956331542553003300481488394242988076272880116712878697686891265488440032981990584462352996795241856445588194257780709846639076762464710504406371027210002640754677336632596389442172037006530844288325910764235199711270036216614113689304146509938901335733796100991515850969512897853100418158015716940112291804157456693695995105605563434562345670680718800852075290557923169892952239217646147830406037796704773308619472386639910968441715574743338283891078521915742024732783474033851393128764508360791973255789124763660636823969313051025069421249964995831771653848240448767928516447866821955684168411729720831243529815170425440738891403083369243968646329464264920204887417983483324925142685665166398461994089596953522207791867041369950686235156646096963009337641729177823807482841786395983706194027461174863930137201811099546481094443788063291055073274615109675126688829049770178340031780463196141440729421040554076978168315933148430589470306412604234580760387931804941980809699594804089240031889754754189024915540641418332195027626001334845375196921132439906516082211631454897528249743767855292303694775252053919999572590150285310451162117621865134248570776180885339687134242373613504294276342404811333511013644489543740505581122396583666824111817341858741837872110805535267025927339087619519597945548241147439117525659710463337974308420984162848016803961433293218048395641749151517862205319851675779898659547168366123971533926812650305343165244913603559435880161113067543770110707978816021124537043180961640989045323210624365787235352316543709598200912763561206930830206011362437481632223238602655641723072769347383858175324142038919200783053872466518414455020842669027795809071549606614719884986295820299754434871035213714262241100799181051321023202258257712326853482489164025557359151291150634302445326282622639682845075264369694483191261821714001002758533902214582921402033335090938581480844184084079734189734636564087370081432430968394317894552306791868374509428883538972584525587125892460391698824625005951776625500607135627006467118266216247751993046391891695088583074701406763147203396835185780971447008849852998025270220967686690533899377257285715118489091645709151947991471135675144349692620719822354543945824564339320529701235465610398548278877270023283984051424302736834082349461711007273155944214467838821024188817789733297110409610953810875313990747846888444452498235856147350102247213455707191204363292223688668165932752644224841505935250013342149752830436518607769653296772451452169413726742664941483942430586819984401583646441159100443560248744837286149074182376182815096197187604202807658101739296250969374923815793880610838070284931984464345619446920574925549695850659779307120088824251352353110825037008757470551400649406318291896736477703878336546820939340153495119002197369703769604798214899181947708320009219280866147683252236327035841718675167875093356935782811018811236873591068959604612692758689702004016738567705403224552581320800795047370355517090788665223833458227026555335316375322281335082449293086296449312541539452753247331377688958014205148853588879397170727646876061515663873226122473063805294792528838490315039458315916901800794119173401597197440165835875382388318724562063961018567448148575336379998913769908043973151530560595283792353854637758247868830948414729502938127121117369571222754695370479026592846791320680297731476200387871063914253105266697978504745610161351621330278714732985604388352854708433741363738016071182137455564499171084129727845013062399804816576551593592266702359723683815673311908724741502662871184704264911268246039437037141366081465295393871402187698037479604488418632974430458863613546026554213366491880574064644941135363701109218867890914047313655911930561075159764035536941289082439996661238464521607719567404171018028123670628413534975245978123215189900734106313959221206669818900188813077604994466577586093946012122282627158265379326749067346702188197584442569335871108879753939531954698253696021369544529471113931338762654893119108098311846551956391947149062960917563224347017085028328201004791257969583738350948575918463810866333489265044119746822131292063191935385262541646433793176790841595371676845704157271725045945313699954698183706884786419346283955064630579903506938138761505028625170927949965980886411933766928624704141646483566985093024515132586330840750836666749237097755279605807959926792672533068276816376691321240849069056663235879359142542252040621079052664275317154249383333031273630246430411468957399914739824142828631452298326745111730826796986183788485101255021522578009988694171476705518314153799137513196028771173607414433338253220900022936757219993372856983078234551110332484818944178604654376558257993089488869728593292819454756836399184049643597899434721789432033805041677844685410387426457172153294492725222562553507686882383667757526333607416131784213867496882384277424121399810845771744604026044742032698412227332520922139892522968408881403258697156385018551851385935583474977637297081731996157784095579513056325098418220473561146987926136530433261081497926221818835796325888993053587324414237037676077899363903265998508192524468971961530168701781210868149216894000516934891372628530879484186995523763186062054197852057651422752225425717108737963635830171216111028977815643348934272336798844468111305112727926719911746890880596151166384873994942921930959133637873872695008465470739489725590966513923355169136324471523955423095050060466722995080018838484301022620481101616979626379567906513348223578153902613511434089078070459680307496838344355192954691662063196449990545539668300019196332112962331922991082058617349068040115871698994664270517774825320678660132775050674188399678674296273650000335203357891105496961665094233736418065278086221889028411542975504586986204196514931949347462198950422229440725710917248395402751789802733836579087322161866040288814505329421318029459195193601440986101817617666509684261626841263105509896731822319693095869435878054895223366694419182394645484100198806170155322636133701333806935118404039486533046859625995830268658965074997518045135546759143789170949573368324823903813286499848031627500043551349738762939443815727884984091898222575475108512875941266413188870122751528068518179092196655485292519723267373999186183870099989936273396189257021093795201138471470600482551080726697249980393257208060972058059633667084757266588934864381398316839295888544682234144101032354323649874122407453630187069654235564929563006221849326054318001778395567475666148994759496335412289276358287803279252647102717445880142777203723212052929083684324423110378918848194254521073928090058440668037151917514553061720879892466231404803580002258363943723068910675689080021729743199030868647799848787481141154223906042063964873483455742727555539366217681031003948404431133254619050960051343280340422985877288354457846732356209102333464296003856445603565270391517821030462729740963169693503462001087659352656086334614307923859862696872773532019199226897790177605960102063310263625840448388214144889781657108060663725087233806668266910437000613916096832359572320652965706743074365257310052203922046921514460469789403729338039585040069558777663840524296282395859753671941364523124745823346895648855230046642502215415022471028523171240223197559006481558198162537234582477054505092333584555167368920309998005164924125879024796605749184167949168480492354201772573595175006804132086271724769386124428613102729459499912237704435064957313701975662394225211788760725904715365753120912732224408783788736081506506781953379271871362198741697291024187297238598273393709700826833419762910007735586980261226223198866120033258677469448800132260299671755279534616539193709355574790159520426116188730578828596307994453865773490632416354268535305221621284843879059523008889238150404919083246768040852066418115402380967173261226612903494612709031510886152683213041971976286870894751023724605130079241313859376109888944826166369356504897517659262938808752280446207671695506057935646063484533284269850117049756698979457360907628656792970868071708191741229169284903737580679517693202601265781745868443453144031956434056030061229978374476741575475670317077267787968122282572661629072085781794119635251122288169099328044312372941106733314587921014787170772643600037868397806488007697038480234330178856221458145695775713258985674028398070715596127802496503822002448809726040977645498037926169944838677976921516206196053464696378155804315577110227355538899871758739453716392173340206682722381857816422595663731622221819950215754339475456413210891887111689920466458846816226089394993531083903214971498924681525979827882840304982390094243977737205586891872626005266554105068319686665230061878520777505241868652116070081618077086404224943259950283112990990696318322501707956814864012547057871159290043652681761968229832759786614184562097605030131878784094178277661946385823523111440176391049526848006462547482035924233060126529415869827395034402333962751604199620953414325661790103832952070702065389168092154926458867371865804570090302994946156101253188194597838923656752078794818640945683713211706599317746205744182066200491870393505114052255197502387492375864773024431592417480023681056811485016788842419703340808821355147463012077250053048048566861404385550148139415473624302991944962242426600861061923531929825473116225541990433849942233040124970597659868494750256478649026099085397992196808793468750711373090085756810241105933128281146653347851632124184200024537105605146022776556052793274326176740087559358191934772419482110568717075784141006398746886996165024896194978817515018122754444334527588115071122734921618524284130102143878941696751810350275681472894006262618364883911479336988740479676772153078369185906353613132696227717728627676547217009345672598419302383413791633748147879400749428383609793106316712153595205604312416663505688205847839679528783165030789757474008305877786430723201404091788234886818029070668131288163237448160318097814748573869744072838027388982243248806545387270449774787965894115917742501716080099010481695929519843798637736176935850331386690261837737634320506361653118852892653417209874350851095596580279561134118863006425348245447083387162024723862966308662794472247303746278890894402743327176224001549455942092319703273257041911943913473538405927421361483134056674739556405217298416182080758320808444212482945909386606011663195600576733540592144497437471938017236799461801170265475253160689600764959031812906150916340706811127832584180642180893709755218194938030098352214606469542949359171446258370692053991018924390561854166651346538179524373939465429551414506735895265318250129334141693720135571192949344736327879990334958716562761992713666466629884421682005188445854518484262416930867102065991631981244188231337344408072914809406305000190123833763608301236895451525547548286654475120999686939964155937879229818349918289159971440785478105260633448957319113723229781285848805253091487171424011717977779711137926018986432926006540080070380825291630265234862073560721559892109338084545505906436702158223463847347725601052167216580314229054394001641705320714224112032840804203548057134857418362796097717166898983731801589629003529115282479542629342854028411904233232086875651295946633620927855875581129173794130579566301478887204567982585143673418833533094856362543727763602135616302634696493800059095580359541367543018464368828616541280150850732830655531833924159512491037012967795569704880318122785421700731223317228613059955432687814177517275521837755257207688979981583623774142289423309705423531841596502582352472114079581575157248122658951102112930356173045707771250994969962178791986796130770696911608686104850554121372572031943407788421649740158013544675939263318648321161099079937972794478347227385075225525542892599600932308401336531479829578385793646374866053949363442464353560615050734308731605966101444183415727077735978046428827280351592149290393177866408728637263460777589926462197642899292119043980404698058382914758756565332807501211415273753086652907015750372899160159312403297576243349759552004349265240237073029624670391296922836339090760243913716838863820960545336777195555246742288282498816240097280176076044765198271799025647592343781599623813339008626168000610222658115697395233011205038657014859234591149099147096702801497206713434987984564562416341534295106679142328077046879532607569356264536052135253688979661587707367089418291316911104324471518141103190811983058211603341993774713724145759369897696844010630513822602902767258847380834371074998241190870695359542400374749809344314422139548764964106063767911964594162537728180870928308965594311595795445147671113070505460682156420680473816400773536840091866936632817526713567754551953658846489808263345335553110656394556169524824309823632576337470615378923672986686382567179475488091238189292187456558004539586117653504432179278820316875558010590950070947708791123353958075085942045767235557339055136482828559950310844307597869180493256365593521596972339022278804048856068938313164923364455981540430331903417480067057577029318750699590911289108500320998950800994484429519757196021460062570039867517058318007868625063315440822417541754492180122767112846040953455138650962350919299470692429212212186191267886230064042217837463058770745692499964473679248834069375496825923336388596268148707944288986899701527448523802608329789592433363027307002324955938117049282082526847158304276548665628091232685371966956765472608510350208266170499526052020847865212243676739456997578466307922298617955003251160784593208033438957120880526294046570583046366524133548606390874162211211885176431598794366159776950602948375747805951066315112131767035831092366010261118696836249181056434581740155437840395567462828907140017485653263447217863582629490756565233020749699872024837956443379091201226931788478941432202731627906536218168782400016044921886661779529503771892850584599831840634814167433878423057956712416200033687379751808569373850381679822203475304521544200578568527808094093242522781831258813563657142508606649637821411626358246730321013083980900547909861194080112072616569736408034724862284575818579712413110943599831226352230726629641844890094858045037149552805765995103484449934048170646762688291408428229910980416360023906360730103844797050680926737095078369098992214625451733879586781818086586313161735373088278422825752446152028217435114382749495487734319640923931021640077268918089329294762396732301355043115902329811813726020928116890614297234141125521935336668375759796476476969056834383041272657564736794138174364189892226084751038953119096238436952836130825312237680289636279566044927927353778811212676847439332328961297853539021299618859720455430950893573582049173970892032099192212878867957548467494827485638687711647406805676668348194416611075274674546075306238523910284720270476919990984782831916404006129922883243767855709763078112402820343546307257578357024620159554335338189391293695671709309331283309119600473948766319471115843604411374442400757094485282879880297087715533033654008950418658119596438158979384017236500159183705743194704752208187710859048578656923803738792311665005885758417959511672870252666465188343339788849463166339465722259671073615042027782716288618465771889836818009818828120707970858499245701223633657351324019927427376661037950493632892366999737253714086073673439797559282877354916985318942218339950893954954459511920373643802788796839306772312823700056790519990561982022504085345550928802266408249654224910418771014011952411771091615152018817838935706268828995899631131250775837182778492798100017510143898078639602569834921697101898604805830506606660559028026559061523686341739482069138205205598260533913383284462556855053232856664403187033176267690281714211713181793966491598935377740863730147531216993072691178512786669317119737623337235804476522524624181708468722682289392950733947194109710594926784343166370942932539798858603901620327400774484099228892281619100493463590216520260926187088651435986246025380900502794005226347293470497265340175091802789482413023142813484636557083163117363073157412042140513486343201937431954184011696978124621293272928185516098315285188635716978419076734081202647418013697483278500267231856406873627420976853740422703004183587105220973671393311293328553255411594063252521523946316059821875736213095528277871316410722176549206711453261102388285852546333147781218934249255545582979903684756511649392810141843760258892735973661010674558073391316453135178266634056890543989591931043062113374968836476521653323362792500969041008365264341457974072516954055142382391125441344086919952343616624566281958324148974835438709481398282770428414501240349368049174003067315300256188240986637736739573798055563248139072324744850374855342940191029710589704375750337485198805763665042018851269564361556275407458326112049133884407406916568201541348948263827433444619950596448936466004173448125557211108764707829138464262054832430353239067509438058449032416906286673474051921926352629660101600372314444627073603972199308955112864483594009584787091887390786728292017768859091447742805201613886910666650110196825614692253302207522348546362074973449482883144295829825796928560038310776030105693098316176920338634010649349525651050341097137741128631716142010901654216945024945055240666505706418104760143452516435379124589481180404560687048946683100514902438544689984306254734048130837006682374746123078594222650427451726996546209750645668434850169695624906357159704135522977879051778559497349651276230975242759873741668498521761767279558590833032467816121194679727891139161496900637590510368774852987438460769027696433135128602300979202164816999449489080127993528854482878183953716727319169623413418978020912153962309567008491645321209309054099938392952986024878464836669733570374886762779782372924084146790934384629102357922001035137457159746147679061035106527904016648129766747451941921762724146570443220606852763925072162058287134636302749624460112404475913530643182036046216771131733037817085728054161317379829669134955142753654458831111611748004050979697155621038435079102831742571000304225525591109878588929831083081592928495699638908868635583046125371752962271630303133733138463700334967435733954119531007507793013482052493743424481752062896291283244790931235172115201457114330705385689187074241439679190942561739460036825085863681463731882845164289912891911429853821350666085120058162326927078914122807289109428752461496279251773739574574268788797806897034954101656871028836904314754774637405057935478758836985380766894142526549918856143612658210054537460425227695997340621655010104586282391117031142984770204979897069928832514421099028087081006132688290378336531659459588881156509487746952793428622695520491191623862705189438372428525735375742512183979097405869332241518411427719087482737046644453017083033567275485077884111300073549523888432249855764267084250759403907536904195022555769385558857191885818105731975972343963574572045655387897873359162035497239566839683907508558958607002697884566759876778631792968426209705809477284824255958943290839663415648066381906642160451076710739248875329237119324530653356430901634094242239221831427250883562617992622310980122750027105551409133675430817145612205349208113366329545113747196628979533705971437702324793887760045725414987582814976971020237124325943411511296748073514789269683563789833676243467338435850498955412842132266253562858192178163972259996890767530911277012338306231392460424126839406332021946545010378306187083158066891325595321783914992897967864393737192941108944323272631661434311493015910121126770675041041075358523873022584942846086526017945988183349172658230882410801401310079122064229324781010717358389635351623969132810086936352474351255496833088715726710234775627898128851957044729865659601388417835348532281496485531616193425238816689969737011245768444566445030098336083828932988720778936109227751758664681564831583222859764703573422612128327400584164256162512899663477751593374904667680693381111925010526257193858024078098450862510226424258751732956098220935112094058124138032458856092032152122285247361786760304395894875029382434454287484738892814183274636265819014285579322292520130286048557272446648675474097453409496266389540576369710554205142408838601336563046826312249278144304758882029987606558086192050312801945543420622734081594881481845625834204063788746442216369299054875999953675819388251558895000245082693651805516621667294376667935950469507366657810260069071366714014344510324925469166370006209447062578662650982392611725168584129505562976468953702179276185239345370508029173841034204050414685921694901321905107210813728226251410983559484266866011166327851777908336744488265600214292769887174060742109970708844922618970620971936588448470883332565927462812471686776592645035933610210924258966002905582397335261471274757316708943293545407301185366180525479386577182391477025049974158136451352014326449994329319784906608430373022560144341321163929122942547924201231237449528422727100320893126208328187808283161600072255986117074148149891589953084806552874664073008552201958687758140518264686358681753542196754666288927343343865261881353180798020768847872041695110946828255348132318329035464583714881552897891370663616311980999602873267652269460551546958689086296751798248322168623684772628306514042962962646855941459553433536087311956419268292634380379828297944560082255761369970104806242485969534233772494117971412796023279436549938223728368951444296616018197374918374295946430951871551682511181552075329209047304760646327852859377821464953790094109496906431382169712913318047560628607480439944335025969232507729538013906815492887169393735848033059428616578699109069943860934185064253644089491949468158421991124353875868405029445497898651473638088949206500271374559518840416284163621783320663846932029720888864740604277691000632997546480861800015866530981350239488963695708649483419642171302054765356241205973205183421876180461674107258878674615559803168699031047229449158518173085328445384090418826390131055485898486442855838146771661098030159557642844025567870255373008945572634363049570323833533705954631328003523702025784810393675406196805733995166362110757826538413928121206527542439803634561813061062495937181887356082437722752041300758552049024516063121097379259710124091736859977128201868310775892130809564624400630953068263717329821930070141856144627716881033183632677557984861388945847396224072235375796339301340554638002441371698125317730408433249213902216210805352130836129239493198389342226268383496682542184722652774914296181998793605261374254987703085839366996794094449208704840543840970559445875760630921360536628637874775227816078806494399859374755685412215653239981378051140130442294694108173819863105760895959895063692821014477064786077720413237591835100016231176947908965630342132402400903636968679066752981083714258458632627837410398149794737488830667429057020936813780397097717170718018011448813684624466337213099178898699206199064288960390728957305291280513914571861796577752500331061229715406691459070711660638189168463409192986705826139405196682377640135054070904142858706191374142450424603515082673254149271942948747869690457572191519665325055841433446566023006433614307258468667652458345527754643315202803066492680696211872411159834458016685368654174432482826390514918919253334091591572550304196025520847852288222740056155728191451011709492692222004682331207448261189230182609772110301644978055479848434838808760402904425005434728695123053796936895908945977131966373712254965411622222520485370288011177751936449177847001957842891388317105310110619314948239072595036484264759894894208773898794096729491352823645222151652299157430535824046394222352244846447616479188688448860595642433862968140123708415991317086020424276068493870123014654321310839397952147640396669848475309674645670894015086899879181999753253469951365255055350930149296437723874545973097025882746453188723242693587723167939515020771364263406987394829317423417314330666717086284042047863754832752311987246005954960366810905282435393326088802641567204810003250437347298461144329355170836714446351183296397061563656237347038312208195672566042732946177711830553406719662902513019095241974969568243625454977333869011775990795053898493473870036882329051564050802036341892797772552832869548949578363494878370871248702954227791213396193275362131910021283002266291957678800042088937984945203171472327144842559366267576314896649144297066421440064194075771580021957228574959005656321025348963193442209427049743287872707277049639420940007865325055036494307406962136017326809687921609891631875019694296659085019114786991460869505287128036359839650150942466264453742256681988862222414015238014708828229517059935212964802062140283807721268108317358256144517359362750913322074930408351693721084807422115413531672784124448995754373759341723903463420163020170699281261615809696208803706975911369513192237346306016781265273447005895511583528425062449217983099014637260136540255544451725786733217845780242741327377173566351876999324380120205610703797383965262893825019806052306014523677291104882490121126177726232159788697748587630095943693644588017608927754919507558152623323941313090527416629977384436271489039095342779812614337421033721352997074969177600371132850341863939626733993758016292296825002663563284446980352588382347853134613583998771849404570080746012239683877813457291006371033095216978266123143055683807761644680901746898144095893206634272091843824640453710478821350415827400363848245204074735740349712142813784641727625436967210741885207797830267858849131077908774811948337852270815861341231824363825926251999752577479012701325248422438744891860658856502039904459831040530021971205804156768442041959945129482641208119731233127606484998047359667265184316839557200401867922182345278690763835299586223370121427231381685589613075593057861104751612413268674137851834276197430038578937509616939834740775232135219003464277155474044628862978043465461326578699575370777044293014169924373324554381735513029162221519250344857870957394397677763790394878726286091416952928723204886527234331931027514814937123538530608101404612322425124029991042642442789208421280633003762618391096312345448910643707449588102491336618601667198715796656085165015168785427813689692348917640301436975804308775293738169562341731186950672110868089408247089535266306044006097794372671669714263176325504401414498917537278544966862982004251216132307395109848438275901467357619861302208203013493306266205385174302100389528726428721213178024813200974122783252454718182658949918676315783718158234312117315676255545648188102973865196406957606896049034472031188377803254410153998948089019502151587394481210725221934837423383225108491236405179204084267292034312168872862118516394755395321768417202464574633360779928360275985862377446217288488101764761461991503546940511720629210838524021419413272577929056238006520402463526446166128542913703966555565894325966874331561078272648607414742424696601975079458384411905713860020926138416083216980983280326183640748483651945223726727812503543088472075636490927201346600750762444408905175240650014956662317161418620675198701546230144171390010586115055061774780739628149607890587559091754040208072188739337735934218147368238307728296494480990823377756352571221703048608673548782488736776572291294233508793959684671761201135097152821085110912348306399133775543561093022729967994985565637854716615437422206597593051298138250238379505175165445469726151229534980281876890780012202262256818464822182154252753143382031780304994811915642649284966984623440382662871001870228004227084268409588593053972971672927002716060226834046764182164848937303787895560289051737706295642637053069128074050840046357705743907865813056543472355759288903993125220406187179729471955486193864253312682671379305356351897262899396145825963908119658472543134717984055184746645360782649606245101098298871492927098118059600438638970690815234019626868472233314281406634843609459556384591579987025366364232038266868785456138915022750188156511207563727078274954601740422252079659894524942683461728401449921493255975175382043343683545083752877281738206766568845962325483547368326919389342612521463776612973148735569451287864462500459725500644054223825452121108969750744395567738643325819630033776411078926867828142309797578041745192425915004866379832469221255745803765905156657955397612522497615543677755490395556458036696650279156893266772162981847111071897693664375819506379288948594987748334951971345045929603675729454294482866765706023215912834475142088952114660803244935897755581919320280838972931246448105749907338985572550285368759790957457243134802201208294870147432078491395330277358019566066840294291766425506959346126480367114405523856212044733662979284712112935204278879717225544671467919622379959080142226282741749387168031960096654249081635742233368940691624329931769365895401476037904247651950223267974131805245095488208290744887394457379501385486891380768526306230025642988945884896551755305256123305528733247600756326290686543775445631029902020470888260153047807050014159003073401810748849455339541655549673597016008848573918263788401598347281559406699469412661824513190675000079757307366795503624340357456015609914656676921928411905693439039331498709140938498609676157405795908234645683227141906717824085839313546555111241365903444401706278920253382693179476834695409357726629652031177426085249770330277402282533386685394884536558099273936961678626615985850855105141986115442508568811189294679594654417245774026844573612830555168422962335485347110350808055628486155307619641218553134053381572900836715665445882233198448059892922974995167147032145548212495471295871992926376593027679864729324906610202597068269940947519375915465351153913501220858887489588826517081792350429940306085212905191435998054277073851734794539602176762019311190645577093078692084120996392551936862011929641422099945917406422629175459112476995983058084450544997396984393795906744421338715323987094735762691076954412649547820630127154213456592229475532047785861029140505761105082807436436637864793163517444164464716668541988374637727696600821432577257880107504596106357045593892947826101884212919042313332143395352969624147077030608595758970747272227740841931199121486940290517897959196533997650494792480308529005991699172695181950963305832725730940426005656397228054683856318519721722877598720541620289017824816101398572515198631764781343686700056085785565943101662126621066836153187078217939263302071844645377883593697391172043043219118396989847695240937321158241386983629651155886311055054616773930724236199250290527208131363968317165490090129572113943031469906098525280133497164254657063943435271407439371329150260981640814675190958584927545472831195227235016986757581347547011479462269402778099661647242325713016624874006127283532577023295040562031811656850531187675378088034210599839959664925841191041906840840477128726560260910610177444873150985189227488173044467087497632818164361063944035734899368420506028231072065250461197404595440290635312702733054776871468641021053565458202629462423361987600806544740050004572367365711870630736930937431879627141701768292021648475781660441396978528179527864736314743301344795711382511503039652535965983086044814098101344363997476959628761836884899534060863599325446641859829714980303852543513843589947487258681437643162793203815912496818426048817130101184590888470499763606593644933278421609383630758868161777160391779720162814944076212601569057487787064281033080394362792796270044247053227502433395711790094709004332454589664012853233463267789473327064340463540906986785947579056307227181091809267026304597089524979791777411132332552843305533752433523856742528707923161853934286304860332803729477335455315171697635508212550441150625640448967266346833777310887501867022444119967513826632055354317803563902226804952863999206346547744950799494676242649307413468758649769499240098559059849879815693609055695084226793858161769585271353495988569797936066656676229780415966394640307887272555797044694442239049526954428490426734093279078532061587881200032687201610830361419928107054216542170400337853183375324324837472962920441439690718962043740201522072449347523278667509154274830157395639082191578067835249662925944372674998375683572321519400491608988853331705134135064921281552041107957835697207792379601723478058729677805423966864880327760806090720891764905242832199816528426556592364290232335554750514546319663446634456025061323721183535460191959926732336407605313158858009144402647679721120414530384732059964790734936895744498901091120141131275830844648819058516066893374197174531358190823366101873881126170081514823242602309173121062074103479380376992516786080970087585959315023692238086469277532932949744329392428212563688019108239931693587102748385446294374356797386088401008775728128373079137214699956480091441268892605596974693299716938191615912909090486783761270426236219357199978562755664420171574075495952707830019178683254534522594324644447678470988539544271964715489188440757437894389054583743592313681065325224051729060004334900004128457525085599649240478744141679577112913625068500041739242104366509800413179294098032256905790852297663170625638710133686868822436307397334681643115160227156294683672556690639420915462471528920068136713295578956457887821091218312354572352548808912231312773118676514514954792260129918302571663195169792908079009477240727728126651689331773716137494477361733976864122137547836663135566032642394253427611956506060967117800920283386759481030869851104382447330213114018795709455803143554526736128921451424896036080824133214149456172984869905171668374204366270926385253486902168418043952043624818291611888542008509468639282513569553185183739236105666420031496194920722770039974209478882254905489584275364641722308248139214138538163715700767786978669907424713320908645219985097567509785820856635711255036805269234001031713799688172587623410561099628360843963121292909315036044597970573431826078600092084990919515014699972453571949739170437264647023821014543346102756405482011340566316866360162751155942413169619200540677603056454025489082299412570708698388167643689628518308154651914380343678529317775667011639328863038887941002774881800428703703551222177334111780559809494712494251405839446900664722942581827832806447051218440928675922164761339413044030636676345202938344084142990085258963318056134402747296280962745721487507276704485597175152774047991888180210857177883536251858183674857377366920503535293314743309789791883985860363531202390099854826312838796883387325038338880337002102398665616963079801621621519783021042363985592560880406906104005315695145303299010286106799540216104567779015886626765524219626780629253134332148853333358920760223852721544113786098709318183388025121606778842693423011091124381390747749627025601624307107109696040381004492418222802690397570029047646365883082303940739617182558273258778812727882015022104898923997873342899091898857962525175691301623847832415628927929852713449696748977718292762472536148814470860628790953030161767535286724605879822876414566755199157724402028395230720961154793928458122604360342067182259773997776482611839619293399424565584894423084484571223347983082482847263627454024635579125246047001169467006363171845839360694277525352139324302546508695064332722860605523316133036429047926741767362413250224202403346317484790690466233652812877496563999934113055957206204369562476256965602459335675052163864439254522285266147796868407182032095878230120883423745723886723013751791866199605051349847919675495861265855341894178909149508870421155668422165304902365029884850549121432937397035629878780746235855364968503000715882728727256133478603127404024710642345259049616659741636005251010681541708273356800198924422490253731075650474980338277690862638773333707518695234965573544070286672352426750374483973310760095907791865535397763308260046812252094003462639775061717714699174468179273441259519974213417581607625595080190300187322891003304522903736527069985942195371724908925095987456381824118715654885762570576581782350840220440851051198702801315635953025814243996670924794842943729852777900414596606611923844427845051899128542721145109925337400637315125414091131558942039314296011488310411298912376922155231287933488697197962697852492299729128847278466061426678057342993758078876851402567491630598668586797651443308864265773666978392167600295415325386635929574593344874327661663187976081984455233746139159616671439584003922599570524975022529447920313468696118181424140839074828110485304007412191703147236788190489042952336089246441464544149845583502046529316947355309434627297231204666537418182093325883409005784519880025345305661175402049496156193399370626204319741606474224506936918063515947133508409015747050856205701950615800063592091090240627693226381430662161858612554297013933058321778780585157287321264044004685347474654096045590651992947869536312894070348412741374211155341529385290799421390613970930966287894978465195139656980848470233936691891423792477876588134681271037569648688455936445537786672564353153426483344499099581187128487878164414319083847362395617597706980300548138316240852167143027557257902874299334855066075758534367748116147333078687295725907937297446769557515908512212551645971835086750424172273734804526403117823557663804739407358611730679407035093868465779301133544000221400001531540573003671420216053747438235803200585372674519050018899993779114643108146183709690878265466210876771837811350736105943787647178616040063986618176292338970324576573488265580274102995475986023274182174642835414988011367644898258473465779360473561981304726791676025711412091783816954515903308799179164159570182255408061914485399556795078547206217958240420534173402199388351561777179003918919583658068868997168436620702677044632370244429969343410757183862058131149195983835887570060353769708390890086255602449305649832014200672663416063262605899368115593600529613590527959173843086767890187155559553785039082585928747548249591953827594723748774173875504307615093184377950330481714064486110102798605717648123083457164968031892944658773072352540606115070038420891143894407683533663581431922475288955645668731279270307312712012698387326171899164890010406782549821924043328213036083623224849299885826664877443901806904444324746615285746026453364485717569120121805099390124341433727070146483539388904052654204432141951314034130896765644897770321013648868803585165262569889052299733682309784152336196783945438574634777429827846717062052824493894950080811494423813295256785433544836257928631120739085983960240339638325641905100951942253654655433637705489457407771348990118290118237646568194131893395354486327400624228194041878388055611382539565245683067942966993215173344927718723744706884184223432601770087206905001504495921158242725880772995128687136294553557820385192674283136551453873721302622968932472063584748489923639651859543316659401138644835551150541957279823642814196071172861941620715958947272730854524512682435007853186353012919720914521984020272105145235450618849911004863628290195750789829009014313159279964210013554909168920426974824289296370781073305177709780555873619557477515312876735315081805469142650463182970288509300359877694247377984319341235588542024245396344311134996544200428794213874092500639309264123757943212805727857657624468848647627347751899665244706166250172578413251557762763456613736673633610290495968180770441594342679951931733565110262299665178615225018230489220681194048232620983366483976555379567109559025804783491846810604779904021427079982400472837331274105216304936063983679209138876657881552949292121759076969892351668764147087315195349160226466410108141256786551637262965505134049109728336675073656267104894655767163158123504978737908068261357317523184341305238614912795045253323249016826632999543828902790442778524013269078519631594326077235132850024228875449863649368365753158181600424293464753900109746472803785389440453660936380154571009580644999606767863638422970656922955103410005143591460018556213582918401727777339367273462969459082935602403328810381686493170946543007607047982656598791748214564353755963943832609483535889913216015525292104262843731897435978284875917955304661786830380205395817763573947105812845453658658192538830567049394518596754302959464581170042071755408273174639878286459767219926171290956837868540843060342308497575584489290033221264935929078767476289096769030988677622810712778083878677676731617871960747830402853130910693607083679162269866176527424585980881656327745569105528129597698393101443162337129123170790592555523549619475662288186494580472295429530518510906554569059524032303197647669875489193804736570081980680397714992260183399194707285272632804221365829749024853038824204964728227668726761220951779750942968776559869535131423911366754490459607159547497663657314694061185365279684424650659128343461125984515976348484203417610856668661004489250536305950962321087607422108058671829381061645349835213741120925928080099186016382852860883150744418966728120474309437163126921354342993417501950062797834360338006443585381278792611938466384341567024666423906763076353182421658106987225287950764970352523949372501701454369018014635305477674241426826162954277566255121687958812646760410238173932694694745311861812771690368652622903353623281555842973386657655786318777462897958588188786877114244282369607088831572761728630585336231060082221864815141859242843882292796629049564401489048440190850765091538368805310571463221879877143609413496396339160103891791726773284392897578196944154647945048042971929302369299643192326188955337926275406702404270760532309269249152385737780708072016764066343820786903667223930310956643162903017348465419154099311135909485305709841062702861486384658658222684573888793723968545930246228675595223570630014484119899345082140705278173679575515995659383510155103277239296267605636601562112607898189505500007526701334341296094429762197387937714716670444304516074103416618833526332854223593847306224420720143355468919694570047665951555691582817606092529844281886897964932695903751335427465545690279308716602372388467532687955889333891921077876579541765516165134494481211695954917599053806435130731117441746641000206012208116564719448390262106437551548797784165445341936348850530609346696169679158320816525049617273097994992285088971639912295283181132177582848207019055275680989578753596465999534722281014144584771884327011292199948355722666377821774004210922304803293036552354386751343070160562892646864266555353666598980448368520288815003155510853921972179777886914534186118805480808966443505198711573987462443552139939505968281446457384015389358780963222286010248432790567858278117331263457880164726567970297982477475098458409236200324877422650274185360651973527861181708739962369750880845307863797880355079099447585655907575510767433924285055273808508393931684276156934273572023174493331808777709633088077522668585710122121755712152317581961633284145328898310497354045031170227553522159634835745958127622973146107101921117614425208955082830032347068894030968555794980552878776457121530457623478897128757309408018177160726844439491348997650329727992893894420420768462863265259521585612274004909354756494612120853521648834793236388967272182992087619901715867900917328819320919663913539731551245713977901174624857082032307208772575183461218424789904164841130465666253035982316551857815442117967367373884347596447763092029379784130740606553091455087119502399804159109618595826342479114493884467884200595014838849721885938017933895554111260331057002708328716181933570484124470820281158503068136921758977651862711424850710500562136639695721895206162048035060541486694865137170467149957405983364191881373825777571344445539476354180411340687675152910566541281691364403710781738596227859612943775892843796142277055442709225101565315474162892232911872081616946018379850600992463712591931775245523518852135328206862033434929548804395715980157253337619020503973751438984802499704515528266815185063391676524687223767410728975383371751897501146312205094371445478189221960185454928410464330287732761854631262486440074349535538422909480379769734371070183001958515551992195083584494076576134833876934428092974705396428167088298399416040463085701181906139173049064966493323871928001372508361158988527900036983982032172167812679481010816259588440192967120944860106627268457566821617619451650721829134259132615293421589411995542795672349808317161650186531554797163192266407116860834666951753268047267450022992830928561804898718916311841170159193745808645326004200387622524342193356749774148404485637380867482274531081982485746755723429079871931818894704440300735841439292693529368803774258156978825190200658605074388420606423123722898763045737290976500916850411798459967612446432325925763462510611108960939326799497949330102656110433494092109475499115324629538071956322615446190927578930870909377128838763482649284287350331463143584770639502920999869364843053032847611430725994061160070422242901738632181717718101886725801586361787361646719632433444296372371029273783766998399986794292646941521551887659905375159332609911520495342179051562587364858389992429508808090794611927990804166132363260756801345628472835051209711740576690685667534484670143525123031138201507287319432931822304514409905141010875088685614619170491564051914953207758999129170084998992615017431793432289272852216059854372541199921929765474515605774628176339592482674710232833547305189417726041421213310480683128484843152949788346919552465888186485636433629135296701270671194800780343642642514268916190926170904590983797995928616689973585238114016458994607646010204098950046441997571072682038574467170367817704684539952026764557329128507108300162878047591233392188755279300599416305001632647897848295162610735031190595917337275940890493933408281694075050509796107712264573098165835701582675148246361013921650924495445631582687824902368142051311739689156071364264339201922800971582910775299651128880373766430847899049998817613399269226987192215988139245955724689508671986817173607527259262309322106426067650582189391615932796128666851990445423731438066352074507792402948237522739309389571549507148946074829079659000102748569361703344147938549399198930264093313001862986805923761075167955724730832132237034574952723546106257353465432975902838439817850202895662657980400421495683958064192918456158483245980318902904058025062634204701392922283590418569223339088154430930329691832353094251921642817204292393265002239373614738383424297854426209418400289318708599718066731933582145573211259574167816300716667812217603751805462262277015300246407311249831521901276816507581501061083319997596253637946858051964808811524674955948442664929186442975093238497242410198197635882573325621410914191663528826123893293952198033205490070254767036678375823763841493083991710543952274667567004491559769558018626172811325684998275166661517315844254375962421152138972178943323196239921778654313131808195190699961697359074630321043201849249352380264488725749585009303134721271637691829911847712852885463962336347033528857712157992466811441139407341491022296157753814934208809410718958706696562941217013213045612881445391707951670602958447145089832047202883211208228525445046752789605661096297487916748182306411452814804360781642009657413159720745299035365909118585960950120821628924635212348316122727126771103705813277769737859927450628742080487420762401508435799298244908772881107734825481443961131916464812984783240596356274682874830656215798428524881746492672520000190564382825404357991505974418139076652197571027788495481603134486150439254121276877087146317044129852522080926531186412340957327594609668923801790657082439924655734116293330920564360835078126549953797539391762505724885794392243803510265028721907964585318344635535647402315937887276940249024677234765634916175934488161984509743511450282404240970026625399731625306320541883531586813072067306766605972254503835574539761473026094431895571780940492604444142370930599555174399949495243433210540254573865467024295994947131777517273878099780392152995671222163842907172296912763486222909385001318045529586027648174728907606984557059636895523733715842070587563224225677619738006658527565474456068878114815708909632346930567674298299904329899878282547158407317038493196856874356005792489748434374658383522472794048304802695545909183101251668008408973970826296869846138372729003938527276094336988881362858545088787343646217263272678697956547833422938065550730846980343664913605804582000880866603101472592279079041804212056699912885097194088574238593883972290416374437659871344161565744355900044285788085298553016636887619788974810501522941948827223666727075504204452993379432970285411174011342567341275747897376643684482995345724162414667472925929592629972353019399588984211483477803265865623689691606010758700671940575110725820461590246035551715010644115515185988992578801105097328987342330494484475368444216575461712201566609590530426730489351809206228420037248765375651927271758362683904068705690067482470917637755334141108590273314640235691441277459446573085371214124527620475659467519719966433996055671564220717154002312287419751610402779663058388514001437788515946960038642223568292700930778782777152377165487835936627152307787276188189052538103884752689082043597234883200989035803557856688816905817176041364504733037828676862636667102312559530463091430885423575173478763022836831474214078371015827383546447152788180599302945868970983718235208827756874572736757034325637361020690351599413594502302339618494552987516780234210299621389232503334357400766687136273153185052123297867514640323090690273058380435189115343409595084400784154332313388395890205245457025101510105421038492936862037902482712898764604998164633812989933394151905505247781675606336615993804388670511007863562226507028930464371182322381847060976412502377464371513787164660072190560324062452254881057041775513103945579690458594551056226938000894325454641999040986333683696274637571250941736861561111534967980448363410019201279653081189081349466464729540253955166290403036861645361558067541925380843166858978496814894090233872663987881248765322699631065819741231448025286651717807133420073982475013714115149318734016605521641297515587669299696664885085140219717090687346100811768011916069091590232352556114230309200983989472108045536043118959208872124454228443952026618023093086071119164738678275319910487648501862792316644921572272144375768679044512414827429739340343620081031672074490982628193097464294761133809117024894502877969340754860617933588469482198358914626077609791330274181944674132831045892863675663731648210813034313928445626318589721323233947870816290319284223209277012340506263683604884402473224918500917285063116790485786575491827534527383099414172780403931179156207236904743836282599037781046233743095331112782077812993920009329390139209482388230052175996478136424509532139708380031089549214014150913365914418772247694208850488123245395549577832595052968287363252474568140834651196280634009640112515174319863960334089833327169980155631896172933031145927823302543978247370629974547919308722057309310919854026447818177141883856562696478990622252323508632549535222432981515196388797182417805349981699163965084191796718858028543556084389403881935418662022349504754277525579025259221658533685406108885312588991364758902603832399392801162148889885151001610302047355206057678517834040218633934779680775613253384027092259522332254642582345489113636368531631602905558527904531007680999585513951650102299080634531302239413555754777254677995201496881622506004207063531491751306202849399188788186547379087565363966005223148371027269407099611856805042837805240862660105682992321805360691031685495626078224756690629027472646742965443959483598003182069978014230587073267102363131722555219913508444286695634580216009105522013349087716095832379527310743164900348264920271182104707847558710675157041041225197095648022522668275585843447653735401333041713572379372914318666075888869867919060347584868473106743760736308848140953537630950825365297323508593559082609143347420549936115432684617952741775190326839886038492130845111550437250732767149315273760260727699849157458759793669192083364892660907659916902353902265026004615271938244796269207220056404239650920465557303233243547710866332409164260427577894014867682014244878209704685376618155330533083211771095219895533297131324635217288196215979655224777211539741584340691024947069065110704915587182425990432043227361411090661184035661650623215920528774685304665845695463867020073024809727558689086458442542128977028675703269274057188709482375911788388983724562906619522115046697381303035413390178905826566314158879612172144018196989018744871727695709272983773146449699295407775898785875423445953520840823133190304370625538544035521057157409114473591158549847507931520071935268737494611262565321846936651634823784522653464750506314833037537147130559609631421174105908616047312649247332835811173985581257385418514333944347141786457116526668049424887984413536394239669688490991654180794826051488150939377982479219790474042924993343209930527018553285772221627177262741021847372905121550748189388008787100233741241036846711999527032485096073365389470970679540663401298885731618426542287225350537268884195836232017914119719430062762995498114810376677065228075725829846609785857377282805967798712620725407438021758741697624878156974323675892333227146941213545033909373735818527033154413676816771553071946877624504683792111874454271163398173852006653451892421181732666580027839670087817070571953085172428604568247784013568303014898807480337767130974907826380881330637896291119542599523237771029188974491771495716751920337001173025132560291773423195827840251119607791690090732552353099415215693835977661112986117319686466819827566340086135177961883215716358917907717436146248817539153649004500179765741483959070796605618807379609636289415827519089809658300056307105507614944451773400911059694646128569137498759434527975251711902384300143738203106881441864324041714692705935923635722376539456056384851924469240609207592971772408593405800947419502032712708525469321027850865152526799625135502359042888830566552523014276609593713075604881596856343112609416517485168079904452735024041633243449879976074017381250000417851505123449074881594680226050114270481167300405029598586945487020662952256729316704663614440765741415839427890358526064777048924282476201902453360829795224914611494771351068856022222695984272147846603659044772026714810271698929433964667141071453533056840494331123923830821056064736615883032206929404686527500195000535898435269637105016071832601032413696935670137995309116743763863068500463285386364906535288376604384508904570241059438208781376206104774743534281043960492584559157530706373181959871041874233527973003270047086047529071771458717062350354962926782606966648030115292519985535767257585750567814124217704040701204657342658380130600672675687002139881238368530740774018780332548938392585062217731104717340289377961612887369435625825977324886164198637751854408910696223631602117413893261769228096068284937886527040738988986000001828858925490652365376903484789860923146752061167074636421348789670988525184013150622928869315751141014911534987177289994089663369937537222663127431038552823523941504701036584131614111224866986248555944563753144430584411371713222261400853023306083424963700515483698469333543527941632703304747296499271533108752666791976156086992806647474625725198189790550577546843602760089857112652505544154351456960183322921171297313022084845341177342971403244033360443769351446659564810680029615185508743091991441045923108755430425128774010684239032362357599296459226281597386993914035678838024111697736131242600063448192377537816556233495708868316422020646885612629965565801995564521883566983641758638737017322058519751166423632403601111076267422095995936508584886590269831261924901785461779860863302752734256043003208190889704947140384456084133195787190818873022304798626614219924540733953797823822056645910497708599933214681205765474761538379375169578200558457091478037027219029204188425904539487985109047586710145474300228523284370956191828320973140875604727719736972176478992442684443491531000822482294230741580467472468636586076848735678690021589727418846967457120084978103204447755945100349021263850207175129939188926369147722289923811344635431899802023130896512507174217393348572257011026961504542506021524940822444961487574398379154915426918408612281340080651702842305281196526538632603112054877074259468893284299746807079688272055606810184023507855584765456158804653138467039739389776094654924302855690380519031682880959511522419705554625786703658304773915612140355816921375384632966703795166618862433401046745472377199719811920410794584549296397049912129691002298091774142373172078632179774956845575079916656634423331453355527057028517076221874986395853161379746357341062459854292398851047702196663908824577517510092337996492480603444086469289132609999087080692811793918239486336279729725383374141622650122597870728554294402103651527692984000123756006886534085016865295876959279551861990894810550558884607385807782117715856494812674541404249369588597701294316296773245078400042489566087229486343144588885989422357923594484647475290927211369907923676412629752507639161795000877937347688092487274178402699764770771302730324330855309020722388146682412496056504879613000446180685791035013571506909483563353255409577998743840172554164687435723600697616244163392735765675331891144720233314831435868085232531772817898837812722298432251575694220106268028249123081930378028658875360198749347091270653398466062992943260052555170781597416954984542200214833963837815860921828854729536862881637370507547432090346482902114166730520595236355219782211476133126663251957055914344477124387051808791973012736888922314831469359306124963813116754881956977205748129338016415652208728622468906622853696391912168690991954393085661948068814776721606122557115336759405546261181506680993438455037342836092053519271964767334596163300349115317573110706683173952365824385994948148250808405818662823220823304232477585886753700999604019179779805462812950900206924476820938248392367765221903284692221589182001177267246672239502748972983555749077329210556213424862345643141459778073154711624198951217688785019741500777317494418436538763110457888406592503506610468769430604904784639909876858529644648200962914419302276259151825902501667921939177789518595739770911981517445680487788595265369239344613115266377863784408239912386066334471339463910809549007492456811557150751663741050277958927426907603498281468217887581855266031046614743252087177356915424814519259436727673347545590931270266726082803480868095705129188185279009102022147710658144636885605986954721607253169273897077599646570512891231208554536234915676453396706878151239587058879860703069440431039952464982212667051655022221394585825263587515161557953022939436683867776593287585152748019641992009661225009257038583946427016458448355205687762416384148708546648802481388656151503924396283496834489797739683886207185849308449639833278067426134242526122928833537037934937067531744615876786508001591998932261256619534543577386027808499556169491944124850055245032090847827524671241544507162934877836721452267693226810843678536843955035996474309873537470127206561711597029072487187096225260696195276013184868570912063105142783547674673349992106173591660106823266154535668974720027918440818251463179178832011672152060133999400905426662211417942821709974023173692237607920676881043500328208461790044272874577555559662362988728736129911313864771673566740539245013352814428833719230276613800888186059191748012653787021324228194159168661595895445929419950578249993160008000621237691114533026901668549914213821953677187876995728240775508419403825289320404041386073875983962653032457561392935570207724737154563596075897902165324059624564248752349973837114215628160952709791413794044896309647977809305412590444693596515318593122590909415079713867528319991582237696172703037689546648026461096882328745103780952325549189324690767752167813735212469714543443955545828204209250455687662430387658290722384494898341310617833068998222550637526221084656537830857621388698454047245040235557249362078848809479192021080873985430815864585595116426403341581218567469554020830773834123531299057735281687815390984431156768122839724922864497528412143376354747703404609670371338690210465504273642536189123058180143141573422063628518644702408245695498871065287626229303773707379456978314171485802034228474554740203451172202944312580615484490425296188686449362086123734514948551429080155009949946242881445947059863968285739257304012831634141447238959019202802647478103691125508402724429768653967558028556916189235020319791135115530588600798670294296712923268397388155065512163148350820664113003754395850787605564240344581996489923410789245664794701725388824612135349043838902003176171140482399620049760361217307243013437491683940275446244947865992471453546923128667492687497921285185157018421128807632591668097800419956538558776731780170228664419774456334718680436798675062895280660542280670803443222991396775145795440813734664484465883497440652542446059695682322000374747874748048730675914987087454496121625126888925847698209905747821379860485073771273117865738460795585244518463831006071826059945822019095979154069277416054910898409560709450827253157283175267560360499303042717991476789620930915280322562550095932288486036132647348225580614723406929461017458254059341454426163605834500946999917797712930952484249904231194154785779842897731782989619625565989408597554729543610516727614565485912513009038536463051462666149991022744790416265535479437751287638456421962324320581423508095304971649890407605701979987437508921511143099789567861326814185950483137840979165356242205434314158275622267993801813025207667851048444967988323403145538180565670112683439361438085135754656486114131188268484687169899256180158842710667324711562321465946506371702413104616700338202995753343739085251587110369534400577920688704497911986034217001127463817787240291464803476999256783697273674838950392214828243163363563760984545615537498009608423763331080073248649235457627879375651688587034975799524954192821975747519084169636573049939407625628095907638502266801235477245861545757879414163179476218040448135735264502451591317775974925226980972411969297853464220703033964060473432785633408479322414045579178303958708712289655349644632564171700086185886915363751587421107423595784488772537555107557414684107307975267211084417547173960706113979616922283730739405998557199721090202594421175211657393985842063316721506520936743041568768857345042522369437757995103720792082205773408721508318972624831667821073015001918044044334297888985155878985983471482026565842317216440548868250662749176550975665775993992068338166469143308531450380646593318632768183322531395508756130894199488997227807914078260622144841470846718602125291263903646300881038905617752232849472642799143454314941335262693548676593689066754612783922934095816891196124564393969266687254294479397238894642685211102482772788013784400522979501877292578989041434580288617525589348245833057051137268251891730492988427518651063615939342867993559830739688522885597843918663086593752397353438496152033436777757060869993440299390832334515145229042550301510021897028842369524805488219551709112339336800274033927809980666258869370400429518042251791519265708250138557721613484735029618901106242749479004790081581205796308681513421344706537135637087786697134087725343059583388097154488489373317336727117040731289444792882502722641372601477171124750232285316533527452168550098808952992437640795168144071467998220993676930592213528388312993196329265907318107742821011530961318407477404537515134758353144086184525033821060619283411595767208304418816249348583086764373889682044763171382742250989440656683295526174123758083168383959466338572477294856467182798023834021968019839669486418870523948762609421089044970212092653195990791416575704608359135693538793014747039147379948427521341943579977410978486141578361851019770918092292392474682661057690915236428830427823653328178375315136768651442387629678738894336354880019093635037333499148625443443431709872287838792166580991051265797842065614308144915227685965155427352389515303629906338775072475916571070498089110895963914525577092086114385721391206891460964344459774758922594058623133426625265412219730120014707288967540712324943177224276372357594123270770687076357253835063789965120138729484724455148523916279822150315433967552844816159359531292999082822615346720856395816068897101367901380723065792337985643229963615949825859696621299673019606275930069948050041785340191298513613197445221142350735907417759641179161131079835429076163447260846541483042353698735173238524870824643248660252490767579352473816686320362741778436834345267544416344628453347955234889807216591316549632086425461435126471923654123608276472846903176224104086230844443858505130933639817074652100705233834096178338799472521838726079343786478147233492428365799536579149741605000694398566110366031121055000241822069735471330211856246240054542114344822164861063014834130965647871864648496461251340049021740647871572807977536746909251347139556198838884866730804822278192370648982230888680302395486143147851254215216749943365593513437265980674433377294241459964358752359349409442453647142979882626884084210192451740219278599993057709139264001145305886415809906122588216031068234008449734198360363628317732503528367012494399966756486020830585605707863292077852572036569177787527894739102848766985115393804940291193786635645527113844600551940477790663600840012114223660409682224969882070064827906171435072294111599064248073683270330840255758981744710629673046808185601306258714114520132959793718933417576356532856738909016744447972619795756873725028615739054753708649128628121978897593577979737997203447942194965255117505575120767452714479091330312696994416903571720822552556580430554788938476156727631193224170210137803584577648183298502861688640384349087592336843050730602313292645126024785928966708673296834757952846966021002507006435146709359013019716649476186438997491807638046247999373019834939845141491445852845088293889592348326971144194247898551658916917667650047065336408078639438565000107405014017580983701943343609477017768262452284417941933698244049120774990771681156152069790539831063489260315811144720966823491444967789299254882593217183144309039733596845891286485051247372190128264226387310842244397711022648618063635718172175668742860994018118625249715011263965150012661519415528855629148961229957095006838973895151411450486430136317728903363679935415596995335846924621443436330739320000373885854314645065459416666088994532119700743265491615000019961738131248544534170410012715747338246535209416492934955738912933414561958122589860200112789755732330748272591156045186700518019960941019735160020389125346435238558193251435085456452558657689984625302099302013662669431021395807457067443454880830748770672053226701246529824719115640313750543975184429415184939268172937224036093294362611051197567613643302014867456310096742805197700386626903400215811890253328683838657967060009453655333894164085867634536661731803713900870301920833943185617591883838220661897147535000289151677911802790171625428930227419427837871187135922986136108675733232695227255105923161670052179580429560349301897688705590482347367531786242898877024157292766525212473719044085327206085904819630131603137661426180246665212279206522103046679166394401390272572117935317776311470677698582695284643140450114866536174244020649364519728421901483159039425392406706673189291832647484753281524283104436336627011802441463613740308506240792902687063149849926632834289757860836423790132414363268586390975668525518537729087287212464394478745304650850600251952655176109624944023888447073272588532855553279037137108350163122427614174539657661479030663338460533498343633715333844058022603914236827001361989026353277242920949488455759323561881275534073458445803262490616091090341017504379068884381342489898301293121833915295914983652913772653838402530098006144884205829655375547358520015430990248817875914961282967488990644539081062934799064507337695415515062187679999767421809554885607983829411313510366802922266134284916592503016800335287161019884372618140772011279508875268635938203214231650229809830351442296084093241352102503603755079344843450469397324002108188325916723537419833727119854543900097221102928181657075127034125218144102001123460504735260824284601215892198939644464125340546577845656813617595030481281732030422035827053400783003050271688888917470330300984861821220532845881510071539393150023536820154731163801252458357459319660545859293192234532779227629818574822785324138185882766262597646974090093106081931777821388591121355233059527446489256713844309933511041598156812452643155319224353039449607055968220884358893081605407871087288576974641868842716926013207442001529968050623278533066750944323397953782745536325550277978171746372638117686218212340931709593506665930032409079633608239268416566601844866008293059360029596595632790239275393033491117087944682912071582258370299577134567965515111755231200701402362460169443781645901774718868514607273274639055774248805163420905771635631271601283036466219355528121906148887892793589828590623276557633786448372212025480419742541435699290782653811274815326747800981906098728004198811475532657030829336359756646118675570240136475978702617020481356084497881881113583847638474278466018633332049429810646094725701140522085527694179062352882521034849250161048111473561241854493966957350329667558586580914808245198759208634054254659199036385873843774688281024498737867086793953433473530753297057668869500445553857422340978928541095536169613171093568798848699689759002633128484418350489722918742084332003581774517868720490919429089686771644949538925189643760094523700809591205980480821761585147710098770129897629108884010330077754880040815828452646719283948067101777658303794536649202373728911785143209464805292426366946294079902831596818887209111395845721802391823985508559254518964863572725531208302827319046327842186166673932045727074631314308302783015760059643211389890117013759240040181184828480484431893838922536802678028201468171546176982391668249266042363853260086297624116368759965420710740570119617042332794250169675795057120687198395478794351592336613962476423275235204354672398329784330903196670415700110101554742748473182687289359702664494984263344220347557086469580909560879732279846835776215154377061643831142832399661796268288664930119795374542190230599157907956087226336117879112700672539367514685686828744597451905902966897030969342605185652244128131620015069194778525026926865879788587166050790489965279147458483241233707256338213209045371058141810589900272909606302014532696123815254527332393694410919127695066215091110530173573924237655957602293789342213162762006410222967299425460548038640941956283215437799617048295255158174037234079170754627313382252135418940250617446660260249803504299089153263589278994199035549010846717732034832766098644986144848586476031581078903016873238013162276417766162043746867049485970606833282424934455528857180005121055084822306770866985264092491530158259545259675027896555001859498574417301334175392667283810426421059887477960936288507631742243886941731200006350835322656665962056338471416001329528083800665415708990991721099392169542915988755045626464166650675535929222939075049770327042690976770551761447480516357543564256126783139690833214348749727966371659367065559453810098907721778469649242249932384353427616173192292467117931931272750183787265950001291193399767771445827457531102366120138122605322026096943990487176940718970638651433632181791252373777358012342323179169042626694696860765332329934939075600014520801173855756281723013453770442135518476227130049403407317650554796255173433486410129275981571964032569224558310187470339574979464495527339421971064758147164988134148665252086324321902005253607800444201439309493867935121807831440629229027969418381705833900886476313109973920758971991113782089258780124214884658505759349309792024713015050978852869679113315268298845036986535799918167167510247161844132825813029019890763492211248618081266086378251571613622403583115522282519352459752251947684768799612903179148601050144896309885351443302927526395154131693321975800751959755856641187674409610685481393645344668534595474183824965184609453627616221932137130430581711348183255900922033170452886379480132037373785351199957678261749405544561507274470204871914695341827496742024456547537071941650529918628432327681700578608832790590602623069657025560042379936982764943036962431651671568456357940507754461513574789173869204286150741951865909146494325881017489200516048812541707493497866848325385573566862273949512731477082166742286900468528648007926064085389294842635547557934789594299994799762364967066210277725359712095026051844408545278304805834932804304052069558849295121755581682910819996321169417531997305221468442544140249020444414452706988586453916568435956981054690152338489187240150118914918317017300017287972040268228945212009047205781852022725848666422956741460789393258232213108221308328611034827376110685221519439906948685034810628629505567539341715582383664065153513640162625168632868047604369512480291564024793253899858335839632220499974182832534226721961185550056211428757985626201938580418464353544603919435076510382825063383269732389447877651997440227244955479547091714079258295876771889086438007194204866296620039528586856393995896622570165965196977859408727749031627589905117984071495215487664085009839460750829739924155668170051325801863528122164122988997001025627364021786204659989146656501633281279553159144125866651304637244343965877806001615497067472111850081441896590638696611135613278832894225247246103359411988124101504694859589310079726568342012730412791341661746510077457751642454844204805435930427692963644649531691087431126988882164725984130452683985698877871266069553221685102455794744413506936447552197654147166277746758851289076378300639661701128967482682891420549769525263906026882013243472857492021858947342406112049957060332698410613071098619730843045645413908588139067614210266874423028714770372452248276533520677591115527997419556866034799166190704563604415761488496180711171040038743520592591173853715305433355606053359389561271096302180182844665421124294176488625044339839713281641284764441135693287259868363943629844472894917652236914468975698765270701001176227616852425288002377650917500670235633311464685225389398191037165418424728004506733073070320888812409992112844735967775512161428150472659153993563376790109268983196454015938715586644995345189321074486387706589548188137026918202520476725235312415221290712792771444660283762684768302871160198979832384548682432167933454268998944813897473352412260004627060862342874178431359968884777753913278277738112557384483570861146603298600530974101859297232204892112250383476401234779647334870667660681660952681891217117363536809660555007869569440047652913767409499163879965865137317748035382204554254552617041594396064584125225200086300745825543299339137476723709655324632459160218369134883716183476208063518410238688015248803712237531316316642493628722264549471814547708934719150585212487394362700454158597149264916366255420704593789355882796739070042433812289400083040020716634969099985322424361637886402323382068499429487761007768831666477503161944363080567460646181203381733486705036469172758655878875248553122939437944689439956778372417589988738073088588948489963407059539313898069638273912556380733538107706610464029288574278234140099192191686888798037083882919255665828869830104548746020735395040763007907494455268778009197154386789488608209591285268903287551845411948852744552744131544696071123173568723431480425576230989213456322532794370121454790809000769235379628506780113424343481771662754259322817425775482970908575370967676721162833362000099941297533554128895390544488792443217368400596718276226780651889326754343481625134606969162034492802645797016848203096701337673628566134171026915323466028923683922830250362266909580711075207708207799868336614264202280206521519210948337489893506037134570167730038096854160268395178908957057050081127070733827594320591811887089749368957072990852502998819867142010951498529951043031270168792699246172992002064638232226496064818844462290269224888334825100831350346343617836806526395840149841405553749537683566145349359808077468006685328352233562447005705298156288880197364913849324670850937523264387497207692668779316968869461118160090520486376997637131767762644257090797906233513575472022061985346493711604015639643931944455264852160896799845431232393112857883856561282652688205829011941663208493578294723706912389564441191061410247834496177330588714266101577294820465941477310644710172615667001087845285782806557319686481131356602911425116054301317028237882705185610760226553696333261491459387842358398023224796849945315588772786920482486172505385702498453682567220827613668751642074000282358750941297420325538668458017835964351448785008268724800400332172753836357036924048459662398624692554468271183796835077953478741840621747797243503079058139938612924159846252829497448035573173007114574655555240055676919332723445177485086996592095082962558469876730385796656531856861866077528382058999336707682560335749856651921019362388479651415054137348587591668506329358758384550760035776259959595748815932231176120457431065716771148032875635752660712545662298954689848613252332039197367898393850086369438964510182604589929545906087053800244167783374076803228203352291694722549918784730514158620041703241763589602891427258831324945547371843994192055908247505174780499021415594901450728380911823816957270955724380450612206138683045685586191372613489427058884083964156213956929501857684249693565516421374594421359244468059727890918059290802476428693700695642712493425528118067312208642126751717878502494918431846358482999789984563520493106869110562467083348344475644923861886019674627681352063342170036190020321066563897241938085106864604038641355535043467942460861949887514898949873427888702983969253924413295560583365749754295343672530671497262529710128029540754953406927557423507209877921447398550536711222405548322231436531762794415885460016054470710461226969839512160409603913508058460454406399370091091680283550150882448179702166671464206247654152330873955263214266917973648255969461032499799068616031903641546894093294126767675320475031336366855380454159786554181115558998175413429145443596943419530646108257013584119466787427042241789492738713686052010661602087740198017028316334342438173330844349946498858111995138418584031118829201660709798496978309963126157112361247679259086700194824487389290051994907967532637767691110201872699245110302508366453048966931666006073168933262082301448555442480945947218020147549229197994260652395687792822254359034379920660905551622117107769982255839989742275952906302240648597360431712538770137730578311033197608828544147956468303253703321467645835050977202905001763388658761015670637688412806489252613529214372144994482255785306786956709948652663918612830483735802750712257309307175998675486486847830924018785235691040058197896039799421368901394265521035143574367185450609576483641670160827861039547697430413313311648183857185514625256554540734535242785296260043441672733090663913539235259554633480413985103059359133326863975716372441873702853603296518888821143904475957324290545734735352453905438464775398214800704107445747723148919868280888476807324446963314955499391868632674391524903140055484169348369138232122143921560924853082539069809761400093001536743661701175795773713334420479647122985978290029273409273188206199995295225342227021727540576087081043464362110911627747864750101490545980928775595120811028652480917815117060800228615501672795025708391901453621879172967645896454515948712908998078205785471810287785556057939430835288041261312764079616235251629401423303982989269533009606948539154785072602601758411108554405811439647763085149484970673328566594881174155658405563390054416389784883949991125859519069098890564195332517236149243888797253641563903898537962446698584609178499118331920436632490815949013070089267679398544711230070117844991954368408516298647665226517017589874451922315048607458267010732846314508501257859250197588482974432704261738925102406070772483969861496501733273190898380025500622651117004197673360721882072574318769996624982524224859314783262465182470436293026940800065809426075105184510597806980211499665701028069223343302992233672644595292540137597133298672610867762487330643244810918850901097558704426305170801309320192613658932302356521807240309823335215464500499579552738579123197196071413139972344535871147853331760795272190327725632440239598674256119942825221366680395152332674097521040741464000131409175984570811739071669362578005411724552005914616129771180051581182588064427205569857028530122699785945315077279546205370024641129483038112837871510481328084579659001625958868670623932226054116496624581063573080057026486162103877427638248551488619901846278423682901729719367964989951125779715111409180408892719353674019423775621197138944002432235831352959678129774352055596605805042619926786291021148694058197027711669612705047521185155565587171055019158382986507427384104851388646856420760626784947630874138526133040630179194901230457399289529629892411253718901746254466262141274807483203554420302370786214341952051919263853387667213511056598337664872880889289927176158532858663380256851773581577113668556145216382111727321579539959570525198187015280220199990425750344219768505558881072039133609668745631253397643802481455847652648278354251555760949888379081656010685675367973814087173109481569224890089538921796813282938147609812258000488200980045019443680676209476004242291897859026494072030558891543741999666469181157039849696720652892991039869346284319292892574729541063268176178789131056233312026088361321481270875822798516739499385546864601560221016612727692437391163454185382070723501441592349097920401729128500228833022623928827147040246950067524195490830928574681104209454401662923928214931995745865417843589819303049636626165082746330268269900754176677031425079938129431447359769092656469006809830369582505610968421033068671538459414673580660275071222430777456539557017336630254090327854436597149418316971609060837837970987124812547939483964942540228053121205119789789061242609010003224311754032705515463778164884473290968165812292796745126216701931092420125625213772102246249947588935276318796081566766949954174266593832305698213165072065430073046183087860725647008028316261381446411165217186967249939235185919480828871380036664634304660021339066675314171378442589865840442196789036600352110000279673295751486967323379850825506657533189518227563070211909399493279677145857155907031461739402106210127515424395444334447881113367745060261607190033298106174349686745947002469582997021993625609116267397440623960804245291414554450177154924994749565732399203878678995494389137088203065564292541553497762728069468461048739728164476874523276426124776214682699098465020095983661180390714922095884515746279926648309226398302693575569317503730820066266052630171256256606170108939165957328376938900494627981966289837046419719582604993385772424537229805176509226265947357183877758649553589408254955653934989664343023853861780948265569822762237812144546494062275935026668904408811948005396948779754230227924229024261273342309952297235840400426377709826613045644884613476527761813950679252742682543634852401922234493976119331357271596551411940650077787137017128668247547227130577531485342916172402212120740586434193825703940517904473309551886222694829992513864578429966872927082544294796209004741671329635133381408664777274219908178382369698873170062808003848129212482959265155664853921238686690326699128117396752828056858720766711564742042552616074545555079533120289498554820117824697506044952500407845230093417939306994169479215176465058720083466523341595787143705056817643422480264769144506275747207482782497739378789564285134247186831859920205453258729323055668072315994588605629184707518792365901174639448629449260424022830906196523604969732907233095517706757916914288517646880165341775103182581920267415691449021288450903279297377784642286870254131705555628037241722899296787392212421343659120339263151683533008032627529175593402191506516907489945833399698007507345639072179754521856850393707286495043037350268919111203524846221291188968081805915305204803423158407670471486659178087940337228840324122524445789737113853881176270194089854265115486634175525514530748122754518920287220538055170025576838978080866973857556912239258012221700996105428320101871360905166529337763419748375749631393393537153649865773491599143685194949362094727124384277274351081848267974821051008868060051591029395319548242415387065952545933569920750208463069336691510968859373932836214709860286918562783481481522924913159698892604362916621475939165224829100518575459151484029171908500097388656066001924746810380405681156036486157171298364084989905927631432752512078687339365501325579472508946842243030189553605591611589532403005553170725829683005497170422590506015195606762656804449780065938415570682372127111932901944854414003695806929928769123606976396251916378250009024196865614438844202874651599917040135929636994927839905994378547618431725676615828557644206291439970278748706126116735631529711281251904901547347401430234945325459632291430491498502751169243623536076139391524150127136157598954540498247177987573354643502186886398228791105766305419156914774711070239354496847229902450612554199436738858002798776881261854976445572680179465737116067270007612708609804897442930680769385776458415469564957763795517418662482923168209399857552055461129657790049812893380005788650899930924055918254429744996221532519090070025933517365286007773730795098339742299959324379910953100390158795449376693034526239375041139201325936908472621492183024844008782325333737875835155770847818832903928155148905686701010230440598286188934313483303970935422598751274290596052392219295532392890322123235851656710935517103388643113740074033335893080686055071969212999103875572724297772210891291817737158310727317527234373574054901104496442428359254767716340669169753424172357287880897378703034694710078878835059466588519468114200525705719704416485052167654993447664251613715685197614274546840779740878939059904512804109962660314725123945150796851303736733816561504694873078651956753406860320976007634960934420384178957924858217476173699116424958050662013915399499792915490695649433374633695007943962181594630153550808493813066131916326699405935397850972654442036475981114613569093540633466728681484397167075438990685561976157528376745564249514615975608814455525899182081731579183888733485094020349541008158601233758500007500681304206219102527732684795013425066298706230741373851803945113894031159804868601577069817159572258891536602667740355833588883201686145206303920341273888133023369485920309313708655689539863776082143203424654172164202714474118151667376538730108102267659209112208316724751086292239503776913783199165946804514432367158241604084820878422232938299437366216115569042432568784344328166620627675819607433145075319630077711906513141054322290099825294976818157842532610503005380727577488575701991143115074642068499913741608937623880232545816742191125180539491581588750022156577226650135653812996064287499476008092980025262752649385004494928974658846027448610276271839732179096553399084336520873901139272333209593600728374687575801005601597378295156894704630664898204405845757266703495830778770578999171363293183234256246199781019760493090647450832109755899369607549781903725750977864232076681672697682438549776442764024778848058910439402649874646704948218159266383592986629137242767072819725909697012068937958110908490341705571613587461323103557290802339911377202570214301204935452768949594132202586499268125040117904577781918121904044886955112777084104323110973607252037051266525989573838614916764403241600501289008340077927080110959977003185889742721076215477510830417439378823447361176826335702014683875731395887057704531851300599456184665795838226377080621614121712482700967671600001665899637759334541317455606493574158023013610131249492901807374439011032831965401828777708164129487348115912334209219660546118979630851859845081059947710164793361817193991584317814554913095403874956984417011739653218022069610959493321391647953677721106300825717587608474385527129724082475851560531226044818358805717581736242074488094125174900150091268663838028698277235915918187354665441509857641560599354737207452681563202317271194601704673900117852286843765466990033289011018700814081771029438449820316913148467578000213335643717542686287533437941576740639065248240139744200124671419193772844310206820694955932418618158311079222800755325592738299101818103836597387658931658415681019741690256555057955939822605758229424192902661866751054067537515206488493858012090830323522330226460460550877195569707982903752321349328676503321394000807224290300582265975520813779379387129123175545417834788657525360807928456769901600130039505614270763118562724357959037712134941889954246351568445345619968018031485853337453101298792410941596045543837952447336419436050502353337655492143199537446216184891545809135532784480310568647979939919464129945662723682401782664395917598724595267866982043610279104007240103834804328456487505269285629767769718300220945306212060581650012507454045178437668283200141141535205739883982078437557774546768604174486414714571154938812398953115235658707999533636337148428572596006892525345199823329538274205709249262477759840451262400372449791220826636727051478392517794619041605584187602599486648379500979587578979286056215444967995583770310600639864045922802575700054562895182241642544775690986675127914838167043342205833137952417527146936517216661260650754357076169621513183181829906138696024993221175236715681934144269356053937187474833037703529259283100975873160847159435532438717969078590442948515314074406897730803323482384626650966603675305627949481953319016710345507962045735734335194216704892554093913551023080701219855139473940936933950379862394816854601822448598479833807486971122975612749431908061176721694780734021444786798429223330158981315669690851394813922220493716274252703692432449337041410296693907271569324226417751845893654768702898013691113445304607813254118306157601350297075883139038066954310848192223520004456485430408510512712992773253991488127896013443800976671934900771361051902665818453255237707065611779692484008830759584656602326945200929021238238485157764875576505707485815925633059008408287930091984407569068514771886101145165650660616663431944263142018393344599513608362044583283021585964228966537840968480227718632488068741548931893136542985011279827566789428886414841800737284854892597306378300884873155741768734371730750256973722712733155736073081907695622932812996728009117117894998134936260425805130199480355280442790235883755583118361154732485484338394494192397779384112762485271252428682587666823179928470617974191799649675610027685334482084948740192456293070416543450211460714450344123132891125086789096970754427573062215678503043541819454261910874808743737455382296740150252416648115191819035124431442242818363078438921951018505926572349189830468484766054915154256303319513491477125348800428229707855560405921055382553820781891561765304686619447919634872566008138785349697983313760388053713502109880139013222837936631369750595303759119548525695885638442354473709448411830979000127406546371375214644162131134137651058743547296861833935290316064106847472386460845391512952746437661036772584822870869494937698946182762007070309717613818107110248309679314010929089807390794980606945277311705892090077979613484226597621804023042214188625080841024707810797474659936931378958217889312861184387500982185122732607987145818599839882262848147595578550681005596868943155755190426282065939270498266635612944351870694977687654202835074459098240679685059485025747536133311986559278082757642836022116708100938531196192775153751894596903430916393687631278902752365507966826663583742118821093576420156508339424491043490490425799331784911444393504709379004008776573128011946274140250694059906919982176117905056894010288209950240282215207688458325273424093671785601062042815028828362837443491201324806442386287408402951419335459540650883035445283903505233774518764054752513928031870895780831069545086243750560747147721484551128889875370143972571282363140549885240471788584503966322209046781252306621182167911797454464773173270548780213618970694148811852600156301903311292249157385068266436858446558006704558814208890547133918641291031747833924672186811238313147828357932008298727887305619974102491442175089347179985519542038789594858391698776578762498877933334525245600666573344807707587166008526908751250811166590689532189899853981914988779304463491797199105629113105936546215393173104584876445889215915502304409749033991586544961882922581450552690709231239946996536832061440903937066421765649680456993206907901472904150243826460389837196402146452958652144880846941713750428966232760613142025675044882568760435720397731408394274606349447418612911742001449991840649647947316001414594983826664362227354093795283945273544194260587446584069881002145512447228893168955947922809130122842970583976769297804326017455205245862709996002317582018037399531640590170819545271746672706339866846935920274067815414461055215300683478293887164003628212008442154429036342766831947570300318280068662343268355120523356780296270687148882553309185685206234275583505397832970818876660368056953860970670073757789179148283847968100116765506656548938873922062830401220677444229689786169822920992664924822849197515570398685364299821782241148508021136748077845983935223036622309740964306673180757009835363026347630628804350535700455029387179188643611812352291898707549782728333040321952504532379204058084811857246472003962964384979238417636943865966301890111561466590550053685273483746917937318214755440439685121365813324763394032466364887805790328273616458369012300904611969149441181047478385042664065976410590211878606661922128131595281356468647556017134596685023891073550733378236285754204729757961115802397077977704690467053927928949672273082694282622035173019883324517196165440324520074096789828088849813785982135113099573917616816824730602509910616689313752819467740792831126615246125640522923082568326041393007638605573663122774841532392633078871461566923115255431128050837533577440610492923575782979565799961758355242238457834659064217816829585818608201864920444510930144949245706795480954303462668292389232519479655154925333179050292141533737345822658090979166837365076702861246592599407233241091781868683305614906291069115787219381849612947509976794395670486505742057171495499261946723224891270626632388362651485621847240580576795809743445949276780505249036675981098373311346492500336456081820876243118065040258228631995091852051197993960593052090091965449856858471320021643272691378618115995514360491962966368197765294711903859085703387703446935513560365592403498414763133669108671180327338089498396090705186095653676500979080251396085829020107360202285723449213027252079951716859962628812668893506533509504066853322064493237151865359075595943944579961265669605130332799435151286034409490545497516160483574796417252157579634238974490057955334456439806004704382214190113028962942662989520107020900660625018759153356566037903311526946427261981253533239803799001547333378907404211332451652534943176836569201211240046968993660663166590532171992284072573840961174845899664821602269051250029568141255560395752022102705252249102454401394418713327274536449116755172776629074392717647217536980281735598623248704844978393732134228414474549459397298535706926453273763243368697744801045192531755790583103691260715767411567535095122984385518171396706085440567208881376585408403406283962382502268198541953738804687847486402662066480145945400106953659413904620944794535342389299463978557002143984320293701789488295557924266827638361511004048336829506597582145355983201367240572704522145128152305782854309714245024574207093632237645519646573437739664171819494320702385621297165319851693284566455685542192645011508235214994967532342377880806682872127763259698875383094609762457300315038809694721851455512598402709028047177312373936396289767806255863023550298837138803874287964342043194126068083062463671385398900463064423046893896865654970265409436691818299577027902016060726735274813139278151528749399217179358332414769843232706962028676154023155684838505776650697835344386387520085733353977799711794422852542347004891643266456289130166294552614125769058204000050342989288806701512005748059980969106622213996468946275191739318753462626606342226444060137221264356360040959522525234874728927719704871050972739833290104098035782403955688773812758475742962132769083639580803271125985236628356391985708077961056218932100245764991282701537669666874318590975309073947528679284814350466453777011244566634191272444311943491085363643063941895645575180156034933983208501935619123377874984566509424417846936076562088019088691940299610453752607314335028586855077161563247471365079759060252767961879804058994748569362736758099264326059238419704256407570670824019627952645808491640087731580551113743534489435397052024178366017913515526933506385058227480535805219450021233192141573255873343416965710428472703677990274169625848046914438410484887511572215478424603027352699426652651010503548648730699971752868525955265173423842842752068128107249566306230458270193729365290067412166347304947764956407064305651713509015950056369342844148586539338230509735458636941225586709436599193541459903649804464081670671742049329424318374577660564938622906291289494348602325714890062293771516633834331371759149086221478689318653028145612264701547365600067528370701750351538228868327337669168389443926640243422105787930050562413906211820574131283548644962175271035866496398036217337717533871374836835289636445884906034441778876822854520588795412800848136192068408603622611926060790346926330110959477778165121236225100447884802017288722231679708349302582348191773916077916685304479514318968697897214348397951372459733548912215331104334538487045546490353267741945618579506697839801676958102970446237002187497890725817224005954090791897231273840198327987542699178213444582445431427989307485679371173723240585493625151683537182639610402189429152655775504770570818891356076221393286689687660252780300790348065670533245418981810443406382040347245907589035605603188920639876422697289942552210887771254903303477094538659524074146235014918659061225647248466639821997205028576299848066395030592825085420195780840759188929588349286513056706008837952032175750293031682365607964568247725655775815872372008103143368484353817796203841618102593292846615752415676467695479824797220592423219663494438747149122162738790348563746688527241188656993517799838795002216425311714024704965024927241478018096530451583474369098577383640296731502962196110557489291650378194307839265623195757865994162508419008713664080136101035748491887400136114962640878132928656161391387740067859616369104630806849493224586359495523387374334233213158770870326804350220492537232590980298034065479927097561269058314717297293955611498936070032408262451924296814160160656103921128299240570548181458942029246468804461610045970224509908526972014586238146260338857089392271744145027707526728602313002903693329860605088073340118583385973524284577562142539521150814705713402713142869298026244621454679212693875705275535322918451684905013773389990394214391526581225095580280023376833223842384874680498829749190686577172387871700879532612846726317334689680302725678096676957335329294077592064425218936763097011749544090245999428259100529725620708510465188370144546627114188036439491515646285469601864319056882036796081464038452698761780861160392506035860782969322296443310906895327583493213603111795269342782589312146874905079500076987895044158132868443543228195903290419653020516845289543898416160167082818500735163417887554992547356074430868277871543739609649739486270488453423370423091298355243636646673998545766347565205014498334509222802191736229833030906929548472746297139585891869536435045377723385536539879439324855919751980753958931484140766327158164551238966452702188667680994103706004259845928489858050600104680969492819356226287704419689316772135427507770926492611365081078454658554969440178385439032674110737649551307014289733004216231394107244774233127343428115696701551702290961448175676122323576677141647237277149958835962946667267947241514392577131654462529859379089699749672632971628831230209161730639361563084305241480628448389459005426624139777465277136194615598021413691228802805736481388921830171561885320512545928934865133076506185204425996200800467149434103139398592705796256292334037979161273633663576467621142684752674860515163788393519524327609441253066393005900251131753621949478466886935665494145689909965350908068827171587070524620806721490241950652570799079499427180245328902396209662383402853956220833276009071688072714115880503273310834023330744819637366021021891614510218358112042455514957698910279158484750582921641704700034553097971081414132791332189225366889131041891686077004727402451274984114613933558307018177748162859206442239713447631653924945440526474803954388968714213960941463473196809959153896053009996322739045465444746620236805807063085480323872756000033222831619610677498481295465968724621503381789874820458162235902069433942570677760882401893503158596996285435766559082458213178957049490220922150145870961741186634024554769066160406999563534952905168272842792943750703046194468522998467087560550976516443896854447603902343520059679999541445802871689510927475549838500404474034118419906934939685961904910231606654552713321871900796519793063810978168281527911155960417359679966703542256315224700911567337442618090767614268718282945366086358424857696396989383335877095439558773716221992619630631157157263944916873559127366327633318324571019619659966873002478887839010165373646701727052930174950349610297875562796832861841256497458748931659296408531053459945616642121776465909760059355292557268525105176133168703371495851171467051642133676519908339278698132268396552467533417367468711357458631413591549899391321435960257574650258424338493628246583187479282529153853120961342986973439889961215501338774106797670019505877853703674114138331033890743349231883401235220268990658849661134150744982477985145173733342706068986404345067119961499746061743882760200281060061447433854549744285109097956538346384161971009887080351220457191790648831574816591530709728667127501629425908008652544530466894179983854928377365693390734043706808485341467707387362579674609999641908705448027541517359517658689249573934759086947414459420598041607174222862592350333790083496189652653888429405314299645065991352111154298296140166086457329334103813761810330829086902164443095483352924920834693254191377355851354095551470857305995374438206768696103575632459176967022668937632275698319174506838734346435288635638918934165629334889300472209568052145721666367752986856714239606893972366836009208631779263910751368785411834569531085004257252998243957235013102378759258150601986615660923704573638220352141247381204968059873215055275217292561437030295214279578481404902712676282472517429799259377711460726245605693079433784141382982629468482976981436991041646165002637889132252501425192259753577335700370498101464688854587778068860894432136054117848867302607463383049445983004823201622559668695931637630444787262505703351151650542905836383470091687075159430576429045890952396265581767095941674137133471496156530404273447900553079299354238371083943971642764742529946459462371588649330499046130364934607391859806425822331239439329730952300310368978904692208345807455848430341327232951207740280627662561939353487904878054883069947065476051291837458650762260601413554059796705943876101514036637949009655445615621449502186238784774365492989728246885404104371816751873530120393340064387276481064664223406472978280758585081303658281799515653747833658938920796208759856973589514742590681634187525628800769721957155037047591665345761266382318695710063631533790248019703745638678160099949020864102069651804194953423343691228454574330799419223672704688065251586951556464941180727163803470691919429254624307071804039599350632329935626162602423000605103109850406006399757330164615137364737337008177138120372199382374655258620910380593946244491148033514493664808856492088024001732208165611308959129195715131925321996810398648381182815390671164854485538756675574498657405836065685306559025885998418648344464790037508882248772345848347966088377541958297432653329195907262629146087396006955458608336316367318683107019755492264928826420862380844777220070243828816199287114740032252320376190046108543410253734676231019863459778668137513526391825466621128488489596055025026924112186383679878920095975108717720216267991267009396899016270546083136628628356999426475990326398290201968338051770118713381146950283404240591285293929906028372837171803154638645469068941735714079962941519594934559914087860164718316874743914232348953062288980012016658423550616439036717612219997180922299330807369847407413575204856164433664585565197495139346874941854378066636150922399462856409897089734109139841429230291293494711205959631923462648170170358176765657669052540497460470130216962224797007448687687691027813207771597647806617455174866658440349348177986743473751392631980325005803491910164587977737955703617211797068977367625782328439926911047350793442496205520034779558713343850656279161434004403474719566436300584740103341372068228113569348537354835189563841348866182478413046639445353259488163755404630839243158225862196135639244431019553840769456207062427987036607910991422816520475940789835447364612519157531547685764510016201176011946394157266990827387680374196474605125051865393409505580086909012114293423890683087470083125391556045471304514071713541337008782169650618120278603834152721519598154683491179150914557076501505634978246505953235019206030973704863138773659064181806887052015374135823572458327004652304764063953600093548391666432447772503185490952595203607217038289368643345359789806068286955545939776968121846117321274851104123480723951058111766813164977635495167426828057662908210444905715699332809769832729230340317822654951042622911128176709141653416756783347587955526636842190647355773448293992906447354214382980890112068710122959308605733027805338652946788306549703254616393819000465685496474736571168581119474854698375621723032121780583727940030250559766359197845341032812980018433166833746056330650211271839671828493804177965993978405483609848491104166641972373610923637213522104590403449886126025837923996245375072116587787742379194786876677098150449160476447909336268332476132078647035040656091633355930038719495664364091888400004500019677065593022432624286932687671713390439836160208309468608494771740247038404674288631916618940073916922117902871742574864956473441583611130038064980991694966865411761063243364156330972654716748322353553903456316202304552079418821027201585424858458957993890299660932444943961641891253925360196839331925544623907408898280851843577396475636010050902295338179781106399458612978956940165648268079683386988760621429271942840144955685889780459531252221357533986611580649767590310943400852021686062524593827769271173469079243088542440939565444022210988015721649839007162806752870306560779298323444438389458747202596422020287916923315423392804166121156514718376332102519316024196161555062040284879121398097583655853002506335093796006149608228391605683691116296690505916254700565248018270053313093775616634617740044146126575978716294054530012444794210839377896345369317989568832029428281743948880026758573518019925471349131710653805376339676630180109927159233090699930491530813173157749301762357117704229032133471310220610712655008169942550160536258961823025215659845931361623054729619924179795906924376557175379642041606219016434123043494847888869753187758266984186659761764204531456389636486335975509456458482174188503045106785021279374699561261844643227154924727073244178645405717781027471725371142713746837796895147549661024085041254966104858488326760373712925827895253482296588665347409343303450178419177368764864295728993707969702953223057729987746527145007023223229534207103626213482293359679335302136660148160877269967046812518143153205940261363821792716332516106096340704843385536609395093003998239327380433341584307700042431182241779823411819609017608287554362156969800134701135544894832115810550153097205932223687836893168937222121186562544112709360016292958703023766180648576080532356493386967441639310922320462997957853521568723900016153891534042301944780986371168252345846981783656286396201644323845245286995561290492386330454911174164330611665807389660914180739323400891839552878674873741527325728590083698963710505391250666515291224270834360818226808372468088755117348925376921406917841813803263691012820191716337055094107325208890232087540880073234708940512347790974782190401800599094945650523541737283998024455484123622788217892895520235846029498859620752020204453035460872355252542073206842752019591211068248217135856520132201951587169107713480371410484896985955386745627036933250744345409883461384427259424364564632520841861018676163107336324201131940946456217033143421835213700910173351893705409572301782826538034481193125662176320718501604656041226244536965728313932919082588096970090320964664982188044892791933022320282368145921788537424732132272120397108351899231445297594303050014969602790993050511449893549279114128511560376015806145513154345133527721416178152751247347834058603708045738795110252052764299898222062710473193411321254317664725221488271707211930239628693062029844074313858205737895627071623203657241651502127884208605599527507877392405940248694411355240922819468460677065385840429699394292554021723385594636392640257915810125064646535842085883309922718094500983585052406074000391228824762203089476124617502104732346639517888475087752925615166844166351941057153896819842675731790372274168215062918996058647621910649499057157582897418254603660128825975796455963885362387347238538818511029465858162932051141573494887861449672191488053759576039143187200785012582419668327244272967082279039677166028982431413190441271807085588747650156502253849544194247248679713919740696929337951913020105452637963260034983476694040291985611399278704830148295820583201187019027755479442615937773356747330294387106252032157663946632497316299802385484341251546538457559677422615903796060000025906888421042140508655900402050113850687799750822791392457403387757469098536987782532543750820491043611681695360367389661539792267790466334741787945606748106628234922808006546487542356872156786681293698613644761411478914632156708291387872039267935564492477362174801813988600532477952064045814903944131890578220678104931508986212721110712102764654537860596367023996795587286793454449616204641603408751045334812513698520484955711349755468271730987943869915020557025995591242458074052067361669148410614580898116266425145178340931934129695444270118575978168936360694486848399403242741171966632304264954377155095492607714871497149831804079368881779263040893098739769284463417700803878314975053109063203970083584568580854776790787190930327559217840809544599664664003859069332031530601155661005890319527868697700701042846503685947095153626461937148576434371481006591945243856204805856967114878043643545716931883536282774091349446429940239875070079685599917288545252095494325416423971212919872953318212801762891438948004231371054444571058224364976730335680937815361525814159220555255282204363553031176526072112494818230523453922083855135787315211637171488281796311983462108004769882847493520845368985970902498754595929552856433083760822966345308872952438920507088849482852700290985192714360170364113478666294465545800660272804851713808181692129566690850116645561489659624379675016479994640476441509559270344863876162276747268462951503677385854165945639938428991251528271551013736672547926982390279149757008355174038891303065225182680580306744841130373682968550102371058457546093046362931393193976462101939055884174721164378203640940874223926354383085612419723476461915621892118422513878319285464639626127266462922893727869006615489133573200311514513414227317697354126822234021108293832969526475696739127246413002279884596628419996515023772805879932158422506978879835496419460265038748581368767156154470353678007282874404789317556975166314313894725622403967049115295054220165511538188892893521186665241810327224768779177995671366339618435414310309400198658623964004078041670361624153141706013662885791395320662100858200584339593442955367269210595802099422930220808066128883905350986433198619712229687734431987985838022742835012409051395097535592861736274579625193976168364768526824101926650788303236922617790847090192937348818669906618404737063908233067169088012732276858205615459171923337832202398014505467000300393882636342636940872705277276126018975874839265616398789283732586141395821603071528958306533417896620205748673409061647005787031457729242101821874770694781799151185877313110240784758127593569439762666523580228277329247413738578217239337942955841655780218874146364168079356820916405329291848027078681577726022138186984446849342162795508884450583599613415434764558249980096954159416687055863216911335062836347527474114275892870628767250447063336676579025912850458090517345450609747136907558268798873199345921002218816621322309934255218161846139348258892580011091845672597313242425542581203574172492185343956334429955140993172073304362618979145093650058061672345520186946289142262323362035257832116675793359109709719655273004143156827778892101023992598880188562370268754971804912308911890688442267535667916244890202904047664440650937087647806403030559675652308692454266073511679075311754969182824593906176258400159195687352665045406292849215127996707684207634751918622404685818369767932886053145667226854198860341866209665901296342159089034514075392190406239099821979663225470440097484146776309811655086500232464156843778100330065453497052241409444999826364540133973240627850011586944101739241638951522416289354381258036648735294439473158341570150936685565834418221897377013288177688250875386985767126082943598877375449058684289074960970369902691807711912299087588903016138979106160670182493395728647194196760883082610095856587307331083423961837267077038742599705684288907469802636191218527854803410141460744757966108315458577080958066564958057264485620021819068642240553215103430115865404860449394916631763797584712334870787448693483603382057375756639036252630224519766521516071120887087762286337337072967791528045658391339151292980384067348036707616540760145891213776826241385606541995362651536449003521748300691102779530820319627483464680606662242276280283744376555096394947431289803798247555370047059775282100383413440427414397075144351017558638973607059678457332872551765566290464951014908568977605059619671395430691570774764435324662678929373002061046478852080717274053197147591848503823240110043824754417857059668355780745580682943052752481326333461881656119110294346587868917600158402583670605510349149967297973668764892055342264841013658331378176006555046665778886955103067729392958944935300696465223070651291984250091048319551009023913675833495245911609751316015568109785574875787301686880801801505313244264867866233175994600296674264688729553480981177324046219646564804559222733038073545279511521170326962232706435716963585899503927161019194389432146176524388780444781835509021428380172185865577635647901153053782166077781904147779152679946474003099161258573558215349754277982005918545414031612485339153639689409125900110723451820422482838539428069225683555401773263388169471509295060860820401206360215017698481769773778550583932225982459516168881595454532084111612987498307817084858710229363906617159539543026944226623371457330077539904978387093118453005896191104517675735599225605622364197465867352083685988529311326415758468275255295295238871820709212280108470151989308252552022784901647687386026330027652672977724782303269701932323944132061270545376454876828053094147572663615424107520456413437783956857233696940529184197635335985866203117979780962295930877498573884941372243731697759915804312434096067771990578815622271744714137843666487516575553141196002029932549030380808474237096007579678196200812258882371441914692971604013181877818209120252222564017130473906267356003955288831512038304620365309562682953959532800986361149107200556944662497234360332479397567758455580684140256149758724629725202985304093753567713838102553251403343488143474642332951499501667305413718454292334253391884492923370060215284997189755441953030324689540518849322648434006135363564854127373099694875053642803199313122610811993875189458044637564636883883149175926699866612632081417841423465255084329316211323704122811098507122281413566264178811452172509247857897926703156124378502162050778364124482689090467489736032395444618947929277709120594209130253633165657794803762075320262458050978625197876549667503859783631492310408091606635942799392793359098924429665707529048071659520638938858776635458605263229392185032412842473299866198711123316902609714560236493343501589647624091031845786893567905001944465749313319945150141162863713846556905419079009082749918490591737290611517381157721073242309023966540133047164352801578128561674374834616010285216847111821020659339918815186756631135242350361095842048381849091658219067749770070861589921736496856038048680008887253520016853222323951891984857165711418190030646256453945138364360768283676412144877195811536741525500767164344282934890121526600231529586541472646452114154483541171917440843818094869207942919324628228145086055105585015013648209433882973763844340023404000465070662164714222898326614628650765144341210377452212151845842731957202849042645790578051915773838525565217424755464712897416326969332888518937779852382847462169801922768216579153726222200563072671789994364025416327680262274234484375279480121993146292435752395696337314950234994531569921766634036171585257088361123589664410877967512938401240496070486432056602759434014689116501023173991577975446645773297345534274167031985997314898508484624956613375738155319296583913914142845696964862958276593187353610180086908377699570840671471586428382654696369995775150939790217792052557783851942287104635572521265793291772466013388869750448899446281915053059845253718811868861137047203571150977577172819341060432837915573966042932164703404465550489355841353884170895471917971932923027991279510216425576028960315586365769043427833201650367779950915078601041023994283017740716236130480309162477958391534117662024058431385057152684065149682080346352100280204201190042340144901043967853218441199894869199462964672102958393440894421845990630840431754229759033142255075997887797679925800510008557519444228488395916778377298967266703305207926598856528253932101624987772079447155589464103576649343802396586113166701310202966147989828841098840222576516726620819262108194375274996404294238805817270996134551536351425368143459911947785691605689877114895672313198222785502035201831835478455504543037837436532708255751726618296242787510998596569603932197313529925799972201697859545583767438138135854994947045633569641671396097730486907007417793581100667189069343096674770654494928421074045420219793779450866873678851889694763236443275146786929477405615609136480392716650842941937087813326527626722307004275806932491161949087746557689370802081678455350521216592112600750424863851233255503764441289060143135146052387784527394986377397062738888629550676007945406487600951854620553897924529858190029386403958747180135934904740796584521187079120474898291484104452221858586504347783501903516156028633308859815800482111551998715722543108598890530758447147206121564250630372826574701298531822895285947248343514356396256923558900877251357214820019547312632023348647741748722742917430091269589034512800621608909684882246903345249964214628552340368201592903945099987423089014137652258625916988029410335086502117962351732347033910790928847315002678202741243592012002660669237967583387220029870892401261044044561043051192368377173836042569931279305562610789551202758022122160024238921373242669261158642757175204037683251326502282960548740549785361021985352215550140402584600512672041539579413984691739708245854406370839651150334618062454822091084945556891826315549154634967824910686266518518362030316751087818473774369065904839615159687869865836861945674341210187607680056698502119984536703155896107582577669275138882696550101472238467428478825976360058929407382168514366057452168403417507293106691066017829842048915353569331997262735467754885854269173951105199395616576437484794488526098476786694280034299160933162951523937946339855283750859638120303686259919703026209435549218521252064436641582437125407659910787552360309641948211633724583788650870164294522091192794947865292706164600438413839611785950165685748000172537080343180801563864883888159713649970693790710983053279644243628531773834960143951766158759374021381708488919269164711342633346438566730716966495954468274102374467035220730960162600418837612279522199668662897999794381064252810449499522453594134573542789736273580909478509890257200817759558086744690745190912439330225348289384496464252000881113487199159460400184629660856601054380888164075315557483490902755490458788105605943773999833361954348885421204995954487793643762635587502407426571376853061227180109721991614564840072363723611537871455439800044022682440601392781211205010298784400206529923728483533892209087579826215302390431097818499273507030420308355754237309473174474127474057388866427777814439092276551456488780481050930284247722671321382861871639274640721569821412158070944074014685281280645690945674739798554470718955402021990797068995863189985909917441441005053074125940444380036631306240494117803855705774517155187940426021654598305171569190186734739054312746573021142659643387389946632387224535169820757617550847217961402369777937020283506602278444318408680638781423571984108134746423745502922744400323766289123773007435656682145171296738918135663170062111635230861344423740259811174277223435993285182453311310192253367687241340096180829566572867952690463660617484563067374705734635023607708900904159070881924852094910900001094044025936707192713253470906472387317158741616344947562446891300090539319372718460921574989063605509437101789543901157503005321145389166051635294101385292183600062023514807029114860392311351769205970900471749018895983653481887934718012663840620827978623232906862450508149204947430543894001784691940451063243205584434288749582451059035226809055714328852240548861840764510943406746158454519371267470672184724838693692818386791999414125266538780806397456415512228218328551547089840503560133954651134212153092314780746578849337423672924445888513629566469183078605984998731090470443671344937579678030972614567420105388115834338998986471713362023696029153001761114099338363904476399916709887512368238330097723287943920791797465973689309806556231167576392361326540519882410619190692195949934497882589517668287230433155174606721023466768051451476302315875577550696278663422871044666927829639572111077033220270942616664629338075075485694057285587360631329084680147456943202588546689229367312274644872519346229084868398063038937563353475632308691811261040558831581907108158139031633956697517944940679907350243706794160473092967891262828824612255045300717133236572250419816346190443025232954301641969334790843220070790755442819557612476799128405796654838594558810779726062025471841011586577207168599627607934880858338405035149351731642394143929670603966221339172971681340394702401546455868804841976284494741872142740080842866724499796158496919831337193017453176127648006205335905097119794021442476515070107600011848085483701478733094395070866494614364836696095764409821498301459708916937558019317995295441384214562823016908145625125738181561127104130536343991947819615870007066278215340484887227740772169731356451348793269046619409505406917583552669242761103515249558253509790548912821543647308432753715460368797046215974098669286228597300584442566717405052579413179131436092177206401847245700534562934787058339460143920485327001313650051567179023547548440945451628485783335140658828231832026921560416214707852850646698277505946371747910753290974341465515632335095556605507088537681091724217889556028291022783105517849953567767760843870955531742918877742928358488207536685427603388860855256204091464878845348821627386297869151957575224360102744632633236010239240822463355254558468135866770389784187542066612246594067160794028075892683963177091699587112423744929046897414500890029906129657291503949861172947151663181238269604582289563222913827105818838636858544362439187479456912565586093109885456608716426932598018007033182252429822425976466035608565516107931343110024670061939141315929171692260838179581393326396493913652552134987555166248175057012896560991559584444623457112795990386161655488949794006897204953297083416994552821997648277299242306062450051254482400459893416339043596149595592189547192609696635833947666189381034028201926622784579967612246077806964765359935696720964914796846027301353667381583161704234810421710265780481713408927077475899342666352350033720435184745220221450117020416287608892545873481019190040636338990460379771499238707870708350381686402537590327456721257397381113017994030327439421076721797228202299065319014720022790676813410546723737478825266704032056275764892706611125569297930179138782556941677545271984768064440852913923544536729570793873717042878891254455091239867685853674077263532967710751420871206058026786674097023518547791844607642519451158458575811328107710149420808662182853782637246263513932737069176346011542341365831065493265703635425016608107413061499267323127690904510463914804189768738178519998940396506301610994469481659175960424641807148932657238082441372376342003777346958056956355411346631511279558323509614060960442974124472688016123479986342225434336469560998600267631857273922644821285962430893181429376878844905725903353252675522953574964871351430084900467609553054837248156350217206817959249291269320433462231975570485325656489521194199164158809190136281225286954299816691907385456586943220124161784323401423165121879332365088051092870261115617657715509752986915608184832083608724544500432360170253887505898594506314513167592513660431406210135103798478124387429056924246381650850368485093465415658454342186665826066103550836420377831221792759695084950670968766698393851291454432583057146934991197356063083785652633350178850516549654313794824172690523811544137816010183074570155700473999200426258276104713146031709459215903338654185158632711123789456402819363066467943055409987035171692862451349494685593305896800024174094275774290198907357327183502174408549516124759146855591940769143586657089153393153525028340148790857669935805060256828429038906580441354966012019295186253801054643396351546655854996281788950279575723703191477285589780430821460813352985640237239207009199691808272608392881369199239970938235047168893606701503174933655553364263285294603551170640559671784244050799128960222563872428733597748598656345222644182402450864754739700601428054405809576345560971720334052488894063897657512832157232824088978248064430798731494294047873933905383517571743375300899755382741885113305775460303054305124941980856813915307900284141422071992285259664335188110421451740143376849142056996921364034095003224198428399084583541560450839682854640989404757083938808804015016835311878395534346925295177470919800939517065359559169884183904121487730002695345150660889766832364866497113338805648179103266799617821681146755194490781648911199501661830045166353320998231907227925094146777439671691192296375027004191833895325354886936895585304464938351433059095812591905979332466125541688016285990161134181506248579435370287921915787680377071492823019390023655828389406190813901811562883288014181788551316798923828227050900215886241534355732197631438946588805191574346147152133455311796123172007562106104443629377457866302265005226522695130143683926938271816766072172484144665328828793322942275571398869118183610749392235628184871292307427792555187890244128024394716324298903114259685388440032232955390461169783543480072382606304379429590748579676455415843980910719958722807212296287875442299771231374269119179838014815033460552621605223701859493676681519705584815245833363622590148580855496927625983487605587334761584680231103254556129825628536411191023479366534856726457182431456544218491174485995037556841744620013442918199639107517476623881552463070986878517020222289487405797819099468901095393472892838703558939785782254926041406593294494457104697720919978428050989534027526694105854516757487211732075202324243594987217169173313851948162304487657580977955993155319773007302716948489295244927380479564759969289733354753462168484094178151754210148826199216388803633553383776833260233792152151924539820252550868150485927705809876537864244199681158996161856934897254848799305095224479361727336818287711859955866085819852362958021847004388223563474525627287449228400752734646828366818714033828273865331064633739195250859638958304230950320045077472691435222603153486046300884406979187375537264451664532608331347538907942902554109121541944923051009055980948748250367610793929232546497858483612767848123771961592348214220352202164141596379874774017872688328373578942508544859498060322728864218046186377954376084862762807868904214189525894027425667898049328026340068186057673379299923378884432355914725439754191113805785941784721534386450557703140206649330741458848944860100293371723534578856132761582587301812481319634768442774507734388081124281373071748224585415985596695616411434576109914970125506158505652705450014332216224845627087977019043213170363511684870447134085395292246109487333706753987518532171452289352171121980711899191875512538906801541878618972969380714083108400305715032934959938976534439176933859332241724496488023148807087037598659692285029180983938343681728213350207476002023162494917839097417465746054328734779402585066242845186078536622079941185423649472453198671987263178934898850967768118137318359716890601141593928507615472132561443713436039376737330529319418359892483416285528052108410943126950005299359378769088636685343055506405086409218866575458622460172663572555504094022232367983167658451638448084053372455009374067576513010101397797534473711834701601867590345634948668935226092688073349924963766750458837834064184723330777125729501205079004885309477810522571959782470784476098967347424276166684142168234353355171395373876293912457624330895895665827216869505905214473570327904726477151941081535171092223001198361287258726535788575367780889172322220698851291176947626567670562001184427202573470809058257893638835795635035962722607717097829988491164390291025219687883582438553720367643364940865034157656321178413698865907477555628585699767756771478608484491103554752283248795739468446903835746657787905126957851475844860195736564436941994642334264129266772471319324887393167603502600773782627722867144917573026543351535843280920997025701189425611369120322676910541150379947010545529175061461686763579537790217557231816858362393257288339554807612692446424320532948992001062431543425473002971198592793829969189439950160433653372714381572088014049546645623489659970009525158959426718809292206634494388025931368298623515290740663957961207453029404173422947940021278664026612771416435402570931517363048050044307527549322868784735551543968298499029159491316115061190984695126087603426334189822630935185744711399904008094640582517159713142207022791545306431432666222025753985199002794685027447355580637899912427271347493572667264074719273317639227774322864853378676123449454755985285778132422596029670872650623032441577570040677799205512481860047680144531682375750480735477014387212256434592031889035782835132484001577807594485673934534244642188770032161430893865123909714995545725301992199072051851015003868776692751216276924889936409619595038981845822432444935624097726512609259868444915741088686059791936785671734852935038707806354505774355314651343029361087296612683441769796169910686523369423395158707576525424111234811252725930135972539571860689344598468073547709365899650452008509909280287157987953281994737346715462568971412455461083191311806676632264163730650643675602291329900618506044758773328402412048787266242060491359239828942389969301545776798342265687152425611947167037022629646136257788833240580323532551533525069353092293888205868954300563958364805784559435755663476251942100200334743197688952992582071298952457315547878325692757087749577816946012606311564907799647796697876668101733117754182030217184899419096311784308217221408065054727522790531444755034821695582210725919161173039350532978257495610637868634881246000449997635991950515423105725108467970820610587448525075972809371058832137750694082782926873563548611132902952970290363828746394428317330292286472470057011347151490960303988930877030792387492747704323655547369430220273133931777047859175704965563282665132074879111384670020752572903990577168553386501439634515857822626508181218252530576024860939560380896869305427922828563593096374935135731308111850240558699365105317414779832014103011395861571894233348772138092577025589053376897067375701378512827062529143826025162267900959389633788871727741922899871915833007725155794694858370602393533315646669997967170697005306419661980154068701146474526284017659499907947826469277009531036963930496306245006795074252796969385637146982855273021779058230333310672367068208250908624453384377824814494966136067959541606112770892019646222188630181184859828866737532208422439024374017638497671771090218867557347145070503955506624333835939897229679444320341288016243956357484306867734430011483786634613411732401410871569521291357613612042262478424561321093516383435019569989365836077173685652353712441103998820990971391217835381673385136953833189278087893920739669528244656087387223798831108001109648302830064905434042138316449176663189575205073706502531180132295078065733846659811802577347048166916275988736657528869261948034864279674035657931200542222930387100734366340495564442862513670960710608012385134857476779318188898869455682709244865642370162987146008363952007058534396431448486819013650327204350573395010852534934206880302374787317077032237836791873140404178223549052207557517104665796234786219841883916894912844840217488946850039387959713536048980678666823295943557694147948878956911555434629236782276296881792404029111096174822496825729128517647197521063611889230607037782397617851281875275116720663342721772533517688239787378357679217838953538850704731752720979630244946294072539029613321010937884700715007944308390113634211594155145648974911315783703095269242527406560375826333383598258960777706675959713618203827016316779967461754234043269009507019391022410982130541579429871554744038594658346372095388186660187441993366084345663265358308589446972761587794835285836560493098571238227193276854475023326041575753491426966532433555264154123459354373165427336013316869314373609497096199631599860497123639153080471658422734206195781542447186592893518318351048681689368253037351440667580413652530772467434508459419636275318853540253216107548180848593261609606319238471818422381737298944306150195676091956898935309918519951503011032950152214242140560627928647502640871223197082906625804775272886391389761229662852623931138447704363737543566731421799114108313360052574733013292126287574548334782700450473680692532867617514301714727734574323737256909676090828521440557411590982713919590370600485018244263541770277629277073519174818188365944287432328534767293232807377818388163602447370772590760526202610111663330038509254501445156923530328900213607606471291553713879242115906688523203044906229045799599092032938969886709317466157229606841596396930182263501860413183080102353980782498070187607783238098403789350878939432081249095573846377152487840971614954477811507470415682075716980307055934656016549311692005298747857718094799408914913167815451196702230168305862695960628144114542553826968694878750722345000923214629090711082793968558070329453434468460108730369357405890289232692959715296320956145124987417164902980981250278595512788817636079589165534042163515656586846399030693306086419607158279124444813735714323411790973190301297624521783781848303622237204692189855010812151344489248914215429821682654571190619092393210917022281613548874923267419775917045517126053121550501941238462154542150917964819550418886064319187367606429517228487208658629005336524888512063695492238942902330023331064238377705388503204906067212096590055032704757771840593828772421664391248035622189581862192582981555245793593286481905046304880654380489671780697569297790519066462839119895814974208208882458404177125714422805275802138140742601106025374815701964868007103248442302122015103067841260741931107255440262147275395369618983113396063007208171097082141041551541231239160184349366997918087600745777031889191507699028440732640195018582863628713567541915793444755051167053860342282629083664205759639315366517476082226582874238263672984329783049646181495864592952796350404121547814594740290299234652480929723543855942695620979591290160868653128937348525324642797342006288244379216142703381975574631287163998537856806436624596938531575737603808628043385487734742650758367759606637478182967859070737565034345299605435319391119841269649080471219826994667863712070265527179225341994116462697796958037569179053125874597611873518060690120402903148564964036452447856596360916220705415985654805685602178988105657209683346794511927641154818183929311148237303647534649359258935223285665540768384249885245469711423623609241674779258203777505943253183192318350465156035932120305152643715257922693153368370351634747451601344064718883814482917767243846022862873152172972102233584168608162180053621758931203298126018080956132626689133744298122540573460816081235265063318335379819079073583087376386766079500557571822246220797141105232401061795985294632285853379907755370788956674284716039064416525127670837287309533583053371982871306481096495144669123857533136537117855037217356955320826780127460252351199174143637965028528262452427567770611934642640478042458447798461171308980292745988365619574488643443195326312127815301252650817262250996376882909822961561882809358062134061428451670221802493585383212799268103670005827923201798699864911687065258698036958039073886688917645949844655925907205742655417882679361950460786062299851468582372581239326688533601821928864632570045552245915039415055347967928584657242370600097157320377298917344175796543863722441420322569427588698103030327196973015952761064874085007050989112903866969561587163732474440839949356602023838732909178137519308286996522463808126277238043756143692778508636526369931299896808728987863348733095962284996714700270643945724197476057798005136518178812920787024669530536131963219252598474585313684353906771823103965757076384739925116659528839884930164331733261342844503761982679405300926491808196194801812570723748380184630701269198103667663924536823154967044395518471848656077204918464252196655637632409540144533680297383534635935907115356621678412526563879997873188471367354999765790387940254355700333459036168322714898808697335949713140867318527663868512595013254195876306633270512033005965805114141812504915824441260182862588071344252252329175872121071811916498174042929965280055026127064803221695459275443373756340197981074530283543351741896048481753510181809005008119301230654522807009778052564781528872348950226950305144560898732030323909013625217562625520656117253342799199912482629150229648136434515650368722787543134150042952201936427180418424499095216251870444530930826038430061942335716446959415478345464780241704633321203782829115335611509970159432144077473649492352026133166707555847780745927563277776737595822339958728150272412460338417091564052473863254291523263895544242365130319112255050235329024758712350159668098308586521024238906217255178040423917071336828455099549671143156501402116811917654397632905950267478879934955322190548136950588427811787017413745484354524194729616361723560750968159341613491137378204404108127956684075699948774076779414672982341099068140404371787856728664253308722216298582570406383449067281528590251678546426005383530842705111038096010255144288088949796284869969456856904398192126492157543488146663564104463929683141980273941156580890807126607648505190360334041800407540315423932891094999602725299891222996057747907350893651333682303795817576529038789122538147582399257762194788297369246067509101969716934805721286000958744293311460543557236539193477159247971920901721677141240119100428820800570051772319499057257791139388144603958097356622895786473937727850590560252836916600964693786529121026649699937965388532750714333090485230884222086485494104879346337620904424808776005172002171422416775913716994231894247203994492631457420165113080198461688838095940982419409445684181028814152193507156369251866945062140809257499759796681524794462007301245281449603084856029761782663004920908956938175962093402154249935190456735307995272498788463885415376470657717746949865514757773613450537818770956612924871696121340346283838112861285116904006621709888844775754392451460014347370034028453587259612466189632506800831504611126862071517625504121116092918672836791513922702004754613390124551337097247669038173067142889708913821640552405737245223269560407276514863596646937015901095665127872653978149766862203579813829744312478047568391360319906620786306296964938441693639190588097099425477013097734855093265669369932361934319323232989770093477974360717224156711339862229061872714354014259421361442847918334283630591522374136722989234525195060328332058515236936451958958548409972145110459868291598360102183248760501487293111771919780324052875468107102360318094246368221044255261206709423272412100808615544502328682845604474134989885152809579320382365064988847802506567890930107032115759002276056791774535043416880958724607940170859394907154537316484638967812368956039036385987712671650847372112878351935683120611273754835169219278418781363700362038834922998992225926954609031311185501899787536103898507036871971445087353331068440027889120698525094473089953365548776232055034632131841065945401776660662475399899874398604081461295005141568361324628348899823274056926266892192405879816598477100685804416380271416291711599344833339311542924784410661125151732559738786460783604038972885302997988061880258563209682702540844883154677562500674263743970925170502220767088594040944525748750619254553782316625901482216714635211893988588348330044029544841334376937457483250228612419287123305973308162907645454633029911258300598264507471359294235077424184168147322831166534142320358386138585979516004057666504820356213099698638861349843638494197992226764384224692984512244036976953581186830723930547331500304515392028301817351005026940308849826798239465798211207853368651036872149369438985716106644379708635668388702616423259954032593908062228587871488837510230763985313717614400744256312657129187850746210221663198568366730302277418895794622180341110774482951718863509248642828727514589743358086354275136608467538552766294236271709120011182573371059855380440891842247606672461506099659866759493380019170468632016600418509130733229100269087105444373021975343644037372918404251921789218830777171890246851450650043232286243039547139895110170640853801414199534141405954496261586639571757329716674061331301663727598132142849896038936634751882093544334867703600684507923769261868765034427160495503619351087894463827098281517187847406526016326611813433760338453385240790832020589828046742209935211807467126120922712625928809048000583686322641851553860706059955225333748345397646566399668859289018247848301453461339295186058961874149391575169426332159209414399920651434811929384018477223239210972240560793052565173134490125811055705638926936972207164724149510512203055098003846813647922802169751548642827462040149754998201334861060619182645362533424338727381036499876297739392716609752156433507521428772953492302497274158577265252769160262439626674096654061390414018260234681058002907421493963222027731807309831770887993293899535299510748819786357458679358357669782885037212644404336298970981692246972569981979066616142171254377684493133295557108979146767325911610889152859305523949809353091963591600287810698983459192314401732932326730981089414341541980302430700519928372204239546638440411414439271939399343816822003938936699650159596356827455771295145783239191191969218409845191611744354744791455328496568711225115646460298001136957159742039996681086661714691352583236974705211927641771463876938406469812970459382543626730758471608966593807559080223852200861812734399873639425401067734919679877091356411364014447182551656250686356886161733873293617167417851442335948638135516509910120795665756327564543199638909648900550061020715900592128207790206014227248959507206954277976910999944594065648841853553851625564826507241054026802858564109654892491435282026984717504546267188011284508496591797498443526227327215046967859888948090895919487640599192586491000336527066945069721650692365095410054556530969577726992377253610571916537736369633650309373669031356894516766450309334821023947661279854887656806221142030303148422625554780291760849662045373018911264492090222224820411816427735807703638538197083567025802227549286251710276521481012534035800768398868922999330988230024367139715036669413191356247401046879125048757473792148009489850123373163536023090841522322872676738648753500088644974404642520130349676433891919198329228695763401989196698378839946006869245769454846803144984627683573182231461475578573097981332871360243526272730677417568209102338934478283900003133766524209104059108408657823353053049470136878846669562983220575449487939961093270773964003267523385887184192551160486191493525788913140803142079664374659626554574973845464138337115166271930997029433045428840529961826948358284456007887946273452289747698755337822717119937554758140896941117118052054855005435286041169534556489399046457582302334897217815214148425293866420175291245399172940019509969380031577480407529553304637630042115089272797659723169432404307236914510171640175395952001127060724404686045917207790414868004972989753224696142809125264589040574654437316808964723688989356461211229583883624324542417512853279587891606571559995505956566911015626218475732161193069740577194474560169257447554548198407040328678662581324015550947509948949684744229847747229972746280102994833678308340873008369788867856604049013067327042297272392459399266248410541807263703423516593127707802458634770829201692420447709586969351682489793912633986738901669175327150069184867323902219492925607847273260440819542342006873736244429288223259194306171801804135614214433378761301685834960331304621443697125912345481214433770084521604610079342209368530180912738537794212916700383152451051032537285225679120950480265584914508846942633917626466280513031432810840879488168050519493021020822724762373249071929071611367607504572392039651068481234189109383965742354080414784158092200565965613563485626204074913328434010690918970284577704653149249870185718722349652313866466211737748040428581365668115443758871767465961265454629007790295948319599966474254035316559090899118226864137320448170226627522434092157492628426883937834601988827399439483317235925011375781371219745850168725017045664172070589987729285311920352438736432994318474053128833455413887803375036592583978696020577039350223727996975194351413636211647686827115334965423878100409693400334163268777490076330329492728954969176249935741552133760960484384983739353057575554039217128692460473117898187798753080412543011089575833376350913942499171571007311675353152606627063153678294422798473898077366957018554273008373809113511369725753433683259171529082303297715460266610177318867979844305971589695129506315403303218815456032880005863460981726283812913563866806689131827609187698459223204378462412510373845373694632406978394210251335617698686557023216772908620973413591243883472629134846893699680098495050151112295242826023934418214506051796239654878055728268916115812520739834087569320073433619724443440739419212124895991803559953754475307557380037754517826823112146853538377684483880733240339118953860659831266410684075700819403561899961413903699534438446959978136572143324889594897147542659575972308187539929891082789318977181414124337967654748721754405912371291286930358611587127363944265798104388830634959994844590471544893273366971075672716424149817431773410334234762845886834198652373437774688922705353008778954447329489474242559933055268829474746390711871570298489065039671622121219893161878047291676207347238922139511758497166807221073387442146064511848148504446120350056614089164789720437209660775764373089504083588396791491002474215972472755173824551025285026534722916558629999820898418425954633942723325896025612143210546003444425388172523881390014885263089152851160262433227666563227307298921148064658459179578023806465814994347291661649855601329839828351586531315234207063860774966203074449110895674990549668412568292649781401836178821128734297029085107891900980348142508986722404131288598127474401038647366045560210901762403804216374765721254841328973363413087789229054902639583179062053702811198417942756444315456414142987008044608373181893608752300203313631809449463025409475350693769167516142468778552518834475833507392585329187314382176489346157661713313716397877720018581029946273788929357549207609440020739119287265242577437020947057007015868682667264185694726389651108827642602055116645101995881868492306753959305198723461530756978446553842211587851738727056600424046595825942477786727696858655244722613252466541417953922662222859668725905569219737114885820955299638989020353342998409846331309005006335776894723309477201816838137317460021228778440538909991806209669006770323852836154888476511739900139235897564402591935998995979130160398303101514688236651033094581569009029830946542836733161482729471850423426252055691504376722043577202496062063609881692595359965475698500846551480013873754015341992154888837687260859783324726780511470939717699781121330938832158072331006321016553059941940814221241562454862635124672245989538661108704618144479886395817119099809447582953773178212130885938709375000233109236511792931288777600285204107451631730455780022132647149757314984356639838008419018024098219806050078884640886354014607621999359127778139816024022235308178503073118867742187712938903512281074421640470886393085231111217747681253068163824084738025654342491713983387472170627281338505303532250537335040061557032092256520822188222725405909813789266818710779569938256296828465912037118600055660069073132088408355587932816760042946415892861145231339468653119177975287936510931854014710473601300648672273103276913384740153875297981444328419840540693594941128205303784775240473954539985867109168036392699992475837159242210914198818681565456886482566437737251206129245167679119536563856751482436927465311137767902152539076399731689749356766096810750847268331818513302179258213293553933204361867391005486466863617806901881009883346298054698115759412869411629819532307661141386043594766096848219283278707732417609114920212946096882132087207886139913001895739060604139681302103235887388038415798054711298945728685843773121867192407268157388804755002307021233976193660314737247203850905010751643698160438426652742631172426583645396642228376865557538758404393634899979174397432327805095491041430165246369606615091633078196961285806509942118235256679935307246307887700113463257470391490065487693242309679243062925797594151726061803101546633235205047623173333876978512618899002505161202060619177362524977584263378055849372783498475787066028908161002315823331047892719772388970867154121683570023537985223818712345593024954706082018953836705498055961150905795959666204319330522183534547771037163801317288418307296973611849224579711642387481722750889232541603314012256531500287842191266062619374838817434127191734421216835744016415705925312825893708448882140951642989745112015848360974587841946012700334977951124370419519285591214928903868919672475284596311037519163552715190299871383855673292284875841603144600323659795031006659377873288841908832384214687070952872346355954348875609545336441055952650132825121612450437136277093346758104315248623525401785582838411111614961900815814572357090072800324191688764231945500461921920813742702544646205911026822757513740594777328034602223426469734370058744744476414078331491781976444208275538727105505068036656545211483466660626444287352758138110714734424726343838430663201127836851923178199366203514483933265452491324487106823870810763791219445214904445971393748273290037232361093174523244558985693664050739835382131784608431482480755596524735969793036628594628354827257684929894900778112513952814058323760482621642623023278489768163452007923116441634393152533911290640961074262313109380022211402777701840326290103636262377730652535003393821150494164721722026205018818671534845828384372141429624257007766212674619919171336544554217184533105275288588347938359190689125492530898511767224287707304031392475771483517685474099417223724394196649181836978515543231715772137296025299313869645043695267341674928105164098996367493554141483790748099121652063916556129194154292498219399609707631333122046964477609470197268000879700535475994578091167253030586658207156197859718111013375924074572907656353711697770615936440921676158094824657576269555719758768004533992325763625198235189653498961472377013649646758710141067525110006152806562065484195415255266643838117089981368205554099970499858279287354913258407054591332902511317200852701598233561342314574930767745638543402928049245660062576928063051940894070316568909772169002273946406524775773809466478521087795918895537380762542626100398176765713877943626106517632841054036829113077920261772419428252680524708642416328681873581574503680912895449716100366188804543151228255322189541046394409212692221575344455496808904515012562245619608643818482647867519365379013450650665061593397073954272085353413746770982588107486063450092044376991174854048903610938658060864064796312668154109004431508248075580006900585056565548064078468320958093423188018225526534896576595342643244336516311613228637413499383171033598570066936354484662837754454897192073758287822898977193649740235811654984417796108722398317357781967352306901262774940812843848210455811029596860320461055245747421004229465757826042493023520311537543378702388643278630651162097563058008985731445045287823835580514830980669011605218007951245259701625986251450936448706927197358647956255317861526569747472249842657761681638672696485623714515254994438124262435111998823501283522969663422430290378245519224296810236774420368050535908393102916709321866979216342464425438609448881357056685679119329275938872713183729096526838530597945326311479939558853663602557377119359210821407556478453387433728035010438296569340659245898110870776733290150624016755265937290522182149169981692256109139527373107211975963337333274579446658714358454466365464333638909504926370046109157980635411605281377160127025374197069698147860432245300045121299944573589620965715142849646544469460251225891645590319995529813099392089403245197217148312764351319263538240677713724763177353978610575490665021421701343554147275184344258138543074286563772794948355909782199724651049965666671587253323618357238925525142450755529519780593417686880376017580556312471868970090605428691035937195697563387789120443462300629510327009465493595923391891409553982057183739307681183881740972106836981852928873966590957195251269382625932216354173061589343340968182317923293332999787623947039598122215344199406461060945096156385404965589093061902660065461778056624885522213174017435285525675556707970820059533415651920082366499646071901634195213925785454063544060126494991403177995306945038238301768936127574776471393434592919210894769291674811563199195838981378629302379084377682196513983450041816539714258880648411979437294037223831588069192741938176585038941418083694268726394329234917598089058784035546048038614532882218091090794287411622612591299320636187577296012072348922436416625950958455783522279402387220284483551428574719305900328114416659412917578241632684019842012498694827632900825252610257570317012725618345826476015631261381181883130178433933571502884982920680175020644241098618525952946518447515065131356941577979170396313239813709480487487134048040365970639147010901688495054601529217992959616359868924333033903863109213234262652557320918304277102652339878943011240244667272297872534998487000163531437255054432622008080858582035737902049141517446552392156215883992494710406024565060244222367919829542798709992636648493303892882736884353384873400845531076385126355212883074728419763935481523163152501001509174204651099729140704901853612677596455446709203896570152194780432745276491479064148100838853433840124918942042779446795252223520088084695521539969433162264229769895088731161635309796079917507729593083220977810331221439337198672007019452715435856974863156035457544971495352597747410056860450430366831676783756090408494211342759080572283647896217426137435695157326844720613846600285143173558593672593861914091114912394536240724687742105206692976886339828544598415148775894231887853756578247910201487755463213974556258008330423926837191296251057764148220962026224868896654439720631786992216011031975011321862836494776745701322694990528749668884261382332946155910891575574693961188614962737347383473770128389581221559290630707512272111272516604511687544957524491918335326314954020234724958915122929894126045650012805503424403979725033948438632429109104046456151689323731661043967432993929294373045062689188741026247052589026212354224946872071743113235137434918474717316487790417103687735499504874754610017095360773247815694121947765660837645043060936062947181489062668037147311254527330714143780996306734979167628404125947997118721250521367890941837141800456590552189626220303264138856095244786652597008159724962522594924423780323922701073899552330232101719893936187687112181411382932712953968699989277806325502914777875385566106641075692478815317237281582729008585738337180691703145239184694175114845590556472886975273347821645953940689076225150368794080127805782430318376458345417531957335753665925891413175386149512916708442618134231960762410415669054534960937118445561610154534410002824565531681755666787444452407048620698834934577812891035172508922255733169611162050172523472696844806473472115977828780297053578111707728249308984448708005521663112178883069482043232329276575981468114638721605045191161473914333676774507207404278363744668786555793381292535728536879326569880638553237438644101431667372472265065794620103091027323710920926389363924105601376999064887551491512838468418784571771937739216745717218200218788116201671555754638195639495050449714080703107999042772771793440641386034129681753817327099563657157807623364410935784993949037289401080963488744126132793078332560591663158950525036600096001550559937724647491304644693025932553963246163946525142948922459750191662946249749539439208345966700857482395892379554285431474087408460457144157190434270609006678484914094314060051526333663992835306158138077754295994598927356025247670112990154626244054475963964917901573732858986425717928855115376687620919576546270660641186216370062345633675750459785695743544547041269094966673202570312163887784244226247663492055676024447799561321343969870058855380618586459228494515986054047038483329435015498508833990204494537275701761873445192839260236074723471584059074595781515499791074277693293120276942908006944230018312715372112807054439504902363223963481927144986500622907851629386557725152664514454510724894083191414422560070132050850424532019362632536739058572373663587411180845949922416168003827138869931569578518166343210988627454724013675686210087721958611973487760168868354622203874597962471373098179868313848538349566808528861072484347924203100677941061972743164948597822043409026076296527838104887423176458825116800491801265477790827674404814899733031420718502199042203211812031152486733794039798518736271871109530715804691864343316881561131489868032764981951958920852967752687947903941692511143807210472666911789590847281044801876848823885852071361224106265997240602238074472223073675554974323241118081027167605610056781268090807452011358890041691904648770321899088590877819073570879536349008737463697883859559043711024757157025294017390452780791819119124177161174399252990749762115227316939369410215502050267940153208537804618118972924434363886655761304722508515644483102064699170589516890026657347242402318855299696634191961301036939395431099223497272158226921135599541537293750521149299677943891097434822464340836226290652711803208616480455479188005938568025165991771372218602049679865124246088175919121065414607764660303298029186496043787514903243179279013214663731945767353533260112377590098341055731181302221365289750046004163207086507970929998433765627915245728796301234663766829887785016728587136552108909611249743042057774598715593233266436433600794314582145055431712802530058823604664184307254055660347595829327081552913092018194806343311935228092475611606659288549105431846146444462393280031505243456417912745592578175828137072071194922145244716302341316227294641483372090482925535195617618402089285560356584360262740377312263199754581383936302579093723160100520704496705690633185599750876478841368215211331311512297711352981597878856139701953438423554519356479390582462031979048330653448261022120101842036201006421964959151361632637006241405418069994614885651580185468733945057834429378687531176737683672644019847431635250161802382070404576874092455648002061608572896284221260597460623027651391366032829213903928221759174265729605447900733460115369885067171628984821172568483909166365092159074959788213867462296902840592412403507494911567561696920566386319739879912797250833473515338833873782299037628894126990309889304517561188089261038520870351499609684050675969274657703519560188447309993536091175317078821404833208594283571590279960300389292900942379359033476236097553389102094510991514328952354289360208072032175970656884967695600297427395111616980672253084766416192736318924525504804509858343237149177805930333421435714290262525563577658851963828707708159271747622901629577209071102426437587428410236285612989338160414849516362103914385755639699070640893925197133560086529052618298085180168083243548321519150826848645965083479304849414186363748362122783447268429405478230521774230839145679527638507241289086060377727818183430329482626273184980977222416488487773898856366016666367555431725056673621171633207378490630550864661388474164930475714104405729357626816185177380194316683825722013310187493311455930472154812670344521102588732227002205143618532706548996412282719699852937942367788926901198356578394574256650887345908535086525642353342739689459958840733269269570460587161960999795733639443967880561133262819819039307947281024178728301763172154177755575856695132300378025513069958900116600161925599108046645344370310486338926411218253717586802779753739012243169660043631043467174717195037722402455274485439965761614502067120168568893238070762142642512583705203893104188225393244881605360499137397582675623405870311852151639023616232423986238875061319502841502288893487185857125116136729843553881494013026598696212617947452636843772238010939470473327459958166311772322223035825475547968500472146052666712254767475709980142894966129247621489293898226276325275613877617023887148123272328964690068936799385921258256476393195454461680387959648784112911526789376929840142997707674376839623368210845987214453594119652278424064111050402251539712712587288836654121329720244587422062887127255344877806974782450670007829114390607324609296085734245484451838671590615126401850770570967367718255470100229109217991476419265003236323831690848196712877052252099684287226263517733584223964115367360909932418275488364893779381558836954990347557111116963588788962144419657109897942076276335020712649514468415029231603574051546640143315238968558593882279133247626613136225427985795780010370417676635278865980743892722438668990254911788331638099904029519939501941016492147711359360494703693973553136606673091628553370151234645605500160481262576632519060630223391870753631608190008234472283162679187364127846081965876169238716405154693833477531432253072445700342734630568999114636649805877816295659262709381727749869269278856747491452832940090054307850582703019413154161617527215148259939656941658725091247671570934256426362060819174117936833860863609701913683152106010997142409488687862552190201969247819526008303448310544756548131926115351052836314227169199241451894391669041837395605297140251697184850331091736799526489886191299796495963082105873963328800315541465122922382167651021426917665234740385344776314700637058354206951636586238411688487253665049528135408208908348807020069659296509238695359375462964075111327093706466134932777694539677199407677407124579699522861757955922870942889430564936991517277010796268340852996752706111168898242675628453320575827464905385693572996911394044659517773230909178721310371912344394003587483875289184579366145965635575401251776298021745955538269393424640746112004564547888508161767185225003217237018181749208185817248115760571217206051839863118896975367920485145168507092799917209017458997434417757331040461271278972608802332779162268202995412816497361008172882410052398554877495055255507134495002240314979957673751925037992541224458745950687653397890619948182988044565467353523846566283453992031979391387163566619255270745711824880928927306554752523767387881064316012920409697570913392559618662300329639294395420161724145954993372926638193255500786639995033333379535604136953626788757735977722708157561784710144747966059676421174375138432738342096597979774199969925043600077248118037153373473275169174977749630710328907171588698890114991189379837226004713128788102981675976486155406658416768496715048084880029390092242185840956655356755976466929155859904460725580087676891318116826668810312586000777713233516248876674823924475081411161618573572535876435934823192225859160472460493750432258830848257284218229207487551050478316083236805134073033891863459561764288928487970985366624305470794598742144620010090521567663813398600432612258527569135045714379988543886327560078562513468295375814727456696169765658861004178336654582914814945029927969646964277892250432968161225143707962616625356932464037215403037592036026277570752151753664313107231048369814851875104293458394765541200999202383830389535510647104310760568065406898813676057564177511759732130540184858568990852276521224848107396178349918177236590275693171122132519129190243980753229553741457577442146322195969139184340347409497692769438322505833297183671710620673898203351947352448142635041356846399204010059420746062711737524514070493267292307187902580171126623673972222223538316628445611091577417406344810428969102575263245445134652475121941608796440789364084109884992929504848095171095950853951005922923169754575461422299420060740330486127008893336573061706478458248374436699111861198069233713942424854631186817052320836547656109018231477415520972776388846345232871874836596650610372300924798045299902271119538991343755505181552616800334189167740860919361586222402888726322721016167221735076559823129361944053751553662294534718482877975132141862335003961171249922978177082609951018505315475501121680444540340673148108295130192460596046756417486046819448354004015046721244584077029938401114672809137502618196925396275565010694436211629220295240433889266872152172988153087826373862775975578701377084140668799797948262854934335400461522738801031282181170851461973877094721209745991787083434703743362964368034073125412376934719643734766187411313150230685676747292125530015197851176597717735012789421979018797793533568395266517374241142490175939200401030424868752849750508630578105617157833667760103637956542756702339028844735827102193627226953074464475538970252100194872181811618491034539401667761621072447689681618435843009938253301472069203316217730384347501828319625809579617103174957407298179410738014560236853863932805703569939862396271184067583938960774560940190084170277241743868384898054821181902925914931875044600941303186188531745390459753704679046778988384384739302961208236818074538036929345569482433839644680500471026197686899859052384709033543973846758764968317884846607200386837364440039835374234126690198600712002379670169468283486432908959664345490593721222354719138164653994449587063216448805848756985327872136683506575748277960155318672890289232520315980436096297471032429940139533859227781717247479445413580273316447819220048121160204134021931594508997265424150623923019640855648345961321779362967515365616868546679610700588391880964344959079211301171694517218046274083528596976808423890909872428148437178628088634158304762337798091709864190939858398616029895696927856185268517947546419334952843422638929624522139919068754755512736787313301276875449789660163221297599792709851016619734772720574542941534660129786619475371338649619499225086004939003343776847051467214930100837332705734498185561114196386795854869243655358460229786589877839328213088748326083957061857051142727643940728211200825670555082073523765279652583145242363554200309212520824122247929520113104526066846958342381106737327307498649435459324918067824328507253296654898738690664699088948318369448002351908991740176141837824927554033814072590992360131886625032858175229699300388746744518213691130907619434481640066948829492805726052991134354353888198712487329775840634851663412656568631864426936702032604435770316586983062559988112044267439448323120823950417073418883504524949133880914481986261910954238934921710709982665219015958350562639514938366976203232609615422245267546569292905200423735794301793841320599270095169852422991904961223769333931962455876046009507901988753898912907956568297034115032258023611939022689220039092876235502630954722303711609676544925765699463642415543122856834796791113028779904305300573311213346942834865025582589199255879369287489959101276685921468862396080193263030072442437586674549609091683619734550333085871607652721028568313128185108924712741795929263656185821335191831529363756537092821026173413690566698642122351902486156066329365377313325824496504412814867524760052600406297956415881520939933419785972268474797984116303932238035333021316492029553970799501674165067192610234435758674064876331939740082986211567705389789310768127595732343251160417857485138462032507478699175949487785583508114281061671440618559178697978423853130150078905396226481468165121463534420738569701265302715232638771101078792165470347170889555562238096911637477870379712862346099639807694667223266459103805221744091143278036207082705405426119224581050136048011709959830969887174219424712176786115780597486260603550193740718053043493547023823914534030543707197352574827667956718437400556474090909723711694658162895363350291175547983828850937884703974349052220200112472497130709363057842419757724712691229655877003047586801265368109725114506200166237075806454573267628085832727144741203597595751092032092878612753454242142799869125478290379531061541627522700094860843628709927541376138183023909056570978342945440064221523282395775641134455652119976548270011680841783101417522119665923528308807840160835125365010592531517802513460647490983946361469018771986861703950629094703682590229718284747346496824807803531502869181168477347614399581320464717230516355748407509033716928306422227536748458750552964225188273439970205131740551728570033103420927063837141878073310909707373163056811461487990412651406500762491527912384670231399270720429621439158196281699463574443584400909651777388151545902785857344115367516471695653083037694386337324434185730393099271907752591274059226674394277365005243455013858857888694181556319179599123817278098414980876316259725145303719320043520092439245316674907871110491655417337104512895048544437721355240379317358049435999822784401057510078993680772645485569988411656725184570328671135576889965856931138161549322103537473459452946943498429747997763425466600435643357061694033270292504765352517548724560745702163243466275658860188734213289966974446318413886991607102173622251506665828124980919503263441880744726172753749382528683702329410710872742128800663212787558871684281297274045872656350640809671695489412992365128896123824361152078690018419933245494812525944679986244568468569733192309565375186473072128083972593737333412196402143012837347236051635218677832372629715311561569208593927165191045203608638263658344454595254403338157209338604959785633847686604757847486357663866327392336080072235597133803607137884314903040668826018702768190366480270706883194147157287099561812065052762834434502411088102050243671790326866433309559231794396556706282641932086808825584368554442570308588716023658851613759122960328886350525967840152310600202606339241220017903916393771733332897962049856292301794098403554600862515054390332880159567391362875082669730445647557609670042868841979153620396054949419709014200308320477179245292702987556264364702977350833109943446983289536603731759879396212313598890949936642971684600273521558549068622118580386237900300438869810779160174852514653866292745386311338425002946717808354986080117504388217005051311230639073092300523620617075140407162537530718852159566357981332097679329965018364779919382895446738954056873737078469324163446951364869527964560000739694716377710682492401469074507354022629778295142820649937313186789274435175684187973521576784717612680925689691363864170193349685365503469838181469858327714677603006353543852997182297671029362013626669846213086172926878474727412525329135746749547959785271784617544640317141186664273566382276600949868598140263114486217194748601687027177087777429809668016419591305446600179469411626474995321043887088528677131009783924444502839062412128987038219430901048911474645539333251134881471044214510255615090908730813273925812851771308254063428744930373008120033456660361791463632250291163296768565905733991292425812009561448699955852446570169733409632990096516539843338479457433511234777642383037955236448318753146613992459215071301345797452907455585841978196788924451415755586629787787510445615485575720737849319650554468247034099473263192371254016182171629973884588573166597919053197381658831191770473716359799533352753838215511957561513504672885411555767017509605826839642649765603433808521741379999962201924199780369265136156751785766250068011089407259360064680899051140261481728850349744594297162808183569511214117390367689297235705264739809332731957375607109121417724831356842890336886317664203507501539686480329515586049868168939761781671600083955192146480395781540697585521406623204964069106919989345233124241707957528553678734865588753533348799699104075436021254678318662687054447687765484362079520564409645356842023678804240810346258492514059215884250411668880049539307059607489499806559435683934056151638713522762931841837737476075590760171424319787934488775578455311151302450661904638776365691788249319615341219494047822094190412294969380767898794441685145670201516395826616358216817062824639400738672635075622467104909198250555150029588690071188504130779796358180188448205065362850922484259163124651681071208385174926112085935254090523796803912589197660853334252680977471610478402064593541610820526175357161095325536085665261813829253999563396998272964768778003457462232620914056135279725957422496172215322715749589564865810938057035064919619045921175456242447226083714520192453360613091287577760997216064191428554736459606678460608636903265159652234077581227914227389759344463545217879690389771719649789935641532175495307465777263491016664970438798615615507949613148632440166562217312988182201475181959205931443782353039374890321921278244316228312582691326135065954258032897134987679513579319806543665130477312740303482043404745645729541056365677360400266322137522363487790768182173836962777812991150195106995061813723563225825221336919677393019911419163819975487257079773642709516593096636867992416890411614292096521764283099148835747505861700137858341224931373810228724201859350087629736931265556492309087382224726626295372346840885599273404428030278406190836426071986908704744348073083453666963631180852399749243317354728706700162189574379040762506800848408945673213911867823085344842898099745935805519811646947391168259181869894165381720141521682956274747416955589047745412321827616787698115144188877610373851317470655030738451038084108915562333717989745680679742024510644796645261421857386512007088118874942054625080923146752287992821031717363520581928863295193115655866790873852063215537033296911430800490201415726679347170680662010625734810394987347904733849128096199651445761738916285701987102771896097292952636463850925755114493650231106555444003232880340192715851981146887203368723202414765494532179404538950841055744353051805752423202040446742010007469897315562174117274761434614585989326909198870761956906760207601791747187575334678399021034836546898786333158282245799731593078025971190375098169399553305170750951830170461538429167172807697490395611211810375112163620300698968531424876788371472103281569143193487461885907943228463416020725157443388219673171562364231884461210827910607307734803567426770397013226626760084833708780960420341199848568075464596143875441174364065909238143499430711123099075046297948357264087186643223892435224823606999408215551325887821860781720597729156485369485805792223283402831150235016748984464593309455187640770273356874222952706940600760453270634083673953210427807796857173411669319724470433089110593486856756685365250458067643285020295573365520808996767327684247822569268147202743886031920140260821133665207204644109088346778267246757551597262950297302656324843683589635143781510565172870046168042096532139349284036903054429173418994968744976018686057982420870672152896439337577337248495402547926010591361604385587519927909447042685848123679804228795256615807222703756358255942846730109815680459722176467450155210035915712657255396970520116659111311369872263940901060960835426152010528352406805302752938144094138880464451770700287042401500107754700221698204579588189130605514359621579769031357943587126765316827183422377740067108082297476684036634100542127859170058985095330911309303231358368363053625290411914281853486891955910851428028927970234744608358338820886568221810785601471266781155951657444844897620892618594732543796526286107853745914757689869856990889529353220746612341722262113481560555264916799558782644378517836152186165624991342386693660739286690766237240251721766853727777798516261193908965806333802066707053750864933422431718864545513656577957700424365457055377641895338604055616814105370113959507832400940956116751799305136294780427629828929718182408374247268103987332209074100424175207927518221096296851550113663075960811730852696415578682283471913570521223395670509571297653435869578292426280771419278189512474135100965269004916118598422838782197193855061348153025887609055104927251509374324106532716993753701063636962091046277437934493794928512525255960172559521015060679900066726503428763568215387123257238849637724336044877386467156308941224905456894921187745507996407252579090605815632545770193372619880569811333168385611702496920425213968133277454652619574354202417425427189631292094320602614235702898895769991541947098398630904356454758709350963988027310906181660658785716516979611721000017928824441891461509566599988780533969229178263742645322469050094336255412948314276368709664133900307334136664267690535888149322800634665781236783917385479678203223891075628566252326782028225155000233487710176746940648621937097836602068794534405829908696289005518688558311472737619326977822497521602743996834793484057353151137044609188653246934847027828635001234418169487895115244095802879415204460966085146607004943282155938114341440944475628010134882897028438828863368486318292159175597281753992540769330545449132256388080169595741875138456932624286669106097568484670808716975831805094309476776501717691915448715277418219732843297955218015203985417140125621760416248381262876282319434055300253517226136362980609254159773956472184931644575375905218020702636421684396606788883776862872030521681277107338187304335051303957064257025101369850999247272947922999115328120802297221084476840624145353489357696161796486870400492909050004801838905817217551113667820330607279785374162172822011076274547229866387132094951518934940274914732986899998241835819719683320238848952771924726666568565119730030186245026268167795167624463515490467377294249528632409457103634726168718195499573296959218473676627131633002119194323184499876537144096222934623743850744084130974361476412027866631705125746646389237045612623059096535772825115932978481394155502622388696063081238752564384306987781685671632066189759990474533791776060277423775743916971173893070581841244009822421606624646486271571642751323942941584680636729543411394235690228066188463271420468335506480620561110147911807505345244188633109810313604205503282235733239679834026246814973890814452189774521783018542016327666702949490781743540101668044669911363007165637199910487089562031464064217295305655652196674795116709546448158687521376033726192293626498363619188064558679328530609285957005570497875824926662036259840686355550206055748475608077948370604704205382507479071513182134769952055962565557916824934195027498917904505085866404245505764581506733421792322729219170966354594718322914318065097736612689728514996379667037091032996460795798067353529534477775742017571093774229478163963245069943803629937798530303493288484167635845586717637802556999473922027554488238822505999035131382763825799572628088511157337253416037487527283190585708354823281242613987948351420669452152960341731707328696849826640390408155884576860645882596985022429935942851780705607646069682860610451903495182649749192179813063199248479375737995019579480846285256435076279473940586047182268361230678362747514100247556748840552110730552512962995497730034617918565455848374119607638915014890778204266185284424397628376329780898503217302775320680640781599021080339277944976531032618057387940708459727373806371274522203156926785056792678929935468361598930654947829907227099428402166253856836286889829075130884557246696968157151178314316899793594298730419293989030174542745222849943130575458985055195415123624180140959951902415921309087585630540358911609847773241367054629367273725807921710842625860592860262720841975965902282876659339120701160631008940685045966406725534072243604496640561433626445860621173155800442742338453448421805377337824478032977435622949700714538681724423341067871554923142689725325207681181984769322146551743181133786359227504429889558832811604025828345464241433029550781180636506171305629680891375605200711166773723784863908239712746023371012260633326711152320490438923602912380333801160055465873202006991923808446313019775583305705260274826215502158746965828809390572133991967136180697343570010101427538726406553405425450959570498442592533952268181504303281119884742330956796262798074499208474131741116234883825681615653383392417201542578438474029554173511777895019234332003778941716201203427120895400753076080191737689497289586043791325154451622083857863165947511126208298624953700762258560426715499962311581714152204136432506375529416103332953395252122320726257371447722404833649355507777697168292669286528990282210871596236707768129658868041329263755462912070160782350105986907680200382665233997776886330472838702155121086231450180793263172670708759429089398415853523286796501707873255908182333836167331815894751250769280767322518282442731327347478970940502691175568677370108906475135714242683988845518313126709826636542905210027480682656197145173095812127916548456889865296621911629022312319079759310167664017835758937820107911176549745362671599139906977223386206480547175555159888306021416739770586921479819233605165736643998572265922957316662644871006567771230642204999203080530025139965817734076861353709600102610955134208498240384228351579114045855204170114267858522904078285713250331406018446861756723586971113954916176514720599532549313955411078575782505732310049682314988889251107741792612181997988449161989397151278180771923909977727934880542526827599130897027727465865741175229693918757553717300567928349578133229654030288716174712025202385550395004395650204048156977287596189909128142359900807122755429248131337093267196654462541738911361460838948089707626516895659614072163026531142183565874184126822830937027602695997948527007058838319019204222994866212685261502009486866248694751545124844187415279508200072650270961579402363408052412980451988828528072523668477768741476911801094921776926841419256829445188171057488614829864456056867500589977514035075352431356892789600609372974562302535303498925039469337896185306723537224356686206049067062238096438920026314353464935826710703979132225008824804021998993304443687990062500316927043892826097172733634781057856057608245552336914583373387751570415765402013510777074406965322478179233959633453464067206218735753914388129528883279684946245707892592255432974085983003123777954382549086979652277505952893297828824383490526656651445697548047282928852630452145044261365804747877401175165203490057024350936494087288772459742567029843879175126448918068292511610457909707067076287272577625745478895743320488486460543031163836848293133792370464560841194472044206165733869076676992022902870655661230518737899470990661303743984667538858805786132548714119505010621833370108503329725417954498957442807036642893787870533510807086805753406582941509761197354513534309237160701702728932957663388218397485372946755524645162000306973203581081311418242678513771359696918117767006276534428814718941834448492573373707230356791729480926325386375376765705659045736470351064460202571048013904436728633246277697320263448114173174525765280399902294104509422243784354857199337104915238694175718313268239864356217229106399689965440363996244785079457729531201968035460414701130262673135338694856810491923098002356831965134527015871659930522014316021603410221152950389311090761420044591585029375485801214469253799760492837954036593824790550332225350810311272894383858911928638285565724610515746221242854331053907424176956275507799997676673654483990040672493224193180158385897475990028218973084618081156309040403178630565509925048130117592080382333344740594275505639298878996873190986268700758289730638270432570303101201083502784261408818022425667944940712173480769478706678862251000794260649296072142419689834089115646919562462928105777778876027144455788821139191760516065488660856063296751916452101898997405447432008231814700702262438686385078804273836683614127376220265481529430446775938537117079353974736038334175807333133170829337511729478449593651698475289473268867340060550498066415441395565234056661209494148726097554436821806428060927620857690535641690973925781179034887517727760134140362061613302253810268072740544617385216140958331038248160918019855284049335666234402059225285319644855109258184501331182855031253205336830123046587580639177074762667477589099713156246598785561915114789215766785346649506607773862419767204068734172016973648176373189082438967442880797065910171838487282469783500862873353227899732590005382621049513416234023783626236370223165732292849044983352791214410807053107184296699814405591553573993059232098506058799689209202703750745499110173833608890593806621861666927362537105620744916469651295411264784982311718096523409667039346005948036244879901602488325995543511801652387020030536590463226927474457713951400423529176645194108952378573036472047936387411594119089047342732249547947170138257116228497539774243618893028150231089135553558545043892665894193511431965985486760532966472802902089978729864767834305528982571936551019299277947306511396430466431886576106439905240102143315834111836832634163547527939996895163245393094150933077585800236334420859974381709883306957348092041527484916821427250334189941086471265550745880716457832373606739468211940772362315350212866811460900383867680103581301611241058229089444049690922452094150597802409750487715259945800722667948264210258995090577008729324558931386460072465153805077777301458271002633250086672529870348397383729835417809293686339141635385588868144673793383306866192022440640276464671846339055090674953008367208272474724835852858305463056323555690747615220115577401717872874370732506860447151633865208043063048447762533265390619467608243287315542668855376874532532556850050413424852797322458051739109443819279365081887659658495215530568515935718753467256454366723196636213999821658397666579940401430091539789954524065248244184791480455892182202783453329178283931890475085271940493489197368975440331524545913513554340446701680229934155675692528837670290948549246416344759792866335300616806011609594936416906351418362487665426357422269983494749805547955417872265711782420957925833111697472070742740616025127498795309407906301485853189160931237623157192672750281533873613175488465065306637300315393610422676061078339998848109106072823375014216328329617008504862515938218667725021543665577873950201971640480913271641712919005953801210562154266506020134295475454610355831116593372945787221064147693290064245898902559816118315782183119962947100921661911659711216119700114163554614622101561931850798845023459133804940960785639859757821646293244684201391660248979631394371748422775037586773440130026805627687893867318206156898963179683238436568104489383814652068142367009458357823677510858303689873180175783947187514003397741004217806640164259131060939808335793953623918606427549300680598080906748171641665248827383886926553081034597566338649278074534727172900404483775154010653099648203924987730373226803886254686487710983238418667339062738098239309136024442331040739533495740555296363044429145729975025613775001603340487879247464678608808323350707257300929577253441973115628006830166819481483462103609612576973036342498894803454482631410233063044388091182962011103127098140670345796043020504585030183087855854163863961099275377846498306885725972241691731887981388491530791600894893160743319011472800287083151226542951359438608097884481017354341331478579005827054270586711858885690444413103903050703141500888331355793127239028736319617643220090432133408413880751077960859066353153914272581105074340199052952439467025599329955118501786363786886048997780351407910239693094355821536171315104088507458411908494096077992142009276459911918049112958518352131109947351133019152563956806465608633998298184266304541636358149959767991649469866360489751512345707883868706567625645159725679305558532611487655339612684277513192342898633950255503082233415641204454024504648599778773655305663682287972580608859355225937622384808847677958931553061736025357386224149898169109218574323675308257560018101909943416776241480507541737278298429000470369341427226615683945818329933646427579523433601757766524582731003307584343021536006893061712506141392701898213146749867644323774026038465115947361455375850798484619290244047184107759096115574716193819730262248943468758216579666307876467969887786703970233622161501739470741215360765916306159504251881724052301635200865426010636082713778262885118381264723534855922597569907663600701929196608993932714657381939921843030131973768299026313726048009964782171551772066939059832171923219370453815763249661987574050811343716963675198328665077372839749826756306378599833232614480091692174088098216290479237677507729134802960162307648806505967804484163222952378465733781939620891064045647632214913075721907779755662603262161973808780580215462992512505430067539990341748097195948232644652642345145006680002099076493255563715970217790643876612981788839627727299596904310987949189716480690314096524766397225446783227616611326268256750966586392568223394298274118773806320371934965373571945615748165507549791454609324314958311462085763240005347863832604655146904591266248894752204217657713420908338717103113516876376153618307282527694239075162080993594523673017735823099980815472695250834148945605267679444688450635316433722089422583059490306310682447322866209603091584494072198636292849328070217868628744362462768187106876236734452339511813441413415496382628227621565933101875834184075843362646809658108521265774977742426850763517754813349462933363530794243715266798678045474614762864798314687054589158345130043217469459688515339525059257157410584535875277450561730566862987264431657747159765974522329668690354338105988587010859376309661927828437250683207559672172776681994645746191581889635983075921507163399668553492541654927875581392628569872404320229114008621586562698776075753704003849824967920490749619765376335366391497835356145411364090140207616620319365226655472332369622665396821299795641708153579794515141588376823847850589229306093638736453207364365927093064388523092176099546100655171892955309046036615469731357197311548729193167891303554982559433252399001272178334873866835036536468783002439437381918583835298881188982457030395756862295930245554452269973954007875138319071094629362088013277206784069330991603966910963902413203556597295948023167213715166023291347970783974137898278925621521557448385496753545606672765405056884828355061750711643189216700088862480286132236611589807616898833543097372417227379005954626300385964847624006239394055265265836893666780988030753004439385183915030253717190098780894581404160640564083608766067839797759076857170729842355549414012459861406240658221399532492944659719452689404808573721959410419311710915066339996790847380322875521498412450268312377999331236789780119989094953306019539139637686331190516628753105511384496519470938904761827106795401455744637778660898150621241012330921130926956251238288678991262733435812978211827266052377406515656988987438514485447384964075915212736103451543407489882241808344548411386148598747889640222140483280179889069785249393885599552351035358126245738594545111764833751401313847599272487849111282904108157171314264206721259420158205680849313045850812830224253652673011486974973289242957995684868649451288001578366207189801766966887989183665928945469964051751737214970818536142255635532056700851533285108250357461094974902178965095600670747334332015825507332374507022293511334253921259871911202460810198583265121969635495432966663749373062622104475709325890991175276795677659916781996036734728665886996156808468104376617925488000360690750737959426273801053434313379098995177971273863972458821473280717140860841669699810104744978415486786542065056144900748292597469698493202692224342283339112700225157983758671998611729350724504568497004434926534158169430552848211240961911582001048163818147099027688470637240681148853759534746175895830148915929621924268921596020457609739561412133162597323204582273954184249660912405975928817246484473677283566851605418576468303262638704184196099607366758565284407521881667782476677688277556248906444164230681062557402395136092612072445128233702061799918888308291314016242596332869946974251845530153161398460777194184647265673466894384618427688538082015468770863323695284679368632995869744681306201243540475629117862032654252250115219137776355173554950946569815101470115572316558362297927892001896707814275146358562290855610866228192333838390124731109312633179205586755947233766387733747815091263278904420297561894569689868962778236945344815396269053262059097160748396928686024352440983262201884276615574477694062221658002248954371422615311548628967923004233991614581112940364775112626357271416944330141016187389049963974560864722719370422482725574133837898167243797973634335846616768339736120660895335257548862356749757941100432871423735890153971987144327478907755055877669798974843379811040285913806690156607808110755441912792523332804953785270062934265072090249086275309849322188956617939051782051672746168602819499729247356504384681865434505050802977320084086328160277462270181492778478989329860870649754099864470299723534880599620026287295405102372841737781585243566917141679419538737754704558020623677599050586610549668258911432613870970601754545373643014083291077346579545109171514551422939800199083284874912495262121859938365839364056055891237463264866687530553146611773393339632870113451219046148614559209443198470649956657571866320746853529671063365398419586828888913407424666074856332655098280148468785219150279514866920193442504199557626631075675003472233459831800807167670636684475215536258383615728367645154083442010101986074091858693023059100638190410152778790079971972154197651990882091860334449993466258548916170134767939715479389761246762218725468536689404022944950844075706994558657682633505087778262070722148191119771918712555037290963509340651465796497632155027012539224009317228807826990878487458676205755449906627596463545457154887526312999325526795616909884746631732430377375040610847112840728395551574659392510423530857100711200486697551553917983108699504844757468958912935473295587416539656469463380740653945023729392669451727109448173058417355003787245668903127649944853394683672323470307728047377006011461841105674691546629232614018084704541263833351850497779811910582946437726882597698318058912409847135127768932985390622480928783394628231399188891257076899081570977989459187927639079191043821265020478124765523016154666847624941746833305695482536101138906629353978516911020201942690047225409736175172709727783899540812467617571516803766713833884295891099887870725255030074549891459598169528462142697498236747891154162561647713980771011872731924421791108347444801860140559102212864234447943288909622369615625016331305831479383754785733207697328376740681351377163818537811500726894681149591100096890388290981144323181217763096598485840904859460885271697119792334503781985093971824226805117004592063941840632647292733289334546273513951500861053785785286096060243720707015774592397508541889404802976193236630922783660296561753776183446646060665589040149449094766820003116920773885976239072027327324483387340454167928098525013821286755351735937047209266104162969864141761399012582176557143967530069628050341502038678292188659092010287284620024230731104584128327733050470569646673220092879689919088231526176632765730985813251985500184326081126559572322336655124305888698974339375306928957196666647235507499286503504837720237478358045882479433006673763022187489197926789466614987563563316949041855103199558293067271267406507011682999952475524010043005673965203932392352829568092966340641565708785923098201279317722650113750889314827161972247808766891096946643213035012543245975029998187250124626703845634173275595807130635887896301795589643560145215547985711052555057042324453687937535874120984771656538635820058654951987648896156296595729612377155819446803332430731520517760992472506696679042240727900993685377746877226472679798881795425726710833578692102362892866195629362768871834477131922478086042613844681769511382242943688095620216844259247515763157443134710984252761404327186772531935614793867880499910371778075487645255057686233665947037411885441368472816392229369690665187370990608822637489750096911681333290418072094498828200027444710781229734645106175354540939149662720274530946327690175675015758626287747917896654153481797630485628083240707027375548083887248634516893824609030905006762401283546896137689227678331331073021034123403032453829127963220464131652861756878738037790774312590063231168753265293721613499326865474448715924701568016260153055783473530381602207437437013249471813363879216831981184480608978226315741300416804051700854060085438574520096074116672148349959474690735461807547394441307311461084858260788621554165187465776794143165557041558347408683842112970392896617501204760350516360023886148293155293676150940737474437620781933181263833501217297359970207347319379268583461241964773664407418588809678040453149796434137012465690647943706760567117077417428355419156262388479155136149343979909167397641530171086956953274818648375362598741719831209348956666705528870756388667992897129204810388854857689319872222223553652803468794271029523609653856019120467858762220010959551142142875104214384798236893261067357870897762172617662642787977771870145214072684037081604386238743919144826095499816956875068211474726367468805219605545240731948759568652033843511254872922628217542443986052621979848668516386212180319134369338281584610870288376420963066894814931135183955311459154528166748324733380155760012387414848408054905199326193056048835106404159666150543953015746504160491795304098583032968561520804649072376990088036633667146402278586252736614269878606844518475736116005928307540357091514606275298981315208621100735637143741674181271261825984327043015516095968767088920125940056684545834567013600173737547802059998673486055731525048709937134059323676570627087505105385870095192218818382072113504296854316945596179180422665156912129213231161316095987767215303437022970933871600465633055491868514140764582836796701639127817588065211472025496672334200432013238895411393215203002720067873649261227407297274598118063595258616480925111244308588109068249972858907400577072814694973551732508971647438270608623694709030647783385241090635780766536069778406733995043321682779331366176654007575790566418083215915618977625764711357066338091705479926265446923749935209503846710331031211269090037721299093586413639812763358628013854480779865740231092532925548897522109892973274072849004855013405539044855081308791812287445459845820551564593498696197015129898444625808840129033853253852676293027542919886383987031147682863975665419367063110273181528083734879821736721937894990838683557213470719921320724223186930820441303065004638186303239547332147959564799419374064137215221068301690261252766963441676241697990734411328598505422806421104404597561614093093384543200965286051047058235882027536710782967907445634006874371991549685743101218062608319620969226269220659654755540190836341457514783469557179823487904247822124812374235273117878835839524057778084690675089906166093703306342267798498309628574706046367146118865104653231476160926689471507115972810209254138564425745613321060761865933487531362873435893607433527696752730358775777759318257248361807073130870478554705017676019872529946540040309722508578820516509540348872124941533594458371302454058424514403381553831797542221775052129018184256392410887561185608196224241650556346752038493270932014906178949234759353161002623103327128669896725305556665830509087795242621282076170652157051663457943461740299375280746930807369971472415169978435495416360713446662506627769228164071131468515118773001950666306461522531247355932666706060097175824594106484315968453561572335880805396733132343702347320496459961013101954164779889315434302078664559243248133620432325954975836323516124228719039041861825609414853694337080247021042806983448951462936948157660520828861251121989105198311248770886599573012372058144882901730934027107718606068784170724773719126181041645870317270650800849328631968774171182274521794695312153699039481867860222344909527530522698758367012141106990186761939279929292863985894318692131163651137958991024297113318249658237272784562527569591776208657489831414842796344871337890683498069766736773348554677206697567633557884942402203545608646193140785264263446480977750713657564843318210722397375479163279544468700800063058109113568709875885986165752962664051401551220945573935485322670711275508717305448262939954883596867886547114113134988049025761284829141122722135106500242576809972123346426577258746130795102481134146167682346974159807036888551200736049396646089297697561325615144126584147736735729365573109024727845306700822420945507865091244982109903067085682359651362383290003701432994068467550360353039652483757384281690385261524347986523683170491518170176928682523704401553811834866721614912286762907415450089489736651032482010901909790269435262073032607349807634416500286390480067179431785174993350316826679444905125603826582923586354013961880494628587020831938090623160098375686931379259428043491148650977475359263724917438877481244846751848322132275795806566072705912044028997412382246218059013417481399128593418543632948821878168104756422442700278632164798912291231425076230576279276931780760846471134553275530632528064651540421836483536013562498372598751535470356333573688454357813994667534504070210909765332174222949404809681386287467821599357085758808200634933918596798674766892290485335598879367735498492608621558847081376037126911117988834187509913932996425250150989078221244616326247225262916530889733002887108381324808979211946669110827923043885062833079332020643143282802138908987369418569798064463934403808650392129284719268975814717229021191019416584966169755068812033295010744542988666452283685424774193631430645947092961779652864164922337172875798397189875881077774643439998279999701402077263867835053907149343503547175638062326418170599240250033391313445976516386913135543244685308247862114320696497227731600657251926228765937840388704296156187009328628945998636602011517994922158564849173520103087147068331357352193188703687824643143343022433995320581339274504124578210520548924795707968763921902592119722726578573838420255675124785707199060358291883520838327063899404026993970492381363332832071255707143838477640166095126379084323443444490621526810803929782770530153769205210571037183765354529311793523750012722976533207669591502758152555417219772104327402795630198541864022842543157705119599117417446699668358616623193411145500482337956961181951556779434430314060774160515557164030171710813725078807478265408428052636955557448147499335243479244922342500694747784335591975212252066339064573386398757779931085556676373213272960201841644207532938527963920871715199846184442305313783657075564941559127829844745562341395714545332452510866755520520872199878322872864191178806120878682711575595989698009751033695322003671129200421870270080585566774151583679124018056993568562097380197800922276807285818373475892514482597593479647427327198552117160320897926483995982189018421989747788458098883640347085217789766660512260652244909777340506887569554442634633048343936904179129201699223042806173941770479550955153299196291721610217892460736697486149826166922822830456887541516913013337065055741576756039279464059920289371755558372595821120616950536364611738707708814299849460080410056282524041875121103066362855851385604140156365568902027519784656827693937638035594761734866798623235214282998688468641963310440347051670037666617148039069915633312050787999351765966201917208256543856517073957122035603308048445845731962946878044258503928281428421935240650625084574898170191354118036633474391233270626046582962193183089262057085199206056239343395414690019559324766118224375638478107899318482182536482281608504921082887940762374121869556591754687529519869201147747674850988739297720481156894177163405086726082801069613033965704370705738694173808194384371698734495512316721484707474298094181198035928466512230416810771869374364830055322584708313960048798704001799001312744853017840324035058148404743959218759270843176917298534150974799170276677348112650331665354535683107226903739766548707608283657715842974489505613814563339863742000337383962716227177940709313145908237763295623105337870768323342419817110657568608565690831436464642934711111095458913511831898310700030957851285524197399599810657734115742678659368096519917863419744481495635417969185152732734131770923120831875351390273883925653351204351490577725906900410184461821468967450831797220358840564990055291783235336894937936898850186827628145047283738452552331169015003986554564146173512245293062893168943315514676451541358397163787120034590801890305752567281277009912093719619526768761152722164785094401907687648436016818640080638086821287980475765550375492743180003547630744138738379931143041312628998195561678378276773492767483231638078667538283070130393515782935682659626218895839687827362550129302646389513118198939114671646614225484780058536977146053680025495167783279843391573457103501195439014262617616432268090667059807129604031120075151239875906762422972672887633227013841658969761937274767336449894485158351554048282370605737477901522877368170804358320045230552591474457754736016202484663416319885571047077883529201953699470911021870326321893732052614735234287888282957307200482053431097223773846713373459781911697812102445723425192431501208479835703724501586477512411239424738447517039285845477374461243343669217779813634473123876965336992878830772439757127437436246146212590979859123631144282375504306741823627743930668225621720882984581214069493316943661268593265831562088520744941047903786989018117680667446515353219089237882170789972702706154217457798568360363499519361506859196057405176578408842381983816815629566759083153589854045549023659612289430264485912878592136134683314221695751067717765026464989000558960252865497227388193676817014792618319732089782271586494707867142450076092709912836323072529680262040111836628145688724249677874683563857831054261980434291239550251446446755779486154131459227229308244763043301726688949358316527064091992462241670284435034638393830688803560827795448997526170015729887205097289252861517256899322043985833427274417373927447120420640066272896114822725086451774539265562167913239773073402320451649521529867228369986273198640893511136534187888514673782232548003635757854177826821273749232759274150588874101709298112684551264368903831139765402574632057021017302588524489603098359977035844952476390957065648170891369702495063552778592231661711640763400616289229222069830038112981090517558827943894884019297567322448232186407692257564676397362455969143739451858100274620756182184497366442740829603610870828973340040980384619905729102324338797261976768481664953271577414163620601574995253498491999023222325610487174580734228756296504170735504453832187506482002842340514172299639021080379687978964867389690215300812260964298139258698885258473874464390163090931784834440503105005449752890405335244197020600159640643654485126067207810174762023004707375797128944010991588988086822915053271984540427835095375208973688541958759101673866851784874811415199320896665507670312525363228093398993440595056870850920461200056628088131456533050061104503358216485327259336453903018017122400602278800501255470020676469605393545016380320297126196220779507474003822791384482717752031846984347290897206150437975521279482908467462432620028648954075843743257474507867065986696890793607607422869408771680085820529070178432052051674809033495098026150685111605553888575628295299083185121417486988027872835362193325036940148626041729162983281145658394009794793166115822414060500046683055274488658025070486340269464374833129759923485781757615279077723095057105830825257962721971876159227368087392827659450964008774153071486969987878530820036535049926370400381474221223057516824180386925218632660769188896666983570585287610530611322859077041546582798778692890471104316440535328353507571584274710172326630501690262421236686839464400222686027797778104954336278095886522359268954752595847497418649977311376667115917707335343870022481973658950147991326806834896115802112017916441440775311900728120820716047969867135878614520307340311227126714164226805473193956246054014959761096061627978170364392706379129907498316139928819742068069122057334377066811165943531092622542893240191980303862860554446913473486221825519941782269632511515638014384594862756729001881291713321509683143757868138541818161001281223982984819876258417242073156910061401808990185714139669934771277561687166473499951211923936179864874410448152337149270080789696101625744565989400390535116425966302912152198540478890207689716399788521685161255028623426755960098377436220779462565712530623123441896408101483402913964528968135850232589153379109853370887373019207867705782429084839752154216314593697049130631983543506496036244749625231284117229024608483613964659583898539338661500304559514702593753144451261616361070592637636748422167625168642366192665439513622767133244299810422319311552360995179255699342913386615192604620498628594145813852278989979291349128070880484555238616374322057236020526977844089487381847033745452186793698517578405571781733855134738017404936523396722694350029145816153994081554531887330647181854597130388353694257398213221596658268500277043640976296715025008209400276956813234199934785016177034956837401232141156656728440521518987152017510134351944158069996387080749474654086517493376326535840766420294212847713435305823805411219109631341370696851079068378485322878244882505036248186708490697956074128474901898616693696311143076866570444772069714462306987188287790860593257121320064033215515940830587706071688878252899430175619410216517687062817811217352146855153113485455142999994959344882606412692718441858656821965764047668196634604095434813248738499190209697634777141182123170907289092148870839106937092799843573873184514338318163279020416992302973013071436217634305383895235207615249894087395782411343818210784572405433366345643656646398711238647438992883026331376063079653414540876788504237200164479744882677722747101695168992987449043120263417654408463956598432616599961722785368558839824655759985835836567812180533575298260207659915513401145026830212594298241155149987031616151586333569310159083218790851837925536829753635532933149543839641739318988094566000591072605394630084405875878058231028135391794516544192495493223654253019577334478928347677779776243124314424653721805603386631916065460607303185599352919624751489743015485258397931393337002243646055354811811482500920590659972230505133700988182139136994110145411583156714294225394360403139584327782163472312091510126276093806618066724430412700041396978173495633424752901445367716054744708597428500631005724831097696677814209385894664000895620485085310003846901908727638319224211738343345048293261707201676751407319944172371324835883015745507123152831590601912801071340036565181381918521203310295040082137493462485162547409435014402361291930427096318494874575017604972368430408571153740815455422637441520458613910149986404080217391985783514238416462408516618599873646090952653636119906351049310182964223446174072012427966708051996066414881005528290848089395056565937705518300812202798417835243274888067069939308283249246488890180909815669337896747906508635125382200045283497114711506412834427213480577775323672886223233356900624412146266404554852332656358061699969846043282716735366738545468308261600171080473366753962167540571893090273062969318839337123315084292245960596488068859349043918653360136814012392402455958625372397274795747500937953130910388135276331403248481342801327884888985819893595145865108784165869944812851252187459471630690946204557264085831722025766576977067522871295430764238583650798107313442352911904911189473718625387228654563149805807383630896648951134392315466718044951712921561117818304908097219000885169152500053495075123408613832133147425293285527886613498543805839497437643552382087616993935877541392679479316716852738559875106683018020266577593651800920096259091713514649255797839931471975364767216556808670382606388060834928128976695304575729626900063959493140997470425025081308779904909494683171189342091602455110763986000715134195694929554951320045975032621779938220284983764536343008812938911995771039420183357977668465408266829397485910075121732012548770552891826904399218592280742606900231701076375165979853762118481398751557145705293749684147666137765096342646123097637228970197482098348643360124856066761793145320260188828934820284609090144585113918024748454288581531805719418381188285949568412262201995343310190405439847426532275511632858169102573377825251779676667315707975997108977911259493522014632700298719875804934941438666729557125227239777416626128445422416729765253046248419061001017918239453299068468329332643922305171203112715872150798319339321790102548959966427039477112836677382447445949504123888798892903217475826737751304714316715938030656600921925906723779654101094714612491288243480390170802441046148514249474069080739373917418007801506062368933312568875263509543289741397972478745402505712971401318431371327387132154606160180436241751308393038420902947690639007989246947667939179905788091662471849505792140610392568744957175660543580348458984680849131919790011277554845471220289379371355180959198593426017250935597287672708796243981716224644292515507403370752622729986711672473905140299465327642785912678325717309976660140324741978195811016171836326012014905266797671173154970848921366957341583718022238978884905486704838297100842873538625169056711792743424498530682401012389631524245660735135807612050245600250908129664730552033397770700748344423051988198785022346941006621331280449731807128219371773127420372715360726199155942039191590185676904098962261388433626662270372117147026261061703295026424744374950577052989638669854683816989967623115558107953271986889676038709920295319427585609915441263634597757772897945935452312933889530403502148958172070753484719564438907803296321289424588966600186500466842127148950133124952226590830462117551777013424549534171852411376549318353670365932914314334923887683905874755821423860329847482027759985794691547781792912644388220175385526988942042805030567269690369754142615494870813038896625527445698961051812448123700677292492079483083406949478462745567343179571252460520519579374895759358918424661533230415609402208487494742767516158586403009241165606124116396232309521250516569898272778124953013177604711274192482171942964137236238001031665811171503063381670751159014684073890922244817530100423867079282398256688672573783367217363633319823286253599112791429316165266821812513839370918311264893542009497270711596839481096996287339796542732553185381853330966901238398405030188326060524938222179247983372762287050087432715738155963142444584015480626020745527143174491737959289990134405235962611028044726896093398789663158909928165256544283598662912176719592289273621975257797626737972622210203824939487941517447330368793317041842993621329949915406462505151711782456766258748770125185105305766678056386835446971626613183211112001399203015369552373909955632495131410430705973492751039876109298786700701424367055357419244886246938426370606983923586553265643222771639709872684175627358212515876655566281654484415673880836117815449534961353314281086629546652141478040186217986740100457593532402742774957299920903504604173841294354310082586987059838981383148419134427029712406311106400402855895225482945040420298677424617585253415096903796131059086646588720353859002687404823212084649294215195696256387047874015006868779352319424505953103411604868506233952709598017043405974400366198469065472559167669126257637748430711803039205481357868419383538024024163251448761271345967992379971152085400029125232240077983724331193334485428188015796930306309244458385863373041690027795581159369200206218094643071329318856126693873574138857606157230617283459857643113294712005985815940079135447767427729776241684682878517025718500373944141355595505438797769463545043780497550333493996328403100351533687256643943029390907101338285833961919515490488745255693107978505644599663359340378062855476786846137745011532907151578690100133383153016853542141116735058399951568808343503421924181092497371095912800468224092996410970852189784282501507649173395440080527219125361908015577667431123379250633501756865050565638946023857133078173398127135955886591433293860889450632326492417044400390725950002275140330867888687470972382696925700138788702546909752311824252803479171704421231781570679526349413116348368472110821640147703531116780914731230303872835625410949743678824684838276779408398552913367655682301661148236927982293493670386069444989702945002626092977723137949389720046802404302897614672555904841902988665807963042270833199669425246905352111272413396750543586856036588194085157010690467417645437264938523942598738902331534324396822524328485875006527259781786760826447727576141281140197594363756331858679005995212678099282726060741649482430114484920710313141895161703917889511464264268532882438410690111440351590749963428654507684280846747276397283495741906705661313628552184229167803164151984016870418047121010042333165310202998954478863063333148610106019637755611300387142629273994063783673677618562025780731283857344566670220795138822018680306493440844461006153166757430901875892025599271093143010701163630266521590557516378329214799740430802129344377362905321339311083560821375866449119512497094712722237235362611699708186228295970443074717315072639871312048851662428953378310873956064493519655649743628886888602867136627270262465892808498056833727091637585244087486094408425818040963389057232672934035205577217079320395813640731108726911144585269190472996399810552389678980427783838623368007552827680630355570846629828581549434856401387591322828176513474120375080532869686188581800817321403861319849806303650321605617081718741304656096856394826096707861125600917061105955479551302866996608494413729922248773119878102640847113045580635218832573402981269733931195365438016309296983482043201283983738057171478121694618587878550072688625789281146005142402120297614428112585497354782882627273225310716589117977276402987019744911940307875313341103525549434822317971540292960254214918199913992277094640627288093630340387519826890857667793083978602794612041734868058034883612068602721364777546167691908843584442488840164701857047621105805441047908228967678509418322095840126127608075564511242299086196388396117376142401688185931553802636725839867247331366550210418644555323349201993549001093070786844580490114643655521288925063868753904933563884478344273397561005601909124348799834713097722344676378361406050437021041220338683416306027955415854430105277455892839763264670422384025921676775450080799632900357746713597428969185861930153789609518587933541368312402671139511862851088984714458361095626432001380365973165722570963979145929548204920420666567620720236935254458420443664769267287611287080085677434010088205844649772908900788394151894231643211063786258490164014880235757891868013197288249946796305647049848006069108786013920540587756704899271416865002461139363363370625861834722761970151352630286152601152018388449620988735877055277219348374196475953596366673543284706852105328957132198287231606616025532867037488536870148312202339226439583676852013223880784161182260847966871523088760084021230044478777556809137006354950598198484794268860300450787992525314462823618280368974001373639115448232357799439929013426444252307471244713116630313494638383510188858513250371485250759947944559054802277492593703730762178814030633350325982328544939269090204113364793912708159334692579027466488558716311617053588064255340912827256279074455803312384922346590605079165562866300711825960412991400746086228688406653433274743346143010214493792338630810153166090280639572230563789154405928722980762014064876518870846232875135889506855937597486618261265292120999599744761307620606065197992485722882907013013853233011071466809514583240712887203149563561738497690632424325480189753702799595423992604563926541368709257225165541728226614417351093123196063431335388068357339969675147768324779112683936536926617905602107889527103628817674059142333619419471042587871104066977130001592416950970575857210306508229524024137070298311372238788557615280443718013908299132944933819589664091072694547023146138132482638592836362687044535484259029847216569396510579542793949198005533727863414638624003528810023081824498637081472147004084861670555753363920991218999596885691897315541064507187294608403654334755921468306859411666421557251061641779181279489136406630865817935760564622861813360340840718556466558533654614894482628701759776468514119620597983064829317596116053926405389579559977166206893913219232311013524492172707543709743101879302644981497187298609964987768847587207508882585009280667354135028990131096936220533929161722138693286236279513762924282141959500669604769370115204726357960523715740395657352056601250097946064626943832636586953900409796026319801427024819288142398366850585079904550994737489837315996662486115813150765214441587460742751903481535878792899584186647868555972571623200963611666890114544146461183161919511113293504576343533537646090255792845690504611815837522326161227486283609054612398484188313559082885192006370419196642844119056391849112796428570155448568701942190719786031283129010127123589388452483541713557862485571183546349282661869571140044301952266246089134433142586517753050136142542092158350885725230062900614469463984018358524425491726728997828787783757904693793908789608778199290674029399454586904346301379314161061626077917828920082022386692775662442201769897927875051162884075469901840211688225615600450654205402831923292817510922445875518029085458518838584146106819020876676957128749079532073626717950170931789259766184833853610383426103811070311104100659727318902021242098062551713479351851042187820952796012189541959721851580479888260248164431877462345401338638552618111257131828309277449883091441006592464010359771790966073941359297509447891885558958285527138284480782073328238387499857108849189723300835792554925092496447606001335118263908618625242702804630170122463081831775403268268320920505078789040464522439253647957535714980848618528544714446770062675645525503276946425288896003379635868774601958444026560160784550181494303207150878699472090304182818453810363273786495062254348531207162518326092351385520814720426190675583423031433367631666234636394681826271124171716385606212038796593056890291422704621327218571057158473908171263860845524337760036467626586960824230628516813686244284120656449294254323796994895368725872842407853891319907799772354121369270606967384973156786676927758561923678706852533454106387272031456332032684361422478694585306324474192342701092327297487338750960842202064259649320257023728176659312972998388023191411263475542090872591633793632333296137246615865870505164356066330368520340788931344379039286108842083573112149800582139450866014274470928163605281351030633643944635110270901064763095823160549994254216035941300768083877954502059111539500626569300695082117645706670888510646471544906152993502425252845595469810213036465004795717899953336833620580862848898131132149582202591172367366898872936134991030937655306189142815562177559161422117952570895248519406008508482640691029019710937768373912495227650984019311326749677854374071310440290094419883613358232925457170625224171956949045702457619503967515711081579756261349414886673363724346186944047098607108791825520817082527979950310211788305554252186956700513635553090698266083012182330787832244599842994112564338413245351513362155947675175134816504745451557727240209338693893618878912716108507223358974687976093792692199813636912719725633825395206871367789028657704722457061354078115528601935679253030751589572634311776045458953656847750712629224404637146387671005891387537342999409703424320567263853190961946150947412745634833333528450721593299828489766407684548551286064675861846663411020947517736870442562748097597032781725364304820753591756417829065472396258126640551038380202519323985627698344098642721839676335134121848689793447167039183255254523831455245664846141922424781987280538328260064721852181810174992356547953798878123327752025507862060994997714489423328116468198305885202425404221217682798210930871921949448641164738486687517474227361253510032793498034832944207054430945553192881462167653665440540747335553505113222123780115958620657265539554922060341874832861156737043287867595767563613041225376094241601988628543972189302100085697166515554440566287652671235230043881982480558834980125957267892579289546516701171245407589950203943327347614568708395606910462159403649177665600045708818208401724581921080008285635617839430957111670217906496010896398721869482908726306038108660016551953223614489936710686566845922158850330684186636322572902679806306993286357605826225302371561212103133752284444675473903877061440799563790737888827570322878829131535164683517437835686757485108064592328140182174410767670239225673637920333730395730164692561387882047028946003777269217833016839251276502292845084911576353816408383926655726641499263187726423093398279911271855394918039942930866540283964781663693762273591414098449611240243952601044065588764276163388219311840570275930774008664199692015095636389656388092988634710410197266235583533491992485228085149434470464565729295107558308767171415326449580906227591219944725846312813355714342023877242390094023499585251621305253995807189483343979531177671000465196869755317455001100986641579437611941689736174681951172502866064130672641319631831884646311871343802401132494158894572749597263890366942078832691291212086665075882891172154586367270667930359277738316946898972083606531406464001711060668737149693977847343937838634009067899117850851103654747863465893364306738325864516237924828657430527892904284886424603536159154301611257318143881716935905836287772479118128583906575122970797209473683651616945822649501342540741682701199708218202228063571562302374452207467094207373885438385886588084276245470967626117366978353198187416985140426022088912795534477120545247773567776832899357341456409083183863910567373295964071334570148815055404163180669312005497837273795817723171252266992489310386645943815171959802909094593257047169181591855701332809337895894729102128498209576658684527902228762583789149808265142107210083306075158244425864219509812418406580575812739977701228625828868001372686876069858413133920304743273892671669797695261232777593173625741163690730364791275704474950745724294111491105599774905669585915800595960581970232037993007491602418607407122671229389488317974203306241046517653366111413559211930181791587421447640276830633021178962981975310982726279380651548602456863045447091764763999673453865440770595402110144566352549359481962275945949625588276171524168689115618600438264407218098915111920934740389950999262516555730479193177277976592290781343901652224165800726806404920513951057945665797559965093596795663424098237383672103853066589136959167177071903188624379413288197788011315374977054897297033546693101375001464971303701503421419331963428201773883997640782005334620686457923452331687426585926464073984460269637151284117204432965567829890190446254721093878307317129108699455503740127426054396273254100392692675218052913495577199508604784655735295255799605185744422991672408033264573799554105420079047830195785660132089584316374295636636310814873714713785502968742929716752804395603836865101924457404255656789983356643658228062118112471057720553740708037848787902189380579512234914606604362842238695796575734537483291694626800505830040469006903313070815002492523163320121021349611358485906922165688581311151892565036342600099510700133801646187711709306932854282966563946673963875192116016539838115957458546081810856137306598602231068509952162464819128602335723455226198476531106622101832366731356331529829195542458324924729555685927037844784414832747226441103722490835592079547635539193088616411563216335426000546037513132684600437355172377395737986705272204564292680883384297941693066905735277467341684676791490070753758581365015632274537884104158978162634388272566722941603573107722719636231096986766150729184141792562383132319081678495447232049732270967881335317867524016222403768347184716340312447557888174408056378161173906587842258216242211925851115740954079765896791302908202693095131935677873506974586966302796528758575554344264667794171242014857906606098373520212872926402980777325676128340745092710584901589846508814600820279061230098548115092820022264730979996586292479882440011914140985322179339163649986001151600663523905035492630480411979848458465538309636869590324425855592195409988275741383745174236318278616968386561967533242144359722815726236264810031005368800636277861742804538680134395740276769515619290085209227658529542623745634082034043367154751592767356113370253175170647922522217053208214132257843207039785937911200643251022775294202418549900181698081866126328700981263320743943244950085211018546060404318896067586594992171701904945045183339880535768660546434326509997480235246996197907581153645189555886806171710441215388509530573776438913797308970160253172980881271432856020294311029625970140409125160999695886409725291791423971570346012679022634164156465739691453163090645668854867588747554412125173299239234438098940912965229998339909826496777381963254724494091522702197306868756077220808933678523605202908024263039552651719358090979795910585115507947886418919774648824317597842766683650369444298124198030953217123019479285584718975163822157426731198786493918683799267359377789950437330223784097664915124746486295394943180476723304619588844857886323637507051660948654120670724592861855972161049926377733158793591409469365155469515258293203791885459841139910970285790712949835710707015529624901157175963817115281737872368408400497767312222288936790411325965245182035994297836308832520946963154124877560410262126442675123082373862796413678007656379824939917185682415346925023738219786728720411852905899935086077360369526572747908607329321736500125052622065930721502110483994172230692380010830408726853966244648131459565468479084625161504013206500825020180790529764597136390527289326641098356367201096856756035971040502636371299697529859398156404340576958933297968731426639167017907008966975152544776984562707638133994504802792662316821747713564309124031594816211612900342716614595999004025576381143367793253359425359407023476768416219937225204463976240526356870400177972845058704320198075516117873422777107955956892814976259077913348609705549160149254462459604961501629396951912509948059101417787847832077985122461146935579517785056589514123049002800001759434089157443840168146039346860989881079044338550033747386482044376234550094817443181483241415398135445652063016918329833006760447723423647014129712577709510172333125321413372596898106912920595280168211881909472913706923913950313983852251180432664918585363520449863789592194648335311364901236694245616873603617889447502691245602592614564975065659949187211702601692875181760965763921776048317820059623726636113194431571078734521169738506931455093207650248429084069080165568665275360392259340268883101418825800871570881075557579067892404476787754195999803196054845142140807202016931486672754980730251914275990938840117439381334220832783615486068557752051177676431190406600251250628726450805368483695072353757647207129745501304021714073011292872159724947822277196585192493512397790422174827682210515919139131571289457099181703019110403010069172935502057478288606654616818102172631851638391574236252450616264484929641968297149195636848109358891468556490629367410701635682106178281906586474582443142706265928328811148609169732103262145261871847123657344219535330381370666280614575571839892465114798086054213816951371762588405860106023128231714792200654035761816747685571929918026818309485472788242408214113880594940437354704837427911648428998398155900816521496053146411133162388912191530163183485175181759021239426936590963901242921399946438419531248153883485506890732709748321159398825771415485620535176416113142971109362106676526105962580969342369372942346855015836879054853080102846429174904350592601693293536888059657226221670689757014244296878063357354172199846392262436312656359400523109239560136071056475769744179392200193325842987204210955789340372824993939171199282210065130641837793038603226030288568502320018418117304383873832744233128778385553778862854691374672174925935951443473682539418106241850025250406975669870819700567203475636791520751600668236891579945993802654019447957026858094259990797194825269617481133461660215988941330112776961408435661707746729868534459607663403265289034620528729068357241300946217815215786967632015452902961463327017093869050475092822858866690882841822978558143346007574742715906182140454999041363533193543564725873161815877651394103409842503316603765616145303394846433826917271087431058077097331044159807201149354315680161280125418675265998796402995834196805449058021102403647007282864668260983940322045969935938519349704683604398377293159552562798158383879828185247797763922884055384359678598973987889757045093517763344659154502160176035619049644151144789943044563865936973793604462522619722738252181692879876579648627180019851911594645870544432756750911673176795466555872706701092606636558681012648160355124511614755194857311845405165352288144152896409136996446461166113973853043093783345454507723939885984073343421388808898378062908375933929727715563140683047777605720465359431842122020294232983073854454637782842909040074382224079877147698805854899301709068648838946986912579619977413700304891474489933025280938091776306630996164298360705361378694995968357094435210398861428181087574758225802220602135480738564269551019045425476186775319444545945830930108718668993410326839591756486122430141669475244233124668687824919946585358870348827288051291377133005245658412972503478992930581585096044541514514137313280890433236094777326007733567123632854421698311077196674209020675826414014561700252983298668974417499754754699421912203072474140171882321962242854100075542490949790844343585995267378126587826051313300157496508845854527936213767884706380728677296875748384143783950859397405418354890497548362564019479913838649914748957900533609549193506188275966809044406448701803261306695394290515569235749144729763147009007392709147268214541200045420864299897290371882549316211835090103800827507028048192567763966886062120945533292131752613775509794496834147569796915131656287129801563820592888187441324977670382883008714886315409584230124996981076054705309356684949788844357319880576887357567305889145726036527268478064325467402167596141671195862083401251585440235458051970666048691874017617729906080222330540283376788196973957623517310350608210140077455112383191587122890653889724261891271232607685698858728363031849726493950646269409981556122225664131736562636333363451219782158871467317620979364636222383773242726066431727374946172123944609383709774553820267788611897347973896213132022795713386766888251343466297618267962604977015480011726244854819699090067843127326641985550993088131220641984505089000669324774999004842983216067921329752040946546895664025232655767461388415220551755087858691946015571196990566328916991378526906359123792286191952576675895479003420320636443899415138925744951974015076523027827256525374575017554058363948212403993676061418192575245271391241957696883184235724585220790151609923507378735030455568277141327147257902869529978458889959493455035509783030463904876743888401002882833020419637785035651258848234183806180457391610670665213031856559049714766154367274513940542958407097702635379070146338278969556927292867115759977338661593243530794399976433619962490417403038752321164762627383474806283449620742676563844167732832382362966543575754999224397504164722855808930016337401622166402103315745792490404547344996080131885004664802586299769679931653452596180995746186692087881626205674295179516517310102254270031938543699765749340049992022975826225274558542143906803169696064575201872334002006494546235821253546473748104697242710933999819975745578591462089831758552371191306704676039894485885256901558712295147785527528458606079396237971800177301404185881704170565031981991109616939716341063871370793396073070265845194776132518936708953046848325191546841093320626070698709616007228787840636497255906885926404709592269291937646276635514573533542626593468086896824755891247483846042567955495814020857469152857884749756531640329164227191281239557774144290451739591191478830740383140410142698596588660243902904409643071069182383304043976688436914225142904686596977776294507039451971598356235101371011054503150428266877266078758189001452409918454994878741875066367499197521177953459104247382687782451549190415830391891944046701805379714750003384364305382612670904492364477660370483278265136090895757584769140653864224791275827223489716013613599330703680634006392303829887927338259965794417368411134390256880450347589966414574214446358870565619855272678912416050858054888317797229647406836057740744984274156210170755883138134120074381802393141895589674814345646904597000089281973162426910177361273327299753157178138994095412371376030471785127656613936701610915942751852446795006749659057092039094587102019996147198286976249904899578465549979546551608783547994705101635101577315165767629018779496397821542452152076405232457322055005067310344754579172428776539268231234054948401354742509929603092469200559251270306189180312047390397164782835330324864787167993396811595760205708794603872121018845470737038886017387495653724861366471492523723234560401269335192659902384684056399115461920870970641087568347581196196852840351531624514039577890336353000063214099759773430023956831241522209257551327943777010792225983790142165323322183830072361511308780645139076958162579516659551994448983876395893928593618165998521685868598832457926902113809971182302956647858938816919207247444022485095829377473732706097635031177734164745063407013653883148417771853909280825812004498286854464461951252210674990086573555001049610113009843008105542319658316685143418470644764085645470581896218836746834340794011488414858380190846902185333222271188409020736163253080486408938902915792109021030303724987037918165316880460711712500350941821014104007377306763396985330427337278509471367744826030668170748603607532709177627461675962621872342723824114656803214889521097718875125577549208896495806028943505507436446753076898773348151030785626313591401909674077951149961911696106614331246608655263430450968741887870689758750417163118746529672545482143102861703629385938020441183614091361020949961722124608407957126425836952050699340259956831863873125433489012010778305827349796028610825982655312746036512974634035526056532658594671522507799198889449646556328551279212994965417663868270927979033243408515885410959293691366419402368593599743632585811062796047263519545629092140337507459661358057159991998060780620893753680506642039622429355571171853106827339332548937085758827575369007577540564276349980490069530093045626525083968929017489914270610300885120158438381364395212036452218198832319686866726055521863832257790276430896392372658970684762770034749788828521977582683413196139847958123511794650292210715980659499361073274497848340241352070498174499693380134580212191656020063498017570624878378455706885934845196180781228467025996308053299425635141300140826574052908921542727381716806530783535780793531800808278844897156765843697859235168114257052975096367125693178212791406309822926161261625658388671327014482484107414604541584578881466552746593280784636713418915790899013240809265834892055154969415050715150415442869702710034950395404441766711745933315656751478822369733391604182048534977026215895112505326052456681038110794987252980867113755659480213166819749682937545920171360256355593284121534275065603667770373100156354605631697315467548085029247734944436590697628232783867671353646823049998806844201576233566677474308989263727019548895310803475574541291881449512207034367415630845744301324092173950817679832827113898826836194269212866378340302292754088171360202571630673140985907475003231117656059894860459458214758794582517210656684491396569842667982047607018635313873294625138428485387848550984170539846931542667553900529589188566590376369324268599590856125404065892992413135801751340404395845837968424322629199445629119570456188651849422258958865311544636054502785571382259119743071923277602779184710024505013297285894514394600144557126960563056683980750713288879894139155126960364951004073132839542510620773342854815985942865455215168273856090514484732862764488387817736119391297716972080349598064016581576207096047166227796022762597020508974440035483812987701514794074926805121542285218757466894589096812519597781881550038601171400470413011124248891916584192538335682334235149114852125628422572800556219731466552188968100957890486281433424332927559735435791610501403412851657329938932998959976309964112668602830625899699297082213976641673252453677872647363555307420529219841229396372373305435429518828073999857957515929221547106430670821974446625054089418549008931751587119733217761331321855350786984471064552239640676938305289107285800768377183915394845742611905513976215790757177133650966205226618275704539653747684445761864272124475654242535838595658243595742519252540156051829096231705126633555977117715558793401920862808531355466562359844831429391608237534414968609286856647476333672740373429657441626246190376076639488850232872718402003403217888266590758794412170857872715648472155305083861990093479858941695082071391404847153826063981721396178513832503448709055583699920780327157892513843280575241763369123452799629145935771217152114186516905476844869909809771839051460170560375044094105193718016120584271022934808233638289098455930572816363074019214809588366641448966902720549084481922255174401724036413922623059274853397130904632798526819961184924339971783529445919802648654932303376251642035626984514528113465514522576731215110497487961721967891822383339853164721214669649001790076157874813189186759127470191485903893522936072806459989824179496441915731180916150682208012905481072992202308741606316773675472283159310503357125509669979732083190322713338749982747693141776722802947526263208935736246359228974095841088385557722286868824018405795151534793811324252361273510750928763275190350607067949499039096296687757011845581867905038960392963970269721257498943759594889717759433257564207780574848509080303903842580165467793054375991637432582105905355734947979256927217323537285468212866238783147535672782833088454176740563383955363873257728160118280761476814891260051831553708393635954048561100676683505754628082850087757896544163143616895921919344184491722256516366108142546960915631057735820129739522613386809335984057414899760336498093620806939349746384894831005745964757668595487225607760879277398735706652316548678083567320137371571750414304738179945253327443312491336027014974979032065691590636247977287331223888444247333538103925024532468538749324187223703232197567769688686108522520170098222714209794794485952069116897872871436708279252595689146498982946198284174927677513099534501577850882322967049176711250838219522749982001062570574028516636422067848707281719179807081638381279964018103767615118752448844722453370750099827769032916663599796528370566279947342188639641018633178725658572085986867479652739375312243790870378136208254969958399264779747022393918777216893310504874703912741116376312547950914422097914836773823964805044106859884369312108167492081587235650247238363177397727903864427195089822210813249384274189497614752566723178926531479839585516802701641894386553818796217642661331324155189608865456014828867799843959653332117310900040107303957391082942187693124216003680708948358285839880310245197422827030684777001041185287094593441642739624163315446434769071051604242377886443309295817902160800142900332299058242072898294650460963529114880952286534234211030335688672044342165849351745122915825357255270444497258621456165728080941858635695959379759927985737466622466384798776522057300147892265210032114432177245273324259629127508721043440362191253437866273699336060008781907234560923457872104899630284081165649372333652578414750874130849355838528857210174346592197315548660538724468459068749157762006869968397559162620782849056183989332966604197490182563198942658325990433617757847355239472186275679733126263217049485675730317957194637842368801696004157102220180360879996865258857483722869997454432737711335662164936439972853420098986430758436909342439367206339492856707908042021723692294399676880515311721780042226642225535530228343385033935746939358403982067010859601263141777980168902765072113491243905619011996642959785483022825858902453239339868984776005735081461759347153889180050550087551018330625175676030028828819472355110560544602945996132632501452657630054171134383705362103081832318289981823358908532298879647402284542049608907203978793996488500829683309464720214133975412656287628639056912573416226371294969396120204192306071915374818626413084811513985347264405700460645321499205493311543913759390045047021157900304701754975926966053559643392553401953094570608626622351718010900896188087994445476428337827011824878748691788110322376080980264366120171386710277700596779350789972349105729483860264147005888053519138174780492714355764285708356544883226501623924930256773087329675103760051343787099499901515897134069225142447505649772676659609352840370870861926030269741242467757416127128197715809164208174789556739494797930010847364903511135123211527227735920137005309505886117723736040295625520179108463651234755632219186623219620936105267422242509294991283134187853382167001553576555885784407800173189386365226427639039317339755268969245555285222839071345759121208178232061812649765605741603166778462945156699178570204257293838780263004159265728383570255934947407766438995795691159124065530332171176941753224806983507624087750249864936711071284162012189432084471579966311675952693080896879226289071841913208473859475033668928183986956949250197314728125590033124918186623223997276060343676312703688296120179333464287385619274200746126989775724078561393715672237638991371914174429800645982890221238737598356845041752690066690006615785699166879288698271553338532493864734426187356675448690521028227472663151011220566147373631447100297078050416694952236108299091914441878288944187501960250245696374156076217797211372342186453658974668940522035206765954422461988046837460981503185214860576561675356176514739905111816993217783970057135699777165961898590398603451895535208300089169640642879157162752232426714414144645743083783827913144179779580634578216674300321043664857826384146520220825025041184899160165596525784037196623462825881561769402652002604042619372422698851047045032391416110467916509723778831186201258785280548158839153385548221004603528724439967439522918173275753107891833939595860165202884543251710228154015809065522501199012617674400817520835266413826642258141427594766014598715989407359939099726458744554429505332054978795502474495402615849153099471854822645424390357308905496379010615538417652643914122994879870331527508500514225142140769355443786983083166611937099600046837859382532381171781411364608240993733021944287601807018835072056300680414109579651295541616508564270343614664780487430799041977303524811078607738317364931256396743498652259908873832398700759132445392702954790523267818534125229573795833040046638024710886419587063022348298697983628332741975915205682697232863255321212475400602288667484954986532423909748017501407603086742866983936262141344936224547358656104524870806645473689701848429977894441199848134104821449859757528675276657338198960954394356121587349478749873879772935173928058108833563299882130155214313558007428268036969551867741541848451351502559667674820136458150375839142277563135414872637412905453648791070481216078599674310191914759241342101284856918491952504540611474329160953486773174949033089010919399333165105579340204364120233200557006357443408935729603764843509853602160927992234461316686345323750010485764698960286986539557777247199055947516960146439905972362154854949449945495116205557541580540599234558244013142187365099139783261495888550446953559181423824114438154283807809264558364466574887270050042545056281608040518869344955326890097050558456705903738025934675810925036526308979195955825368661701623681351627516661367665725685061391226907579755328515092831126820623036142734659993367782877833267125201706916946442878495014635438877895518262706191156261700176615555892170931303850598913154641087683213194150386518022581188350192105037537031753142825350119403782407080235769715348748106551746651718064361826399479996966788529676941527803202586980766556019227795765449025936681538995645042032767571305284918813010721825491472228277956874798999087418772258527391254749171695031242919632631002935841152785727332127354921027974617354021752353569869020912070309132632073849863763578234626168071184930831250131860893665751267942514742341321889975636755468952334896133569276202414841071759767243815949735979227695389133780903446394889948598066617138553926737516565158532021088865269133665846033978019873452620233057324659368542517784383994681880743138117910723139429476195101220450025397352631301940269340863635142288953242376551403509071449680190387363706905969185149582877789836351825930554355036101216796759714470001122588376408519721633498429475643507645116414956938848544293970567351336132206242423603505589291586681654206934157889331647372174963005380399875954373578169321103179236799011849138910134403355039740970778954457881640108041325202995755391647497757379128700242451929112366950494929934914224724044501330328004437703539282096801616958397142347249295320578986289139292840034914501175232165937682561334295663324875742778792875440862298673937543450311954494714161730322552797299789163490650941171759933776322698228623851010553335871542328809299437755742396541289528597729482922945695543783209970685216214706948987949380685076580989819636908838776870848096964356131868560423390803950733883533688194958293164355250062261336491627835683595271061694415861209370921152661591433317759569831726853194008280611037475547859197648995183793485213340559748595492981086812198707374737612838146211312213790185301310723465561675031204712486467439051887391011589014925998132013452126571029557767343475266237717938536480610917396045222295262112277117513030749258270107073672770865945144740352431847299068257554381477547424924772397401598358051793494598466253405747263364457447725487361806445318091036121822773032657067411824083611018699400965160131549128938016005036842012675779027788479686050093434215882138931464686400618310100625793241319524287649152507082742101305126239081069801274636708585751129051977149488413663011671220713681818228235947074137083800933271583334865374400294965482777661395561065952465718592672163430203222881806355960234765165388827476966945071472235848835731836778995598849784366383691884225272796893274069921570757319535688615003978219036830641389426052636791596632966668800167300083263556291925584895640259903241461028060104498536423586782667986353573132518112282210438890958719586290271515254725850530013351023250478713368654313250253119575294119663035884640638648456053224073958084598407130508075724077882921742507705357335062672013890387621532393476075815662588683262612598520065090073440435309463908428616332410699480449035791459095789039457446349102468301400094706509527140490306533989542595045692485086951431268462469121937907437878952154348334982911599961730099532936319585349420230605467349116915919827881059891149787126706187956316588267677080087207234841971886440166740040163115927916437001651226623768849667016089652029360726516563039688109230547524263962810675844612425142709450171123016583145840532925752503311665042284665619826677681016789537220773766848429412207051626169024904069002702769606413608767246785127184296728967807228854872883177081657617994202375895021574521965697458901811484833294697364297601639300713912659569064940452573368530899784782265849929472443673991177394355240670448454545693281519084030908181770195728433398232027875995382724300742219145628826279121522081117837266042201227059182301692961028767225947243227358354693304329811465846215887229254721660967831114202099873120468145383978490202215027422995408225661018194489221208072171660396368220565637658513166833782023957554379347493828716675007459256121466750654511622882655345698859835510411881302077162449576764082305829631702155495939564742584477275891685161823112965707509873539048846837561231618272345113446734452280911513558683782425974898235007889054567629021489406844755849283384998786442297160292650140600945379931428778666707597856087717142915799493958413895598660159752905572296318208469478026054352519904066192829054726156093025572437089882569666335820698863089739350233676108512265687717703768580604467881939238351609939193645786422681352467598396152303982526838167655352000847869052453817974624426259060809341707759300968062838231079540599810173920698669170443000393348431224529221715516162809030023546682805672911280411830244249467901899303395371335882290709652721827015148205378071383267868062933406729197279942095705028705455314794847534782592034835379524976536145721423578668406060672428458044675134803946011392654505897021531281337792372381540952399745630429083942462684545310841082017614377205396158269626995707585212555100703257980829583991336957859359934891622161785887057169302336299496255599842435222105895706281534696268971143125365685091570467196344428520157200306965276851066040591888447198246025299717681133508935663365227935567648129342638249564061645399625132049285582296535395981125709425536515652243461123776705186093144546880895692450202528267149953771387470260064231402142441263272263631833605805292472139963372149984417302197245273304943916767948690797295998234285604089766560354638947444958828003398935381851804354947729475253313709642326060794884681504242276300394323578174842248159600075920576063051544284598096372850578784388813328930239581348888115921360919268341196312490710469089460651882812387143911537420067413407661249319072989804616147630998418795572773850103018388250081437389531648366918057948892250199604761010889189641595745412332649063692778639897049093746895528372995169990944430265700844754265074333023021385534616191782040895238717026392873467805483305100843887204781236167149678831869985577352982506273737233262711218609790286910079169825368281580021346787671400474413230375314039518935181830818865348680720067627011452200087044983004634375126919934430605490552286265323914660920154117541632546837340559942438634572630012860057050244478977444390395514596478718380647813350471450082006640828387696945748778134123994043745532677015124361794449331085879479749664813523325649963362162837765020102622551567857920588155077407991455410427699189946269123650858420915909276270157142730068440193414797389326331840550400118716215967869603083651792884583924204744924231431930396758105871983743664852591527911337103569176034876344932391395995898960407745518476224045530825944317562376513668836072795163011839186904516799413006619520337580596408509850469518736097351906507596822995251925459795372201711528058937969356746653435133245961792938976509409314345046775212469112360946643327730295402440374678499899520087625046330718666003664973048267150503053319614223688160468070023269988555278627898303933259126199847677078364568857456767997738946294278431896606231710028453601251366976950457672752489586313056522940996709283083004229842514550478908476310412465515113399675314165553213969936910658753195606835638174039986713432596176351005698792821242681246646963338253777313015340007534157416072239985578512933602621556780793646153177906681729831660409831743654798675380404863522252330922885923653127952790215867763618418843335528503357143799703309386014048044955344161678991293167161427949660194000316264832236989697019326139584783854743901716899032758783082701108278324872347062909813877661168344084218588131308885085353054699606353278371026475432408288745063861374776432619324804670523943490933856797055549541078490110952848507505846790754469316417644763458768275597734562303077188520911288823258973007572989054007168314759672583299241351992071795373002453434051140629860840034487853822159077512812994345203455206257334119272435799380669196940439728644282423682763185492372790339819346832708142847793918959862138896659477656247424444733478022214977268282158023404865870712185311103933459842245468169990713776401824843826255105630207459392397204289459134590904207237561678046379327093897485902062292620967689867342945648915557541149175045564217893260403375253554673355126867870225823340637621487218095247569190683417464011509674981709647267226455396411642215308080110743105619050760343577251137882401563328878135602041041726668845224551267163989742115321363045652390662369350987506856670343680549532816294943038204471248506968797274558139985360120346946248749302858315645349763896920582314494082872816297922359584182417359253773988435128467258008620600380576982390407491896974482339920183307884606305149743963621335878551038385801617138710259384538393771583043243521258164645690543600017223682267181004503109253206254472619351299168250990461799438193862623686748239567964020471947277278936698194413174884798435404148994710757199351391033343055980626282414498466748541371642693199026208302633884596261386915851847802583993335725492863021702026420030870099216817026352107784542701280454900006833565603500888283345153647306543829317047975942788235765650308564028090106548739293309380742171411723257426470857410695643648069376520309429913778925816288908342841813202418948142076200142632292534699786063788462754232336535181290416327444622375404288232784046285753398267134262634758257875706700688019055077933962851154078932434640464596863358747231789729415464416764025072126678493253487054221948336958105261608000846066189228549484057032205661951924792103966589119365988582601466785692369859558229225939206241495613591441020366688009686325217119169955229282068168887339803525409231754515493035842049739964594617912123323586190578549493257604634977497776723174570286463991494135989258494382075646397759203336744403928997388909948984501457866128724727761514193747289326718794027010504808014101970240067374524515862924896042761421170027589108654448410842873843529891909868766432379677663947055504459478192270726937988570974381803343487421599967675813605322137660936338187097444178861571657957137006498779550206042362427027621810148443187135944256993165612424956218382456350048923534366151929508029819868617716443932576634468193348628638508042269173043139780257472075486138565685587545244475375863623912877846679316588202160508989892315084642035699772137902868932023444516122866480283711111992960109648168198590463884991415245882437046711575192037082718523626394071729946882680685529499235761821141647976051338838981667911697412852730804046780484340666798443929125278615487252985126718570133536592333932839088206969358883091789355712906719152522387667528205765458181002034306073421507257861625670349063741488180500905306379216241537731031155820717229256004510009939853659019858952299540065697377875371342715969412759955876300788837336388629709951443447602514843064828597080532804982060161511900132622810781106686063442973839872515290471263400891065106850009166433277629938682020048693148887077576313029647777325936005784007938502167274890551948736461674226407990398533213625851043756954308403811889224217690226275425765266490195869183606908816771636265006392338700920542451830403626703556534516896212225620121486888321271514812236487074457388970550153395457967095621140350056987973462583425121565533225321446366549796536881234904322686569913796465523136051247520217489056797993915628549597136629907029028621570767920707890081213448498482399480928543747780319192442671462709779019477413466922597983151800193687511520646685370592568024089800539459197316705837702520351891647095080247422152757030006630272345582440325940597633701645976218899397203963841145136245685339829489311812187161606840800291945617623136236031628354662900209411956083113271815841356273748706617316435274987190740892160377564842446679608137152096927621627438585654058673925392152352435810830588469697890206950054127580872115259049078887618033240819058147563923729667091778246837392359378117221498409884171687300527945442329781318360309552899498837780356974768298669247776256572257465402556839161828212807334093735051415571835853346570213795059593177346837408937276004632747579217011329347225818603450470033466060895562864318895597261607084860639234469839057552951325861084429044666414496573527186487598105120600059562936311021672065203499228109155240768291501517147700222120846968286615574281170655984348520342031805057018226172553729257357348774753062149828828007384497628149051725023322353014370255240627703606145712517117739931136426725037682405799084152185430016548049425667697447392539406546018507946739593150153691872701780913098133469740097595587905762221458030641693175130095985311890303315708772905495447987530929144197257419143587708786557328253406841888162897100303325988474193096235605666553589345460488274360416410107078846875306171670958938869463747176143181455068382740439081699605862427666814914683018487249360599160606587471589667169266213059119955085731347378578063953322022961118404620421056541538675789497184543341190740590247609156231524579758602935573145198619420528611361919789976900804989064074430669184277568467783199898641894379535742318447854063971648120648397884961452314153928766256762075399563730457031788736685086794588677909045131427044542451912040697996503675972234529984948532607463664469693468476647773275993488391470171854241753321787738864020516992061605728777692937033461016266261064112872931270258102653691258412427506818771340709656576114156839318418771042360947796065524277614414223603134107801698117120459423293997032166303521828406724595356881114163297382414020058562027013665300152152606665913172251061037878440425410774339359879830572686857525013655333545469981427925289972268462866044208329666645703660313359168645995873401613993394850787862455707293351245421691173539898889071488696590034334883332699006105207692883874082050142280804072670106853381569604574474719056974918304762773038431264585830070952305293598102085715173928175958932069729615370555226345497030694490342088319504266396785389437898293185197060354916677887418472046183859976608650407108384049758638050510985469830190330279851563330571691151382314810530772719336985146032589735562767361238257540865071770631533796472946686577378794229321364441825748988426870314636187157002383565014074427907030403727490144603290946128057768408543748550924492121160399887693204884058526333835126226733689686564198306921047367229764910455674828621670289208134499423454384541548308879320324830767041789545492817925809781583642002009344103269354392747639465603730464213013337904994551016144883972781247610839314750233869791724455667652951536878801709734344610033328506131949610939127382310729329239195668543758884418642517472367435289245614381358018329134038827108221405445630489219378815895626983822383129806685947158242982821966107104969381280928063391635943480196167491261869164556187847389546158545740855256369882852741599465397736609842565775036552105268866050191538076235659983465361719408469108902070403896690873641825817493439563519054665975614264535036126477190266985577470623819573180690599444827623853391869767556607032974941828938860077058945296477657850143690007418370265539528974228791607192385635615896780285691183813477306172800943481704469489995225836715260830612558673435853041354389379271646581379745664615375232066113196585919784406580334264057940927624089525658780870616124498778245436360452560539987767762116679951825780118936150893427602235722477746302235591598227260351855540100788722729001623545448434874121934769560490601020677678521187728118879180873426307917803062581441521181762367631578389500199177330591901258116957947481253989713758592430750237565594930831921866997388486708129846606530154174505797452497145621146067341372236400378852980089279533039846671397396972902970373018557921059441669512382199535785195959894256285877518719314043497704742462502945861687278912217175425245137891671493849899758653195157776399902241102559884855616721866093650795669646118531149317849299432789056730505239813672941131473205995362615512168902018434705633827840291867362409898680252120461870535205152229431256395462274328517333144844439468478571508464252838949759401098662355913861699258507488943492020811463959266383208805078600708714069028855203218460119974952860406341034048045117607098805663424536407355857965162227855693209822819125429289370899419505039693959883185555541942281344007002773218070037598218100348394797027258183828207010176902817806032974273239848799461326432986794341143135215112902837463238100998382334299050653001760919026343904218650049058289487831489677668668376644399710622824831281056408477877906392435422920930124025061253295046346993739188005457668211205857671275860164374997148757864842305663169234928165127541777114843503175431335195468187574985431476593712569276193369515437273048587724934000034468567988783705494691780214576039014451879967958759421995337375639295141532199976624197023792766326708784454850431864617122646511294031842369658580164420751894862933120334177623772855126852378179498334020438199947937212969133876502603500766200193069762519791394880120228712503497756669880907767765389554396536189023731705822282767029251411419489502706821908487529299864743270961156811113192872726810953150336246477554284179877465016430439121829717588938789339792899791211067453366078757909419295026904487854661712073362287685611257554925239006095701052928097289956078908272221088488591752667078370504756941090516627226382047955752591409820644742924760089578433116105957653877247441072003812974300871932538085017383931802857054104669378600557608981547178277083557243247096024328598279767679396215450773518940436464052897421396703179478850730848057657225091076235011701143803834950109968469235050814239395103583214983931146708437762462341784297146464095455311074268543389242616022945597463169810505196452893938980332916524538567874292142183182381221576004864392380147312608804777357827176752538370572037697501054137868598626215640890017510189155128460146293681137061448200284174618486676301338325698413420469292247677143049544107874949531034251057704824683126430277604486355342488753531643638326748481385599067200016233523660095988740558511601905812437508509702445156498137141671459511712499449515320606406010107867815105103404244883131788512757215272240467485547710858993343342887410143095768967629166232079025492534982899822750950165847205849220194025930571290995052009592434002486381761927747665719317825279018728214339704361703265793962259539138167502807433079353932803850579645385008445036387568421631160012022601541856030120290231819988433508399865168682778075925385383818990283404811126736933578179401493619883681881274526158711033764621729434676167288205019894464660008310645182144407326393926922770125693811733603861945721922663477919074143754006680293133758837478909784251403369765425827320243068322871171732950521827441524065116462247691259053368029275572944278183703790873889589045757586207881749675684835605440066934046471939046604506213297919344882503352151302822215313369324751409304612409574345312371119813780959888851638217921723273705743854352107591466742944057858355751949483275413116734049380781768139283818532776663078283137248047614318580606820325398202300531715662429454934188976336170628801094865966583115247618607955456319074609173113825063754575519926788648048114572390613665903100116558205403225501443762249170192256491770771395009914310046747124866481350087306150443041404055268587882248217132056461316053157285325496380812337811314534171733804675202428777328098468854512382993066637200799552000856680477806353545647581069036007404095309276393503842578039513625023121201048221773329391121642415984994910856108965546570952012428474035036250955566255938229782970517302944141948919617366125509669997010963433812883277512861081948582233590175974928522247583474769997207673971038899308537027248543526053692803411401266006216769035782432335650409326458251531812587234784237987366505187224300842303566315439316991691522156261962889012082614874122902046873051931684751190584866637790245573267671656552074872371261443536556003020337962731074955373914078143079110095688184361512570510950703842255917662529564217825679544681818195900707805064111530703161901675594700170919273476406661815646185788272955630828396266792659855319549621314012881934350467982358758551524144721042948691722660637590644274239991622487891331460005378895310905312593450992205933438747448626529591202783057169478647711483511701086805743927718056642414112482674093548440314210305544769437584242609516399329931554545513369995760773559273214446933294937587471649147473004634567639294450058143169535245138915309088942317317414218132547982392592115336655708886184991949903331958343268659619934388923446192278164961197596867615962437374503381473227179803955889588151526230160081497182740899416655831622858013169959541419757393378686723379109363429024967072404211491404444563316030471077997655743761453730295575272671030674128646760235002298182411167399118962721845988248692303557670043760653764848361802834878716300814453084295239420608930172318800238877836695321309921725529677493693851847947966889893770186843283315463916621341177941543228246306571612001183568319173459017187634182761486367332310003665463174941940156594723783981618428497525544518200110485013163072411090108563343410301701264645065294778304554939569935677849272631125921266588806803104932578914235507633855763448098828236579463835391560518175926238030111040979901730026493924176274387057458194189284022497286803639127635821962517538738383072146477409428970056597011383731614779498703151328819489711785378444894223787148672646867465594511774714924009569306544324274280604681894211723541487704941667358650515911074680817077148928109815051088427379842404028513902003963488991390651769077738546349632489558693758721994376475442396391396365615203641657706674323753397214641414792652856501992522447834685974680690585406206540383136184201376019618130674021159689262773886182378136068224940768650755905494641836435479642237000563926943213237659465517907792446572576755401976276257322697656784419202512385459264419646421104336137220715683674751809041706731235933759426780538537376162783235329798755503600084034343162488677674603467883979039094714250836292842784684611358967253877717185564080612119764823879733767703758157466342644748260087169865950656622474387877807575362627649007050904804108221972062991230569052294510307814283748494160514832007996128258021591971173646833281252917682048249751235883968310437579414567292376462288955444159511005227230160846942364550222749222152386557529211203688548782015960595879392235349430256590710197584178152984533897383104424006970145603839510197926746155302287230186282248359002044566494261359618046097605602367412099592341499745473410729596204814732096337046913987996988786958146445164109228753495133178073806996889706510593124296609061943068823865557325041811192431901392391182764765434706498427330630477495545192711200968899437112061178633868288399115498353668475574033494128246896574791169658768938030698752277723273622562061994486522222003519504279482570025349376950478150367220261917268167625062213745828265495712452505639371313185957941839434668883976475629337943305046436157164869253567354913017310609225451509186107586095831234573753977987178617209699276835237049581226597318733900820576358282592812707980474117729914344883625884713980307722194471824712095504296319545291760016635173091762600325359067144745890194307280279297128474745342037658937969038104965592566901972657779676649122814820286862064818760969196275144519146178094223989336514716911957016100259140957973349929070390876406160743339868467251950828828538103359674930496874177146049822116414594566473271639015284071685667089508559106761770961062493802727176958772113287091230276160416455092807924012986407034701615359444571843958550432620532820997332841611535410631461058989360384815514865851512630139498756664670046740108361468149624546804087856746173895405633934477968886097503336943799166577300638784710026974734993434470244416992244958570769438582494661779056861088863218844193570856671508586890712806041649031103057141696871048210361161813318630922606568181757797801699706655680101338261984671340361720294855244285740806442158866016158041495621569082113490629314521539263386327158809457387396452702769784811769865793158349423503265670638384801207989023697523934180076583207906680162905096566557434825693767464846057486576855981749443965823520044055517190492285069987769202809712596167908427994881931860010448780004468534560213386990358598491173053638098657278321606486411069557957645945147692980449439660450779235202827894702817586383838958805088491377425804039062314802267084739036809801136728083635770143533055602515713807376281076013283401106119289319805290150536371733765467378962429423922359435002776779087824864500668632712500204296276680453771476780806892922639785739411015672610347293062455211974955709243347812411030131728856027698530571499120845040312146766370086775940675640394228919239714294999830030542984979481900767453387038924663044743859723281640815528783851260677909922904020694045407823762132205007720956868901821326301253984957397788779299900371443307360607009281414636935674637182604027988524824029740593674006067952410223770023723457324938929867168407244408286381672025705017803540802378129711884952839360266875403764863694520385771744363101537110671417626295517815322225208571110813981104316976896792021120445630078430626974454459421915392029655592912238728330487481145745627457074839382712802139654461625445789775172317693660693542071238427530698005240620414406841834466606384050162118662954625607708731274203617268844038726877996042532905700204893281555876317478402152495634279094202828132140500813748228137901027570017230234802484438394056144238922943391383058724255598564101240190429320361273792843489621720125737244054445443318011345626749944590406360063767023023182139509558805025635256966225444861877840009520869201584922015089555564105670258676524999074654782336242299893403459728912715106516832631899521968285496855874885747703765418375183385140743549992539146911116495699023628709357399342468607356989882983447128505496436242039686394546697673614410236749956491750660155168578385074329191932225372647159357742393331145651998318603444347101132198868324111516096531714174530587197931034768457836239677804385384430662512830162776228378229799866844343839952959086800723623372996124603439924368652747260008164967756905752193572667505103984547197216335271920407395804517597591302020402834644684890108315761814219631176564180602387800712506872515689527833393383859175956738479194035847650495025340227593922228711176204758554623166106061639016039709004982143410731414291728898895547809369314403515514988333724805475566326583859541808748786796872041537181268057496337955807385902873844504189468912330759838645371915684713939286303396160225103994220600149484280786070854383792053509271090057014587634838872504572515396781097701841619868008325284063165826916506348325699755695055284392012611080425612698738460858488248863161296936119483963462020595878653631903044069861403676067360960801207706571765383758591586584284905668715642010178059045386480461329023273353734483362718508807281244181895089180625459102913211457884586907255894482590113407693310443391702660048650105063202518696999795791172241554150358986125197043078781939520212624786022202233945539158091218290003796411836240567269822200503514060257991487571970734734066649773207431319049305301368348388556808950477126993771202048858984495513760886705416907089804654816611585369480338201165308944866876225035713917874115078908520130905256452029958714688959836345828353119443774835312879577845437891031933301458029101528203185790501684769779771808407573648088280602708237196930325786620407327806957563033459270825695727002265447238402034820742367954155228887620507158058379620171717953357283661897988528038059876179008095102342710532858980213257452480821562161135940392297325942027177214247732589624597947846471483556044710154620730754031389449949353794921949842750468683854452679188364787979691311919412555835113210840949261193001331073827095616999141144476438401114335363662542164327532322133034072571077671079301440048427261863943353806518214366860637720746442936510465180639599670633471302692917337490811201012724271814722616023793679937231609084265623308295355498216388327939341858248270487314747367225752383379697513685239199767186008174013612148810949212991777948224204997367518991542654234364713694665875301517073366288198857213242827939251370331362706906673066751495442695596279274553467316112390647982500543667400667971461506056010769255456391535200087666179978552308496035271300770718444187411764804478446093722458745420843898823985268790246059135186194643389433923210192589460588213474908401761298878738177001260879316911014424619549479390041874621282167825681976796688637231144774917785316914058860756764936670117900384086787158428716752738507835142308033998154941208012101374154690086970422564460053344376137182656125255633955258535854604139106370359729580997982726370317012883728251397294137283231916340276171005914609215062940399658417488663453587391874166482030475394994609863061022304484731080199244745950954032625697123071056902224489014841273822909980129821642889491710364663514784988821851539274089751868133008729073298062790883687761444340448528733176247855170381501840692658132761489251258899102630553107388132414447664558596512911299738034617054839380067300547314082535514978460878305762361836296130080947713916287586286803605146112688146395417727035866940474008416537888606904642338610491107504816098187127142924031286307969019924575639044493956191239633686935320476676682640410506902276964809235162369789195902241109252087603205076139984485807475753021410691629011450814254291028521813561003234119453415480349769435317896648255230498527558883573324932670644978594911789602183688843664834787067046593245417045099076642265694138913631438422914884886278310814051860890518253644248292744389633113694365635081371801029323011221943335869680207131235579008785378157347199247444222153034790288023671496113651758957871790289764169698488490394498924194811718835166420905518356244160465450703109687772828617613790773211462282514584047496423192430271101231194024974821857367673060331430220938045947024721815095144626447329422822176171202531144841860415923315252699918637990515848974518685274517333500977116629050218443401838156612947369066091843993887178140149800495368641723010391797223598729134068931067950792988209086778162911302344581433195081053877425431814954711070306617216719482217884984646815621997494199175421193292886207168524613543415139261877892944124729870301473410163991885050438262841450500493896948097945348381437146413207818770502139502799647002748623520035245802229900157935535795699143387074063248911834132625979255922794366363872292157441447002232528052225996954632546098195986081898394249774712519252445452132365914293999325128278506452575792581997852139610569672057551680615353342819128681394333288469764407914331961170985597930590964495244270723011929066032444243144435476790625311542383634132617703891991416803185394281039929055004121650568814446817292308251588092610549995046783511128507038146731058143493900587476315230534071657134318667998666343413590541728780177242258273364440405304083919644693349396785993995945099945291498443182977808929103970499138067887264381493852666287683791247520882210794142920471329798988730103478326606274732629412880583190203301131397588273294475733027659398619264370950881810440455974770662032930890468355967094685627714549210509542889156457070645074146439485109251768898796399734928945476885150886003257660038343638677100096379253677680757908436628402419267611250080142787512051966862630792075837576424209011875877238922933729209256213359127950284567937721826678410912391397749251871662089598028898948535029130951497509221476937210749634778545372297339061446468266755854579815277129851785213462681478240493324301438792279424894802170890598038457940746394489109654240965590103120136723687508991613268183413110697984793768313236737377781311883070077354226255410809586937499373974874629421900010309058291440192481488488690418277040943927346043490061781966895879981073093147281741522700495973009629370355238713158548191275702060389846850736905948574444720401184174056612955646977977580417957761984278119764325928342899619796760378886994262260903397906179771290954441963953531073412918142540247151648524865469019170884639511268695846599329809020517845185950158210498217232209049208930348718820348194784710159941861835788708196106617454291503003312578859709277790871149336499253289730468399452915364320123542588057835338293964620043573757470396081313114360998271597310913193979213457677868976883530866940936015767142450543770412862374176542589888270692678538702142755567099714780017206375122226535853843003730395442578261680327209286333510073779610796175974739486343669836600391972079287714121885943536939222669164883304151870201658852507164261424630562822727368539021019734162116606332604145529495529323711405827475149748713562766920623542328073918467122853948647785446504183493836762503242894164714006627889034869426682040617704832433109859795179637761581141508177415813734416142739646681993699322610922996922913299726586658832858590611460004627098045706574793625552975702092963629099828268675326416537022161335679538665666550272485571619356893576791547904817434040165675663072579952352726280613791750467511484057211868072949903739798665906680309284194812962085949321586285134734681873632666783591517382770811284535430944775459200221812169159811518447301177015923767817511147933357695361700865132095610079746213510835000566711126206863780880616118613390585701289010772123315617454727102473722320097723270775291166426219533232707866947834266197383848778021147713683156380629653594479752998840630164968878253989174628063455714908926723820508272199986571542741459084582978329769896556913747067530946891960158950875784604739525869573525210509501482804762915091649893066841051486225883581982659756935423462294853898922101257497669036870599815229814420125933520058479170508251101077271610456609976649246566669372397956472740673983023501392692913474293912994143379084173502485653811947565029151752454397151270305473890058735569858947951547751780664091053415718798301914700263656743171411814688730966257926748617947570088167883960041575526646291711676834401459119625855803331921634252833918575618439104830883522568034546432100698718075232407993687745979768548971237725190397553552271855215122411426389556537936622664658096531310651887505096523097318177150888585313310916055655408507077757847615387243411108984726931886780261876890021479317370599080280174445600708563402838531197465260414472901047897641782895104604553940971961668428322543106312936662845499808129570196864761131778851869581989086887773582396334066365794279821279391920224228310061821831638578414199591157177322924452022099761590176793180104357755922788923498999187896908213243418920619190792558171923055536994041799655835853600062876907189447349396701775367080493850595328577731100243508005798903892182330050864272991374782250970540219554407548134857655111505493585010304056228386596463743149702090846715700506712949911913245512376723435323813351728625772011769154736641012086435018201273482125437220483472895984121231681670175600686971487486019407588315191788160560115980629755454659549425612367142878047483910149692489147852781434754525087321320676204367315999212322715142340174739938947245718103623535874690809713186606474992623439972361711702708089433637753812208592360626458125194045070218676549684552916831230087839587232824916702392385411836810933022794014487916944970453588737087976363368070028820567944907747489201515473397889225710330732853940538279918830794831317631769899018100394487521783029307790558357900213802623663062658882087258986905313224116312998840369058072128288007989978510077548535029727428696594195607390875244473341057246218724608686234192208648211098941568717102181735038650425666805784619927422660217218894525896524567974365629287885126156151997209778739684601776217250480502699952910416662498897346551051958996401444906432736072458401475226012624613084186321177133170622693535415873769445480124873577884721081422579134207835345049024082216043476082911152915856153669690041868482534852126811411735511970533540831716724661915829247131666469637308429088832099325344342381349087540703553315389063780191063474021116310417300491724528247544985322364268303569462641602235248024773008739776936618405440509130492426913989907052968176258946706883380042323648637027654056670397972875732281321807708857833090855381680577431716204946647655430060034177684885114727283896653881806975631437465966590877897887054852466303978017816320106740440415341716921664027112995146607491073160986827231783411093025087092283029664065363300920136753663770275299508084547939681035505959874933093488488298831910349822178352402147032618523427833308173555450632681107012106397685127252584968213281309514664466419568230479808630982403371634551823713281526734228727481293510058754820815352118679021107504575160691272388696064837017620984039436926661556299233910544386226629763287128826234800323104215234626165159397498178360041445076480431328883860524163993509567091478487459498162033183096156484185648472261315396306652651675321575179219258042924779762016728158774804008715430687488056597084308713800738489363570837665146434888947912220249096062210789987907042493955936723788678221711674753207069432411388244436588690317710363323545282356910484519383712614929518113744036292905863819319587861106557623795463807386036025633314516103258315055997586762793836097802247262644551734398818369813337470492790379423702750587994449734803419879273048524868341651282172315529322493372195363234227487793842662610706829918100377753761939324761594274003818401778815712020746727442433997391036539676762540335975820491761737538728802364413793334228414720109271603223541997630077576168632301667505428496919441063044308642406792489882976986451939039721078813489618485199013027544162165163960760317413979726901348688521980401720833680213600788031474233290257281462419347686807389407414309074931828596911388879362161305042531713790263925707766036084592021115625793930137524241159216420090268878775688455346002886068233815209162491450950502006576978502236199624233653082941506079195997009161220266919876299026417618183867128883288373134210474784661467224232363784495892512845369384558803156820824138880095135057216692048724986698150532067368413123171431825929082342860954076687239056612751582649928158343609305555030360054317861571442816888180868266644843161171846871377193973759892124023264543390845467296096514547093898357448830458899632411678891984527972672293033530142615460387971883433720589142390100196283259361813148852832651407877007928259030188214458664540319485963102913519925409181818133689517127878108445365606936449699636576046399205360040519092213451625780212186624501691456376103015317737517048855442479054687752153370363185089815201672367298144745366436594040723231291412325583807719627616447728784688348360744277580938983898011275009510118306446262923960798662736859696715303635558462653754566697835285590983417589630501456663403386301176323557314725599638591191251411474145553992992848713722652887694621817097650757599519167732660323027487059538259213718780661646146552362427459683510406639081261292267990396900491489160845737796609098070055567920232775921688999377535420515460429556574469964982465794936679052298256287902887340567967245575515752951858728865080719334062048210995596965294467188624549089873422432992679588897105413853764603593302143551593833819061087698264059992075635140092112062012973985290385049873455172321009364508953023490825316796048671790192268086800854687574877554416526032850145708854016342839017077184079482481783407953473457683070238165418765574457504727121996343900810220191428331031212541165502402314386440361673055861667592152399796965902111628969351919944084569187706145888088326192489591941381720392665498771969905918242520430091895558188170095060082213691848168185207852569045801439205025387629220012932071503723068751526493734993406225145470177827387837322519583199350275076255205103380773989757043113177688101827718227248662553862729040201661572047615918784727478847756799084269735733152519901345953289016833381982089979378906760156145136935978669139506979390521440562243848734673694155810300789895893476023799664231351262984739605175311329990248373206366170568597504499555149377511741550082099117707056171648714960777144645715322635517437267373527787157306886984918111599206622014410649296948985578559575468732613708477227339688616487674625084392800979351829547170144724243204097934968345483029594586198845492163498874835752074711839726060300399057882998519995264242218771772478779961344604272894202583072732425133631934764603662219649379223751095512267767272801605812396119291091665044771907954957721466662685955567096276442967438873283628905814285392221442498838735541779356413944175895415013612862455592552770370292746440447151149818411319067408247257406268702746233232103100296951902529010680960773414420450930845880491994423324745041814571556281361766174201663623497878868723251289298124772417979139142504825932806704533531965936083126962881705375811314369954030888690438707695032456397345937557248056631440937269626428985358542271519598291965207167580175396801554321535299741032293449823679411901159491429136662719387486272379848192236287518226478904835029714071590012652011890293442494310069995732531460158553414496549307086907660194131691163289549785091915906910034468804438267035768986810308260969503172430299294123907167560078869568907908129437716011976858260245067781543086779590797783065694450843907716249358988293424297251036404857920579988337956964719613156252106935522748970106493416341907853102723819997076084276831346888708811057675988917702311580532635741919378963554181637682923291687639722444768153067815113756145027074971520680139923676168927243147319383170226060073271876647436625429466542866115443617054767881397712161736056296238799859752447754271271680293012351220515375871766814552038999617810172250859267905712958675252264293631997740187978205491021720451432482491618069247060207233459101064070158583886206436928516027490441317286732702398013229705760023000382608662533091543489972054431557649403532400381330678192018946475720982181440930019424524821652769997638859613901757726162612383794854058994108928122462444954898376292293289320827079168005602943995584612283304208566540859661069869616757483062794660262218857622225815780536484391872450351691656895069906313768160430128068029048031637404283898039892607249338480787553701067089443266059058548093964515802524991255347009522668166092180390285943413450101843549450396575540473518704830035178826275888952994158465071105930748709115359872885155842396257673623252034527241871960402381307736544572884486394184308493933156276629130024361536789378988141040799599226809469344124566842454946360021731253929521615729322223565097199279115907241323552022784784006369832021606765902621763193624718466099326518535200347640729862119488642467392522577610485653568356205664763858746353423429344094377053693041664280478336902726844460242905739306644340645211268487230244333604658066994422501312838157601230877342253475654277690316581090802747109401632155092496465204947509467983316939925509488505089583108260785286246377680556455100942634374493861106327066176065699134244531797194601268985339656416878988493038339560929328987457729641667325328953435601994785760687588985740924631018443924786458183613669035335381072108072092809408785394830322760680939656769623939937152634160936370532337628241080184979262363634008247219221556225296709517565758535127458160386179990608139349249679238398778196131703485410051018460737930722555904030669934799239978887809144140497031944231053293508423035337561504111826248092819666300578355776152267693238791042304622582662204044956039072834798357920056024698087078800066245840948842131345163701606453024572822100802856019178340741158311282856093148638950985731699599750926954630704053657667772738741382269406385803917077473525280857482569568398550112822330721297606977599294364163220840035256446028445917516239271723012431009275180406362543509410973714328881966286480489584334408173565350893523093686274610514842290421492584643376786886919723742600446221826842255248082854141469036465722171427050267027592704877506490314165362347507372814703583253614217394883897078872030119067507221320759339100850495169192899477699750771372023710164282887588337804910887821509493668177217983453270323127152699596149149406116846207011555594538745221674815167858706944232213009996888053841441505837717676699502483226710819221432067643163372599801385626183317243944313364477093233666334760681541925585311800871659697627910918206317952031575931595728321363176435571316384638523011373700299086368370270979384004628785110082082626514492820791322465964189803513054730719020554537363756797113506196022503464856459258749576897369506083032295850267631534252797011674817167193748169059129963377778215002084629565277973685303180590512606736835156499078156084440735158339761868899518436422553103474750087833781770952475141237891377723984428960812758799272517905808027612923274517123753147100934250526274226158517934894597673445861986775529242145800607312821986217658696924476000932114959182154496733091419389260123460497274864219014929244616261077759434777573032435295366264684974991024109303540824242575530276299313310798247736982227236214237379362405160012455320415142628978405676224837860677392716999246683013663045584752027281402969494488343403961707124488848124565633393587270907955971134919855975781983641081925397867671227403807763971881508796417660527515705397459256913510399189704183360774426236690127902935541806009076509937440614974501639139756087254995930182501661467400966428791967058214479862198286071387505703717870667132583786876341259986820858959402022835286022680103478225512864670536114356932365770405548252178962855096157849851542621426220621903191912125437649646583748931756565296827419028825265027252105841106437986559402635904878486043709079349109799925133026559522577747315181866688083559080962344993685890799185315251835307385653317279424495694966961745200178333452435201860402943094765452699301167794611657699992521164270770763589270876250533869300656675961793151980630165425886689265493070468252216485879979280983026623692934493411528612868221141582489305427933382881978850242155286434549276492206153526628702096881105125431391976126912501649660773717674965083335999381253034240165926471140342886591578255562823171896709463583547079103102201244333133818117263960988679626089301317042946694273326475541258164298157652154263622203991728701665473617978331965414510938139146765199555817769413639381569589483896773463701224543123336920724220182138530015707641994517481135004601082699811408886712378318319356308509589162241938925350332236822595167927953007101237174630104106302722256074349449789330414293600676355839574520516088471812711158655229710310505632128050495851934741373560209447844233295852952943655188576701264930000791001662409688409556541732722071876257333322405700237266728941559603188075388011806157830058302776709358826622909908631399998155016653946399821914877489567245117116067761032981979137487015129209731434132600539973568682574463775353218858171209570146773763932203067005177638900732764944185431729857449470053620622112783006774516323407388883410180638802046570680162503842163838799126026275523816045106008641116577910757541961522634670084730524612936515820713565189064443351930737161960551077195021765376158108894516320314899008041634930786790612444250023477409920742583497061082617347278929421283413020492462986472569036418750320163290941041862250615526218487200459481442584916217370977861628387827833713856487282119755568221152320639523614289800942659478061708546571422983770717263209066605260656914153194088511663717417542218172426219129506687227779643627418641769935118930350238002339504928700370470701359053674262955357786043340437499124517139010441520067463532945644753718971729321707704770038716573440306898627302239862581081061770317611800024039725585551966794273033385295589073298092631734427446654499694636155300180342754719061567956668766162907634219639925330660071068143013287672447915774221555588406360911582260438202974356735586342424830118443912597313989625464090228800269347927086506990307638366680342770775678160795394360049335031969783542683865000426915779780633775070009929657407286885379597689410005463734784497392130993560703998286347719778904197196623842287712817214681744352573017999375831215035744104083218599440694822522717357758249813546772688688983663682597228180088661188063672439658128874230024155393762900968027188075792051533386957041524586777633303314515624273727285314212777782150430176328968219684540522083127447923335628185137704080576789561880829533540401909480884877643784484021956495807695330986556437972009125232730252778154244334096653724195929142754213026123366647114113581594826532664754707355450133851428692150097639952218436049538380647514252360709764943059356124586619436509601457662769501859235120732209372048629471826793235955257764173179246554386484843160590704633187187032496276680534783305502198597686922475766216073545724314966142295462755091775324184348687801704959005501018922271513093800194799899529616811891471166590202324207770241710037832700025955341478565666696090919729279250442959433652592981393331494263015056986579032947506008061879085228896926116418765321015986173742159444042108718448290010235586264169415968404734610037408178840588616356292924131754599909650087676205609301698210244802406495190130407299067031814298029447193439346525689259455796253515063940279871806189085313571835210979261411623187319618306596808972271356415061183156155672625450067845563123912622643166773720745412968382400140377029568061289393927659735123872586051844872034060913172851176103803605812096526192783594711794946432122049851133529657498277277120663043636880382082102664134802855475059156340155205263487806011421427052367434867933909311272356678258081962864399386790632815590798674397523906219507037302599423591259567218472099394811575305565037771789083085704156165251081821192592980888808095384600103334090340307928722579988403875469098136446829494581866187505308839121056184057507435556051992779012594288716504786025209272361796472362624881827646187876049783394383955277718315416208015064044389700618329472184358073219938445110796411080604955277755918608635367968196651037790489806539826284550946392653940102225762147016099391792353371757092301201837655788696088849123496760874951336482180921079944443280066266437589003900206627397237348959836668828177306946608130577189430613576842699409131692064840841380582763403658792405100634823462733134657058253443407834670099957174261452849531021739462067600501219106624375240938443775916769625263446264424142615679533919298544637113796950073982399163829018992602102334709984555696072165214841948588772556458523948353005928393711980586510807524132725030821964080879194882763872654702267439450746959120011326611942555398352935872064827995415318060443582839089311740091743106912003572228498148805998932460235892158942246572084367447664869758658406145263124219692580171953342668674753225910290350090010609534591120826569991512483039145551058080583375403253272508673694115918607158748721628984946968972455626855532100215934626008936521396215584461697620995004114504225996613977859642160989051319174396259638538430241608388509656355918339256779282526613578380207833407545010247088184894130135151277514215262301345662148896175766514350429752197418112339419547256049578349294436080758522417355344202947901803853557364937695088404675317673769200010259497122895038504844330692666618738634883274012112919988346872628794086533163164997471238255452395771417736557757343352756264188630674427954810986173348739809347674095185839687189095603162890725197156545195053785603353240107333242886389219175966461759014613645927956670858026880415540523792605610568099910719744615764169265340335894626722550698627692244220620744090708960722242839404263034196944029826493452259397542360134826822607528003029307181829240201428746362364943649525429919565487652861281268052753965175130616652157104660636030241327055113329322994842634578785105012032168819360071951633871611316300897448700425041024337862718896394707639914236905470818682888164787780086172270956154269159786395677392274588861789322912833021623010512784994301748361796832877776831251540494460802267237229464028787802183534668210674664299692084196235392680120489926673422293480361738302834077950220298405491910556599060008808167276619660226900224286510970876111128908431429043921870825999400027145954771381862987890043996451199794350283133869973224727038448328280455364203462785816113108259831101611912197361597575219865482807038216677800018722415591883557905435970416822331517422965156370813012575581257786160721813286895213206819551739293150242744762201302944254789003449680216481798903101855559928686282475374446939752805426082476179946677785705931995099871208423269303991426318844807573384478385623743864921989921933665854140989193307892708302155062212072046308196942272214125971214693652144292612438315495667033950362795116168506786567610518423774920632747666080905872717822278584995967530347777924328505556604566582441246489409092844668119571672804797871184013570396651421039920503914100054493406843842087078036530841270061044792846738877757755255051415057148807040075963792642216835148602184103856815271988866434766721925459121988598045695390221051032019154892140933681805580992715145261474861244984664632941069080217013049518483048635794724005586322350415302391629675106669522764692658719085619091022033759532349502707659117632796849251519856459644774546795830055388296869557750057430338915217184795880224528432973485661439659675018351557993339070357893980831482947254963943947259482912345924403990880047037901550737911471214573748514080243089914359608764776831149016200965648176569233870451282875492578302646566456198848356282225796026451846635422415163646111753033727030839589942052050065879820282408457406052333709417646637687469352674954072347219492557596398593661136904579306344262794065518036658203726956104398451925914426359792005849016720860662443245571829950000581378180696152843621897987890718881606140552277871529986062587854980250232859388337924537176377568974821165709981540540295741555351483998885994319290571614664792564499226103300295459623184079232249442646557491451140823580655660540106248467362387989739992121195204446470235456206140758945508520323203655847895924883064494489338246549490550817523233829006155923403987631681015456864583859607597764081892230125196083111068819888288224011170787129682155434391036882066087566745444323725304737819464289698190010313453916913782456943309643597169406768722913148913186782831920843555726557702205215159778157158550082469837181761009192382486091145644678052192534919456568957046727360708086249510767004180104347373597703675415935732265379636176673951704487140887019039008547737073864270849570559032313757645513868090732752717328235811306570746554296885556904480696510694664325645729724467746894647594803912426553417758144363972491389454400773331793765731891682897512524611691947295241702790872834270166848600679468280880105307039812786814581533715353048038862730278276910277602302636229132968848609939431686171472789441977479163563850548272820961633231313481451234713984765981054703633812863636444962992983984484934320237922126541306209945754143430008776188195831073436419498236253639768193143663884808715371612067122876593652422247848642875269014702010755654478500202537186300585708170372612797985781692010566793347817941336970874549030964716549187061408503747627741621745438695385655613695064482212005032098824782867777498851234901080285110848970144115164691531203871312180534347061483619451271471696323032668811040942191764227117968504742740815533071779434286447559870145126135326742014258005422715855408449551718533455980945892200881598408442922141165736939777346182459093858157180422418523640573747602140969258554589216193467850068751339988441958080216864396434806266092908264141542981189299321634490000605930867377062190521579926971171855631767864190768258605747833376266701814130125589055217005296169793138433053446289036119342676511901684017466166678427916583638227135562300542792314671985178663149355793621747293345832154461906767541805403102966877246566703093630272670007203418777040580106026630286141854268755975749860900464097941267224267682956933245923356630327338235052243815548992570151575244503849080446934245649960194548897550900114828994953805975056202137391181989383622991119534194185240993737588993056637240702305997053094476208343558085785397619271086420761384190722627885595023107785698778472241759799600771554355740452541167596655105886848041892721283059313513660763156884489071023821396830364191063614329006192878865365452730904327071485042635075652583599033193017993675654852561908433705220505247958129709719629668272841719377813287664511923127415550390236244848718481513688713093851326017769982933515916283649084895962430635167461191695597006153261928036230479416980979970188831118738738966267143426663498242026865739931174171081216217355649971643602833132970203988812195521668361609865412889100986287120162498392066207523710461950992607348013321025923929643530959994898163304713540938954664556262052386078257889577457914428834041564087883711840446222636846542200748426392034118833997286239658403566325714544004591489926732368030427864628854232670302526360637905520049974706125645248377834939776156402628097722027942615693489837835802199665585718288525851451956960287820744192879671540591296078414853877106831931355751369190288304400785155086496664153158306426819301994616263630672919254325375607516369910056393524414868465462924472880322583217597842035781287835184582396839614955013504734822591548849669070491823935126500496516901393601311300724743259105852490352565115802962236088995598538834477427859559995980710358518679390066413491597184614814610326220110927428233476167162175704029424960406136874885987101360595016741386959659356501307667475158194814263494546839329401941540493450953513210578737593858325198889049700853201999091598814848167709639694529909511684848134355417309580115451307673107007266326700974262095005578062925232791031152225076334074452168084041149326241424332920381901447992410080180310469634448411861647078094643183716121657082290964442118018268265349813240999727233510647633067321319130615586634971291863253784138053668952425876848145155203419839129809127328364696789037997197787551432709940302822919849418455532915139275225350512120787855033187502001509136048161014108294009001926790250723196602394156219388167547454652349146748770267826277702067278078606166040355269080393723186255759447801442180235921077649323875822948213854862870333650472994289411571948998889042342563517878968074043832250331285065289048634989420995352284409927039215510707181731927701784032506878063014858285866804164422637085876528370184704688574326286384920121477390850988541909553030188935436643596841494695814414470700086179109175754773397270411311193148901028111376386604388565280066186637453781655591369924209497810403302056195534843281843761250374527142220736958086565731364252197131536499438995153264309053331189481871662170338192294050431407591549925512533684641155379679586810479838717982551453028280585179373874860097438011314745987552639384322967618246900393572888548057799418659926509590460726412436303174182431173962080778956469613739534313285837442811436150076267080170108022796770791695877053050501487789893287511183323910624570482158391069537010587090867885675281246015386883319248047564808706132312115339505927576317191330249758402018002159585538184309485692551126820982404721080379290763501575170239982784972261999951925788630676789330199928262874942023686467067071715194694586302565115546962505879020938997598011385503944957942738814956617011295113496297044060735911110868443687094505056684847203667056538613743894200098493130358243138708545937250062766510075635390695806557942254143063147672416098752170807612586835277013071079522401942814238759254561453488924351862367975148340151663578608042705435406909265563502100118421646045081140615791067717027838492788077347318919288250624085402811063143933741160469612597765756457145312259075392903563918314425522619207105014926852268710052331232017886417503865526549777629716435586147501378493937228754139197033219697187591162694647377642505136602613218893648593980393324924198699833550682486546555619912181557540595965707645274526361648021795269494779778171086671097612198556365957189851649998230943360460211051394567607898446477056984609028602972815123651048884584837899416542110643874501395783157551361643241204758155945946944511847566448270401850280486968206572648852681563930588230146021732585222427528072672056822831984536496130482266896717212561000480975611211444257169524665372982177506565306239145099059883926074330790099806192041994254158656193286871724999261771396698421774870218129547580574903820664465116393503871953541190396169583583337116520394166057873186791826409307098486256136084532808927992124868234297887032034691118447102432576828890666065463084325797092896179957941255928212812468149048394150793045024608601761342187996731040187767639629612023064123727912881716039942987462075198638323038078177712217186667017217069063911403505124038247943363109081155208188690816641658689473480598470926310904202839535518552221769292069562378628986160971925637886228264789305221781252571601999702649204762565505839342983740387226567445339506702495084217315583129778256048124233124632720683471591559901656673437232604696879003900944854161161087826791142410714985963366891552121867957009046745343784725449269995994788149191432454987721270138311654092469722736728332149039998676173705584801327322299312458928657330299458367425564144747114207226074677733090274350571325138915899496411848361331159143376441075976747727467222607882389531913112920954823663515582267434107070161774573122883159119930972028254451127003245410954453029407924634133075648316515192664976025133935186685853289002322972758357203869569940378669317884363786755606066953529270402589761294360967519123911705751703672479861629755502789588009467741713531692672387318179513786530159831521708985853981333557376701081537454104701710457197504772112097899875402364804235802972162581377621443721307083675099489312756812560390774104679697065096710998570296543467883308233475538003894607051171804695969208822868513659804736710234742725153262035174911332805307513095606510843988097109346193243189980811052906573879908871118673531838711397075836228359102529110788543495701233898900349341630596268793335785237712339133776536587845616202717965670211216329397394176641455799973010670876007209177958345962966447970660997931570198297215917508006835889301952550897689894785668776372819213695554697938944572753998786876020497617834570288916579435857464677183019046004516746222813576813707350964460151779287567906606730348528843215171937090692323654754763490858180070582915101955794715676215608054237468900254909397334307414203233563116687287802137401971813917406703729985400773282050845926534234188314090573331084966084736318469078472509370625430576703677233590594375971430708597610722120193147851514445372192510582205875312234777055197197447259396538143348425144933056789249104434488034110247498134241295265309376824259111731684459602095266573511244775957929514783422189042154698475705999324182056535763316081570994206644760332034520445010447739359893958246751427371279396457756102442682446088990775337984691611861415205844155310279742249968638040787499422116010017125527844654830278899415488478821319680966050258074119423688896369676926200259467080707216113339596189534787721099633499704620468717129265404401580458721370070299960363680100522242396663868449531771574511282022147422259501334257315449857433268595817907210385645943788929688016122863019459563089567640436101258750523711536179871553428278140946591605887658985625343913308832925784090065058336952111107633204219136752291473463979698379418590070380191680261689453450395096086445167445133982852465592729677896661668694265993390048471543467191489204240679751268149329845761289421966092971389568355620651867500809455666560610811695239431147753418498206485061200747451719961476316229414653481238662155869197197812103240854579516316267642158805013753970802095256443086601383616779085197147692999018846650408423649824966288256109804426585862316310353934881169075861570403168726006190393167792815698236158000740717590604901681287195711242720916307286725596900130335432329547541363558025357582990758862097121223862932966199985037598292020350605291064077720949141405121247622141215327861470494122471452152181106363713397005429568401404085663939030318042549543815610164371444704983080643749397916489689583956322441321930905478143081363488896406325875585845977179167073105703545545234392700268035005939380634586377815419943559507595759599010995663415169397869502700586419180698883460788853396797450478808884351720068103153241236423455924203881290754498731975481188659088850067040544199326276515042250383128098022952067073396482060586717667343965787298854214518288589962658307189878141464187669787412356454827768418281084953607458811732575526121416618386168312182078679695902316048560685278398766833168755732906455936308976114307436705811684946730512113484130656506318142341857326761800026384806364521281747416533419627497259002370815048900103925400622724887925780035069863778042925524556863292958776938159439203952240306991408927016324620960869999603451887028739724013959528169215227522442525640238870874927587319621271862399766746261330684520876432764954631418312231610014089675845908279215426016699827557421029579369205534768040169636171289654218973336779621436929403441068874040980207215733333088830695082828620345584585011622508248364564767722800364683653563544974130384261201795192585554759193692699456837567157395414853241649445769405033956016372463442135707950904708578151133484042010586155790096489235469934623056775426996667012767471729249987090650247034656537010070062428035232470690019905989103560158466883800841167384070554426397562963791188459553446365520669152472605492142854639518951651971470084959067223649059375428342867513366569457953870700359684662361826794817849042210779691834393872981875770588229388257495610927326140725048031019085238546510576792327041519826991750562312377591851712775665667644966905354349794627549519596519970202267855806014025154768222093855772617507539781914664878408704762140331965899602982721388083458390599723413913652440108611240906871290733589404523011571971543943875407553119135125555969160708524046323127391015079645260216876617353974764624664131268105368347811714222948120973261394394547190664314597001973146357692095803500132538291355306724173684300049713519361225356143021911632688791047727959583239776398603666036059921206610439759001391684163723067645011745737884532208212917824267301326867471651862703128276525195304532024871178554260769436073644916545921684298454470207907553777063111141965802032589396096438400392018955897761478863571795471122764684037979302933097872891505392946637732711272258291899876200682215148832090606525995169180669507420475545118810816850480318325790357268777062689976245011828827617140794596900585073825346465281615323412102952663826276003349296909191420195757947291916754722003367068303163080710952557678882140231080025320472759263799572072193555316657442797100295062370158298391858324316527608141441960002210527645174742050086150471357604236854591171878275276546854895792623461394536378412018184135943110979446973730126746402218682157077494131005561019503046252703948727340466025880685442553368136822299931894407032006705819497967673391351672946473999496045892218129767896164923181792507431135066675402987535393250979303199571094515392518038145471538509033816742582163272581206780171367074614177848492871808392071357737276194122221322211299078285633748470155182752938144736660924961252730712593678237950214832273181048850759220054537729052561178513466945335254236605652506771955515484373967014594538406322414038511270865554875531821961193868680114678964401884063627329290167299104342512008051824351748411102215536801291444279682101945523702094041612390913960934347647411384373226072857471394857611131882379327145817419882970536137689500405398813355944497403897859469451724605293819694933329001108622299607261529407312246019372475073117996174836751471708159330512985980104624483777148923712896739767875417822899333780783067552851563081991564789600838415476306096214354190427024264153695561769955794487214795780294553696349171350381978161284057312766762570232220088560673094923559359222146629902335007986063996437176856722931068096437286200273043501675793721647759026562969818512750954835158627473017427438434571330567602449146346910127619399794821971361102619044652452027021546905933277689109894875009492158079854635016074050421494371293017421465743552777988260888485374887751756966633847858972037254022440424427406303108328860908611764767095340785807451288592932787625591663321068171915220524724321420215075465000796933613970207913744130104326200492377627369265457580381638010711023506466915945598925431428189188499788735256370461082551830514134734119681526880552150852967125074113511136403402548853193722063052717382568901934236506908733625286893996965291243809926290617919442875871748110633939419812586440476572224733173192616348697473310066431221719849360596742259259882589011201762988202691619872586437484455533082684466302520534220076885906541196174114595787742267426455170198121280955070990450498705890519982496901843157505146194441355280134861027529182280423544117353711886685101941914011644916385398700366694347970711945165121568468670314341342371536679931963379109082907320242516673658310093893786360416890639018134928837844678929343218840741472487395090795467348647405869821945225905196305220030995349211248993838457322126484544725782524770460886626587263000734171046816528692305521611516425107852149591239784271859288388818125950776626323092129660095552289819237152333134572611154035018618347922392201810073523320667597346197779455985356825783553501013067409346492338903237921437447063091929581671327144634100445405253642841826545003576187559583564752734690759444887760352311002269105991346756109802709184843499744963340556068702518582924826170339593813716875830709507337437714419211485537910775672611617732044384327565511755143739627957230604011848330675129807631199901725381326108699738351545863514502859467334578516561261031901719960114213720004414356283523116757171902112722663624112157882686178557919920720472650895607353124082573457924521082404514999814401256018315843745318495769072258964192542708645314793704189141585796194722413809644809198598401103652521544311817404028288407906379222422884626289328168249760125361255458803346773986483133540590158802795759377148238545606235580869605796387940200721182710558315003761752364907527191415383919065315233568328296586721433974501639412406377283771496246265699881798340020090828359113547638358890635810106431492965467910838356322680304600913321530371031065054124602229444039099694763097473705442692035494031007427171370871429814808030512804807084788962300264797862021652611054174090890234044343626092996222626653079879835490925496634236476713105651094872795189481236127625211654227007666214537320467252363835400258138471932962803972439970233036504563705921737164140640892816338751933922733807966582957096785595431753684774961434607556084194878136057509220226879681880500085489127103169071664128639030523217048079400480844204942093576033426575203602692327607575558335119600288425052346429773444432786824014112275495500335632381425438920466825006026691168599204819194512382960534651973891519576232220431728575657025976736119083947739018926118874216182408048122456032069960758110577944125460158667250797393981132129194836412659764608106570060150333468813346928835377144247302760797847336420399521883972796835703423628856315999832335716550716339334261627109034898762664318743499544386044307905734510356142941489174539157853721072404036983990593870842869796930060606666351248954906766851498183285782337327566384646057622837013174344154134696180653374075224759789851665956423568655270700816313918236788990150284584010853879673057474524040274000077512339306795853359863998192001927240485250498392149599490726734126504531166199068926998041293991997834766208087445900021053561101222202820786931872694994540064913620220164658797704894672825673665678481795709686390428674239932813889850417982157208216529349181455378671139169361674409145074592036565088746484925100298166593668377982207983702438247884914837764826237637755387070459180839453551127810846060211465153071079832207425083955850188339981827128963970324822492938977319114756182845916659499606561392064584175284788353168816488648696984085044742099602219031670083590183946264066091577010613275074888347508694666824569469644700260961332936395280398560159568820980152217157555901635409773666925864331640253978983176801948485706681093059001623890285744528679257239793762983879152434269862853975150762295244593006356616492781375519322423154315416906578576447864125809933868841822050823836855630978873640835506859952386733953278493715634027736491069389969039907621826112056608960388929262322054132539672265906555935537104300521237245237871874613149318423259356098663239726225895259357636708342115880613129718480255915247794153451624948530668495962488247775790355445310535383485242770693374985694031833999294610115147847183095435114955616181433013896019710846190219879146305992851568905000120228129977022700297577592245441836896252399882857329423796156595386397625197699914051193186177341160538200290258711262758323224064244741966977564273040413156634643408137094353312767332145630641864139211705535691857364227527739443733198642302326110938839247522757374711169186818723067748045856619720096676351445664527409958146552270340655303897318810097218134285434622689213609941834873808906335254483177664200642174516903756696758203543542671616876387162822214558003924752853348002065755923463558866722468269532655587831715740575814113376738820616643403433998541004765329259024903522513869691772039143885521642233688557528207536782197641775826345479851795499402700215449037110368667775720053905622254872578561325396463918440068059735880831964894873253096404374567640360347723478663971867765874606294091647432504419011635800549525971352000119903752577571535796221693536137975475714448431688150268897340062511571836373405054670256162584084178858557475267862118481563853753288351446673652376141757656849003941216535617682973119448944408089040293640319207441652712147850490269440253019174183024971388363645448425021374933342642218900779192727092278181664521090882263967551333342151188482452210668059352348838076748828525306162488476102188594493613834940215321553077930268635875612955751448464497367993886626460067712290999778593172407454527844299971381965586683916369925331662767816123687803179005122913084811686018203870752800988075574341499044328415829048871059167102619956952659493817240908324170779876954845765962470601033834014617630738089376094170190605405847461222043923449778017067896177338914780710103648446697672937694804003749992887176362157588975124177427983102024240702622842621395052499121768652189339141631201545502254521206318729822418281116065633846379993400012230771192419586701528588823527736410464026272457664929479266093509885832657994328501581322209668360219442337916652284906370872548688994936871429671650429905784441013559641324321949004558109090480977645656529725600885112870682419145625519939357018892840361473624766199031876157759267132560526772139187005143391057573834792205649478203039893760207941496464864092006815012037015923854093455372023130130923377584878440176241143838787571507745401728516745656653386461943825500438774166519160903485243916753310186715601050111731575054547960409586076992280971342682019887641103867330551094427951507455921561968867266877058579440894625202649996275789355825317989388281701527751374521791215540533095723271548449946701396874638248959568865708522701388277577240101942773811430439369047425777903357629911439279566134323214693715677047578794983587101575423615210911469368572511871962589381887889100237094330226846236458988059980059398446793880620592893435165825000400547354919507662272069476455467889459313106323840737731560912298822065483924918549267143740105849013876608634940325123610451366336626591353563747181533099126589380655980059628474343711184939174845149475004692348861659672917708182678632795346530316130076949298351594325572334314699205517476276019167403541321874850903634591877113111499353485961448386644993705489914188529592380835899915081086424272186151310565742372416797442684280553356699471762197135839936427349802736889229892441153007779816996649367268500215410381640405855275670847247293747308507600535373381618426520823253333196398820960726383003600319490464540482816647968591756785495739695568423267262672122757392180303974806132135278687603328645124931598964921483217560315296000051529540421590229582842764146737995791382659901536200263302158322791064063630554270366591872993585745081016054470694825236265827940370490625832177027264794338153496231357932827330175516308263173490101521026778564918082483942214165032492282873504962377791347336611983675923496251518078328825371130133473953798701290763461730684734490212270722601547550298059410103989863013774965029504017436381342736655439519622688847390073579001346572883399984600383078674789868475410179136286533425073938937067420967579940766038562352253883183807956828527676410925178217109543103457042926652280839258803309507994396650588231796545679582060682027298895720533217742615270295836305606266924556397101561928693580442958261107557037347797529616778655841999097640984598209057440280561466354807181765817348626187520018851486629414463530225715905852579198269244973924666565380039709259880534766129532875450512829135252719217360973492645578338331649266442457386905082341979616103969339017544536302739396019094344385894464465465591568866080380597864860967530844985634449748343296830844730872637205714374262375894262782836600858199284596811130940438188886568853883553454686571061758994449651589452495819552808831101959729933678460119482090144475080890377908258749387790367607781220405637139841387612323958745175941503051446714243121677738567550268809349409998737154103869044655262390202713133803916901886679358467068617987902906887178957255393510001629206739901034549182711713794309667663874144957869313394465314733430077562071138770247445883234795654964658899621845014845596117762960811798622355657245513818653729732038252730014167710763079077457401290385006500862400179633038558583082593731527768495016802477791648188406321113038923667166889752873265572623949286855912433187373793447890025277123742227942969013204338486146715782367055986039429199958171750027818954854558624671275487961072162951204629148535967165692491340788866543127122426887095866522852595103015434204427427302198325750231933994823436653893256796751147710121948792682019915881276741835512465167559354749033653454764824294541446185182749185889211642492105184717518745812864271725618800557238701649316191396077847728757735124942830395039852030583916197596544467593004092609921302520640965538572269240874460423755658528270427983786307383252838471351734358387874838247561754041808851387692509667429404265100315398867922797193508781930352563332689995082033857196143564687053551317587831073527855211219952094808499550793536001244257862495826418090317628336020830667759743108375328363610433698036519347541308589270144318424422311703060598638724676529228229012522928809069513271411779717311969492350650790282907170950060503558888242857046406246739160270730024201238079183644494364412817885584277035563968905396503735839704032566457676684044549379925779255923998994797448680559424579586493643380697096461946271967769264564995953725564348109104577290706599042018443093493623463907625038733908556279009888685899631961387479280509943578973628340349249540918594593942168889233108780575723320569617115921056180589542950859605034948206181519319102457929337419119611541529243958733666933145039980480857179410385047526746356199023181984298101692353151497824826956709519209923870070205514024680359997203000385077285861154070072551166688864931447929642687100343090948429719557409748450204692475657443878961332940404044417954874762414668546159255039705131922984309198357097852712309112867027969939087278114474410563918515017985906323165011119599770142464220550251285705243124430280204754133941930017809610112046503737143494210974419532404852996945429622753245574497183006129471359681733351452453447269324635324537010049313372940390778649490652378866016791027210863306274583955212663786052163321610960392311365748849287623770013565036731012314735877902477643721858679752100960056386180608736702919284497774011465144292056012004081619977689087129954154797586724929945000955877009511952408455601891580445343332580869488694668185478916956176463458055514543448828229681257496091160592857169868988782326692596053521179334632755648590962585872710266894291107271912759794561180748467528111858418859503126326723698794885206575924194221753462711091256357622224581252744832649158266260723054422985917750313276789540824689505675597878222748346623154630057593136195050714573067042801108470493768140552282286663582172425116984774361696937200694910969168114769010024652908755740530964228357065533566491546903901375256584598924165793697777701281578489028675658383968772436339380415733872534689757157824254028447750491622096171108835424236918318813625123896174158818536825787642523894034058626437351895497759475313206834650294557310797342076785132835674574211971384031563012033286351245618046881327557509487769425104189012815172220806901035639996911568248664380607518011044484751203233873088459338066390239676626432601226703155259041972598003183532883379059796510048134857370541528088116885277431838960753052180098968871368767242263210180393028284286331590432878212746723844592333429746417140104115840333987640904040136569008578365627160369869712690291485603244503011842903413193291780128210590747667886186615792089290355661836056706696843022124339862646237780378042159868047337303038170725715942963132826465874834770138947615182958999403978735925225792670731707756141306257211099562366741439334614594526958186881681424996883616003552340329975985820346718212562984113393274200043814068413144439846990586253803378217141615907567646056786883390805099405606165165023374029667509853899371878619180519868919918153100821986214807725631599394443235101028468199341926948087164931829799237942104534353042898075045523904303858337664930780273898410402290419067759482064924415517066139297710811636353751733645930041519080880392425639119156134858306993233059392427490285213953395559684955383617290588653296178308309981857801789372126278996085079091617507239872482330830141361930390198668847435552900025395424161340495651720286220713675347136668502039784949311687149482482784587732257668960617755853457307689438315945188851277308275415556378604723514318849559065905038915283854197469007123951905492931467399220259796807213485280189281928506871653032456620288448941044785838898433797115992048500531626066196789030487387980149452162364690173490297605874647415675429260184631320344631457927846683885588038528872436486208914797854495687309449639568688790657634367180655462964466298994348001398374140858848042973446962566224992825639136097695585040005760249414258469848006736578191111918170860029823836445714472067266006036234325093807265490453283132097085143084993976518829514327573074191658469095527640682634169368905055014811434596744812280012841021206951324036458781960922261144026462654252571777966427764667032491116236664315180731490810664165071717660545167063670123519475521502885176699665158467166980762028580798093374614383114176089422957735827039850745067717497746282752051601312320504379100475147389019033131350965024429518451729246360507425284618540173577367420067907632273975548985566756338363801365380815131036331048562544828906401895827309859650056706628076450536644423490467298182917622689169655229197916704691464980251162088611513049483265088123001800052010906626164546670580857121187899034012983072076653649665434298783700178904703868228445818429422547084013259870710312167933691910105387979855758578627437984035002237152215133984249288956063137972672830763403677768504808289489967805701349911571973699910206322224563856363366723976782891349026743920094108620310422051396111478819662536955978137990981743841255700507846787583058232688402136515484659918489297060327313235330926402526718374626202991470403795540665748281735265718217576571349936029437249840881593277874521656128446439724686576462062186982657507114704041718082987031766677995410644056506833150782769401657766589007246256307889789614258684714788725946394731962269674951113625912087799804715185072788160116243738315532816520982302510035252492069299734508968464762026724734160012966937428662112432864206399939512495852021800059644286837291657862499907691517000099132563313913733049506614298435173467695757118757371498499870396437464527086417296998506040539041013073021365918061645722521247979787636600768267900851671494309120053530220893216007152183612871235908060825760190426304492855680317307914427408921398853788674914697349069503869584377708801171197999883663969654430308080340111818102858040100734123830594890201601612978620406212780684469555587792965717722456329299882874951334213226647047003351141382129512375293794201744406896701092430322291667000689570537452955284051126079900202359833487506793185789908694135687917892976116657848598844352404103300940884636868722790590200887507111757467604164557434469242371466510089548713410615192853135247461581709950274137288245858894149581082401290108464374918970073244841018414837658848688720166746520615339983682736273200522857575809115478026391531487690331171169190322880450490846512904211942513321311805242723728586751294965522903015879792489315963242866234876538946016838547156427927824670730232592266359055042077389561223570574775969562834218020924913681739724572785800723852577776087430790665640394916693375735807979722159998443641985674842920578907799814767449075577112652919920095867048288615308953712362526991434920236037379544331634969410146468256815053955755349553099499555926258690033725911962862777868412926445903469831745737353051124052583121780670864087007716407963755788337322543536653271182785874379797788441426138723187066187494938552794495245266305273478582290510712961350925460870306965369481660173974494579351536323036080196347683766294437987517745098541091461619892295779024737660761205455446040091093313823570965653465326459427345927376136543099932637983881100656332264365149632356990354188275149149792371708474367002481417315359583374119032758825819114720406754342871631021298445523311647533933705652238366394358367365088892701850259294622197976132391593762954779020692004417887661277722808096899425492161771738199988878466936199238172847423551543836485248217467093591746020914633002076066697810077970444298075784886669286385844570665465769564167407460752860835727491165867725873644572579663709838135315438413420858915475399227280684420472606875396982590061771632419161974110160566446382394200856065794941442948128791450636958681006634921423883795906255650653666917481236162112286771204414784822893049926377635575535007003852647755681495570155291268259835466059463714330092763895678313591759435922195212780586726090484772341262415363467519129714470794930023615921039209264352881831799909536268111073287031589879127218608891110751867222919326576449761429210189292980490443758889350541272286876582863143981762926821359923738437313385125400305927706682489474032854751672145787215712508819153766774778222396570125581631665691527641911016118592294699554787044754862523070773359885942259339141882021499817294215853365048636635556473940685981844928627035839611431509943511433699044519484630919400075031295608489318394992706285639904553350623080123605829684387262205622835092283746555651559403783036783251000809619920952701228757548933351129913057453575011759092859142666336873659212982411445575673943063077201746823135373114577102274388644295639988961443160303509694994218739040131265265642536696312759644931993937760785553504087010284133107451413564408558209840534683415701509392766937342940820140381110551415374793410455422789576296908033381971915012602314005192332757362998043839945537514562034549974814928393225214843739976972394370643868324364868384358719005735478818249242980365336882924164758054383063520831058578219086780328153424421718143479312054151219660870808030282168802968753510404422508104361512575123563360271651223258244502129380614991748131509433743027903038690256078865714922967994373767100165825713586073388432507798596614911919384213503841498107207707277128550382607266618049726244609166821885445334847942723693279546226474123507572322377077506079897367749565176354056622774157753385401871239410577832160174829412482302053852569671753247465306636418172619112859032061949954042065151182171700161819821997742945295478655721327617232401147076417397775363769390401847872633679867023825425897650937737375997177951206634902759173705112285666915180492994002879765338719082931844273790822816652494117789073206836010150315371973116324388430126618664457457297384135804230109716363911525697710184146063208015016196246349481370881160193920794885450482541218973053625072418646401542810478726859210995349765626598086156317114564894952575566340917689936065824191548894938012581687314114463052108699250897008529986187843376345394905616661989413813690379077778712176521915064243551913825949852364229031738482593334384887827082274884732280675070779082973600522000751678038500096430977309315910264127945790969575943376155893281754948094938755429531251649154758363046455199321858857763112782241398361929994721180069434056419376169002615880809276740186049677251685383429000253441762330079134226691066943204158353707555329754634585583655637264381988728508746653093044833260785957692343051413825236173540689597991660218059100961779431598979178515191630212536501573630006165640109426739763123671646921374723181783767197958626116916033813991412549293409907859986664119397978317908416698568258292887399130000627414157126480023644228785942581053144176125322733700546739113908663977805957565991495131029364307405578719231696037398420861402064575615824919609385740800771700000818241815797972521244860153223173972947125476169275893676121805162302230957502030246830892834386838389860455613391743946862389257831890529231499307844568448110171485508899281706178314112224177995665082749225718910145194752147473615997812764171429612756631196995497799318784963430801094489421579064194367159535812260964548863024821064866295756885024657805571209862224766462648791201378697908052906115856588366684503593140545814292361308254582394217266793739376472377501421524947957406909772488706070516932834631809850612155798249341186734658070573932571767373406505184521315872938789279534588038280310193520794801291885282921435539729168419922594389322704261807343919582893380730731474269052545476248518126020105391244008524297993341356511919498292153993833166979095587039146837949238874894793178209528491258168096949367153051962727125504316046804755446300524641745013401770143301820521545997066210358993082541589533360236857111166694275773805878665654960044007529180621039756794939543045837841662378078166298846588516488344530321346202000600143807379757234364104919113954914055116653342276900736431686310460864368559589923577194636698699361645907089227659449343674328596056221567702941622670958193893199217547671026559806308692426216919821754458995778593246490906246104209774559512842336041697906557641576268502580752895655363159956016782111061699762489433116126267146882814723400285027403747620416491427887288922302718914810332081186147624252876900322051080888752377999515110477527592675005367454634693126372947955682210408351851936364814052081198228816494080390069170189482644105659954516111416031854009269993977889487187423351977158334181104443406474355701080212041827534415623049489287557001723536446087193864982655274613784780498247623177365720995349088175275007349635365575655414103475385274691046841141510630826910082314244830126042717898683280781738345849848288573447757951087994841820748675115461948675069028423517607756968344682549786695776796047550024157697748732894959501257704126438072555322887202054505274646407137527333959895757802280657499419201460277854273021474444500204411358032368277610052757835871576481096120966464902454599621594291241864116361204984330155058974633163248429056060039052681937170271147580020979671340263487714094206415634818331162917497393562287418486859190404220640792894457140727856907246829752077928968238237182523288184715364074367009166574983049184792766358758094972081398760691337775535655443222748311414967378050836909664494834783190193881353050558844612144381974369152406139977907496359558042808642920212963273449689379146035424494784449962828445225155357567748888473712825760568248791442677040607581716805143505839137137595482111386404572794170737285630427493682997285446592681825764197047688055947754906051538998432734816305076444151518096769250112985731935408167219753054220877621922603731698830589310956580795549688013320954862980020570815836510373602958161712805633865830804802498546540025194656105895830736377751012029828421949080950556326991684780874059430428119920246148776524316752186751322471030537461108043828794764811308622608424983527154213475471471014427072763384105304529433520377512990566820095221433957762032244426498751502252058430027343767120115145499518765831441776063663575226933972702901285825528136143819340384456591904842112941209356232430106157606282212000776632718991175825423008204227635892200389734154008108120655454148796959109258623514717519528200473251948314362608105902909712180031177697287328378444128513706124658403990702871457643753843759070698735680340248063565231151825426487279467796856658533651938925788647926003408821115606413822515253830447446021711501416307867801916326164263766097717421482462807965407358154837628009952412514766632054745204175469898178862647351726126547829569498281749562630814674803419295751397220300244612835078618999182500099237662521990329777847618125268309762977856173184158302235257980937897307062679125588045574115053900954882222268741059126260249816411663570340369912663673665639230584227984361726982417553204866617809392628159303965714451589482633136610159424291464904976920371541622794104409864564169185914340084628235470575300717732417993919687097213680605116818019257991923339080235383649040334560416576018971694239257734890595063015195858870079348667432933798179336856166292312278851252785759610302840154024171146433704687142124297437509143803787305900816440037091118776813948150800652299241670826380496604453850968147636678548464384833620658794745940773557944622574344839237802402121916835847827849682664385958312785021646149309681053126520436551645643012960356962740366861959549152707930256329334843552896760422264882599650737045917833627685153985201268635187290349790223616612922203245835758501111681263871393253821973929415939848438620892060885218856297833991275366578568050548719834574722837745883582827659318414707727500669835505040960710644800544473437542027120070831376788972122649267907611590931313077293809787000145531719039825322486130523892522531657817037746022705755278207805265539119195613134920864033264685573009577378545439369139805801804888166511538412391236010974391169270526847338596717955234304911761675229532745878881627547969356820003771889136130600038722044760522804127369599490358273221562311676499923761021937156918327715056194045462679670066487885844883702487528042774101699839454339561243000737990595694923624509747330314666320637256786007787200476612474321190293901802397162688098411105687894876253668385511669396350647667692359304517004350584522036842190052402205242162500749414593306492815089239910258943572734270473914193966971712904057836124710963252717683772598997506107958750840424013841554888664200626632098749816056185443496181144011996143658774141329176260815936703255702878719963524109435491450293538372771467068629798393533171655366111287463328573408984603510098436645436343522270622279455131689154748606527681626146273638214866088876456157317825089706500180154287050837424670643805932224663060225541558452167049834835408803893524290831704456639591225157572856335111082598502671421046910071653311439038646449690112540188168557775098853333248091544567757450201985074956783661493655383019796829982546590220697796826358255580225399216833782889199380386694341699461142925672036806827463612060131775286793516218135946313414975744444480149538770352551222599387538142472583789678194099161105751620733922425791644000152877377231633458779212842725739512403353882611143125815536932176046718173228824682271221759528218246899857856741623818589208684606025195388842812035865490782580917804638096503498084372441056462358863122841701895421111764886473256045326180187335478714894953148294843446002048757335907818583896691057116427297083947133902679165444960542373217671408274250834736517062102258978092347525571293135921575597761683444670963775434947702784561575966915313894942354519125689725664055771193857750936288160858836305504520149137639368974231074439627166727570706686498303516985760878537165433200490685592084868290556882139540547341214720154782367010666934549829899500288091805800653808720365673062428671126457945975404524911416624069803440294376947545047948520756715393344227552672434892554232215266989270785808535296841542716820433490971979286316226653787532986410055768578048281933023091301252315877072524562389136135496095485784492084823433475364476968701953008834030249459783305365471135714238361135329168360793648951014055144075546079533147317924066174246031196348027955011804341759287780429865036600896555731463424271631775214875611199694135012027556484758627564365717104593571931441158992908019884188021099350301242873915255905772598340217149317119325261667924473329541050905152808337860543661020364727609318976805652489577685774796383975235400364436580382212776009170809598023104892677065967547858259844129196068671013222010807012106693912715514798966382360406003984254407318099933833032137932163657666727416551611996421796713012996623444075569936693361123917648268309005548128428458068440222505785593367853952489763156900447281143893583080576037615292279398295579922730937622390557482297684410011434277272576574327500501362399589944425373112572834191879975144638545659548389461491515950362489681210215170839272842333501273629212331759916358434912777900196061911796093733705703436968494031008295535083362732389188383063948004859835705080497944039213428638750182873812540296199131142098914749795862726979103492768655228247918463732606726887214278942957168000873923785256345637463568248896232084768170181397681715994750700797217790181884711062455022294347918027719600465509176310994788997089187055999926260680450059583706410592354716062890156943375595794828782692556372611411576040355980105994133981615317247429061019099554086921451454642523902867640061609022178511730494068220649163098962251556256931135094021397320062977659875799492617684584671580436346627912949111989932331850125508234533251856234267523546983676839439523116000412330072116361474381339607402160141514610663452793202651294639602276552899446741590734611973730463315122797000324800329252590389999867352420219655725334491372292458218984527478612519277439050572851282607568128947362541811683248777808738647766190737853121994151367426425939154882630926653153763432470450263731065598827786948182790247526320077316235370230834826739379771776680136497859875336148516883160990015259187931879002312040949359102942778792345891029927783130499222927086112584060025795869756740227457270507649417771709324439562954972767145730615444732957733826183129486807539318230135613844002934945822537574677422137922209565149456405886592942991648086518883909268723511190138653343927843896299012150699546333890429886361562250298973214031088667415073976125338235497430777040393588514720827020773540651646809416147696877626730446074362198102837968363629278565547467714516639457717725438518029503343673985617268410858722256487517598809608803330677047542447197965829411166256339591959229320921290497735318391994385045868610833244617603776415348337983809788287533906465294081341133406692622058847501454018001018109344192622250293337604191770143422879350230735403259280677745031001425470447389421551223814928470183171394343787574447214572730340160246925658024443538297066115743796764111135597565332295280089796073660011048261100859697985601187261498444969194876696051196822771653094847577943727655252689608065866554211708414425330544097708785760361515705291829999587936842928179323750892307448671633538917986966784703338140353634693926251160992942214981884046626687205692766051341561491635660912865474626083511385802824693359126187401453541631987773552045541260790065322203915878442372926272496112173780902738428828541723989694454416675874481899446445970491826089496821871812280046637786059013496650461274473643123435826765522789516377341310181002614182877840852513339453488539448794961862108842496324578716763445751271752119401482648886033907128049167198549596321513710416229435190996708331325477038227588654736526443022808828043437128225239945325514073272711434327211670271693748313342875589530555951258126031451284157089397795819112754136515089019245136390608182263878751164086870828815355242242619117022575004348637424466218972638385699748175814443539935843586636600505884737352613888954107501437448468839095597830118794811373667290396175651949300763792905003591330770354084270843117685525098363554714820247368315553180177021616245365461166656862029583313797693129245869049942239552712548270525392873336325681011615834216562621922247089253127359600098306836296653386306568260812828326246148802981082556301098121993468262125330005810999316836182196588147780886860866658784384012083174326165384387795269888990064937928193269800501127181998695063952123070686052632293461432628616386388606150069929136075652116937076820074177424995259859211618253984376475225070342430307521214994154121095855657482635230913528769568208052944574767844031676617735533713385148895758649544073056067093292007567259173735847491037826975817689281665123872928713379755849965876785929611916584065497275523383426314897202539045622121690997745252068617735236935060134617318293286203414195276298592642330473826379402255718331007076836128397223313284359780007812001566438743513241226806968796105658583620603201091212339562752553099744150201873148905674586318130724644571692410878634303733652171326260094495069386914014238075991665759176983307272046021401212842407241015665445827763088837850267456655305743187962568780644937509339832753726006126104785850393634404504065318476011282053778984045423419237132414180667352020189209117897954014768341580764620694275238989565913817055162527408467068550918815853066297819961924896617216086000512785477881833713147073024592047084907309437697201251144366246181346463089788752712004847005809761411143912971405539190365173386802089589157562439021436770636808995018347557899130459102762377102447859002407701511062107216061868350137860533912420691625271146592293728795720169857462700140348427721576323720566680452501656846248088034712521269857136438681812371249907386804849988386481965647477904065562377326867416335013059974110652726597728666620894414196050864752689446902650984772658343702988754576589036906182462301004724836698317474661631253724244860142622310963748724159026776942974102578058642813853846422507201431523385080110107117879871556822638955621991775185913144327104513799405596407862168709474888405104818289122025886745851600423753622180668607768421308455160157944240659228965339675845296718930471434536365796511336322061342086283380054847617815105062026024297358897884388262244148114062871765749122333030936873170711926941952971805858319554772772544530127166472366638473017762825488839456002767062472831623075302218609963449279371360228997328701793088237407692264323783142917581886586305798555207898670266285502887930297166813767089516824713488306918342895174475183643606389912003972682767717199390203703255660838502356858939558834027269875062096179587703681054827887066514482306433564841937906812709539703958244966727160019170350724357277714497643119762462564314886439059284653332620388410213431653419549982977918356225696024345304294378945644587486958473826799792975253753057989039984901476756556644430138013087398042166926498575298281748739446821202670127878262036887516453216110032362600906766119384527137024273517364137051835640192478977087582639948330522678741638510396318763478681389900241743323834624596886381627736641012290712120639982389399911029286854982015797643853682744326434149535204580884644220973373299281699098811860561315132310667733896099107135728639393627817503061915198129500292528666293877499703344357103101160450557820940249845935088672949991598433922923984650295666350429247560527775956768593746663106005543221257544285993114318981591180312847333026544642471204020338666749391598565199765883721414930934013255804977372683368054624708906169125453136844247255251574380367925116364770575264918845475395728556285620613644574877302236495298567062479043474467791584195585564228795382192183014025546333964683652909594927358313458240573854660075048750396575588190562732336082024468802012949437820666707528209219308597257835484743396412628510431377163530073581823714308894013109725416075485427795364481095100764812148954884829152597929309722634401044811753707230254271387549877875250620725291256537510035810899053970251393540211030587724092936151788115975857706121211723646204019534090186469026304685793532645023138192129930418147585763061646844698756422410785718819734846027401358771869590651625966255819935734182134025702175050154437776226505843744076213402068635560778077789447561299593049232534326719940227180288977813559911663021172846312079288540987874038307923053622139707894682057410388262302663279471029654031386423424257326811079375469382661405099961336054155948986364693231087812157550060096704463484539267350371861552376344116517576887764497338452855396864815118779894649243508778539621350951162438486215872589242249603248635200062436748034509126699013284322929883054137215289915390167366893208164431854892913165060852272680332243416661353301799386985823541378394486024079206641630658250216349246382832911850098685758812745832728027982916533400430093326985726733052879394765157921193572614284914713738023728453122781423405412321094208032606739813059807500649908534312467995839119143227374223174070699633044361908507452592595467499527827643308542781317199392706988487707219528791839852591223615957488659572538245110637896886555253624790761980786503050304839911057648875546114455538820652966398183938803757550499675273915611763518952281896438540175602837253166367509445383709622198050483999096348887198329530761730005211970078145386125090708725137327999388995340996026233203257523661305125898821648153257987994152209329664633794151911042737379231540909566803539969371811269440475641664546565240089668495840912548024133033494198590117185365970899777773983039419425318320156908596700573000414232039262480846250735786117305597497889644474092708124862259229390935083217901998351193396033028835811528417584108456500984687104364506727000032072957226088866018710550114616435402287864068245618737373755029495108321601445652825371721353625398724442043802120430145119736628799255208227288907580600048586906168472077578552885755236105302269184985623760965435502382291775745116245411301324433318873387045062467363334765140904788062513139870328538855187628103526072238449584824225375608293640605515537142186600323877582271999920847747363438832645112067504862476887530752578074496842863543088106666411939570349944320088560501340267457712898252191672580580363121656896990507274185920179613232088266544669122948261751589934740403466651241176358018813788970696194922474374760767507876401142304844374479231634837435397502480716644036496060406837603007735213687961441733393212517374262391628044367534967019364760896665947162454172360702757008420216157360092048087888413678783658083760144384020734149442194602379773802552062107093826543024709242097414098504464965649734600520584191796541831086863172191223528740904536346488815736201149878060811260645850330645185017503863886421555308699763227950724861644642831027349903887856758205744189195377388935837561587508602302318240954627551472207849603063146366330703815080727176212054813619366057730954070241542444687779741463911787538561291059448636844992393031499931872755859656535562058648623218568334116456025313150619843830106840988630789576862600583119025378719265815990069904082939839355064941196092950612263280495317677777729025329442103659632139986913675492351723993972826315794951286741486174518853077385929086252169681250031720602768997923194845817670054074909948622948502829368936293937426414185962349946954720873707058506151985153673820357110012197600754973302940838664017182946599076949193515123988750842226062115254569869476409749925410812975795508797698837159417439562742161992615531380603719953082892539872512614839436514835155947585866486203449334159347180276371667011100599444196112181412545781082851567259437586715057677998400854393228993146832400166924154148197318850513393345382521984806167294886510736246479406386423665893109827064357078189537977792648332250618542582750625347689266802138845384785536418596453154910320585818411806785184541585123366708530092635963971475204423686159124778153012805935453418240621326896272991541591114416257797170822182893795236579181945668793898155196078115238397486385474991230113111187569158805226665618022151750198933835230445051573934141310281956806257199416596906745694128474263971784856688910433092311349110733573808744463577830247790640439284427551624058924538629655452328336400955512857650775386606532173683183080267643295677168494275163546401155206548030408495760342011802827402657357818248535975734360596961686213711930325475390030348397409221061210482517706948460864509051853937509989830302998562955037787892171625525383178199690224325188231095878088194565460067333817415163123253492850427698408680248479601982578627634711590647461743673833462891327279465538478809735609340323446024915426217542110512484919993437463230488487545239495605687223509186111472778814603252893567048012647263579935467549228946453934439926577750574531797440103987839426802604660283064233630493418206760906367996534556108536294562892009054741162047628234171329137905806181999039877338247810204132416811106369175094891168474330322828086780551256595755664919515781582406745146727719563760172458669220962281076915530261875400762879235042000163359137298621337459286170095599662428126716557025698886586689013808184740251485657727822469363646383202047381226989330391922278865886053817319965123053242853096171151421683001299959895118905751965366949739400712452417820901579367788389434275221157445315989135173717424289457838442956095965665525686500603200737457364436341693710753074890106920464507943874352745068403783976758827942979914536349717486805390409559599198341820987849059599767448281792923856699205575376388932966211948795311495172318486207924472984165708723895961776661012321611964752336333556894301625832295028064346521794126940989136252861949719408011681514744298966880413480629976652799294193510719839391242129440018181177677368849464218693054734836849271375401465083076611655347212246438682593182263058359531230473915571924331419138537240471897569594798956406481769795162670937240057650651445760277809305286058623792949083421312642989910664356251774840149599108717212305487938235009499092999690218679598566732519360385337185859897907181394634388249685894689227104520628044353039566783412345933449952589134171173168634420051107072127805403434305149388702682655052180521765353984857585747625952889776161776152982040653030808887235043319238509144460596419252055128744754814034190684122868304554915266287521533486047126175096156352506292455397432719790038612607592895734019086637986127405653959720283544751130119382021861512248406221101755722557264624407144064510977305589745568614580035453372414715236778270462748076934289193015713967435792232522005844640339146556591362640264023301860228025734570942066496009535841242100509555443061948375503608054743881269596864782749789318574003004142231917014224910516986590788556935985987310218961092899369248620511706175842224927532372249333704476807371995861303786819925114521062970334937614259305634893439024962106159912244227719922629049526307508149089864941034790372013840742600195296319011907162819183813128054506986432870168847078005099307323307455132853345035269608850615604934613310929811556678413259758019930146927686822397874180504419028453653768591216566951146362638858448673910395512637225950596507170232769996932291284343098273712756607186968542422942526094414289579053122418880406247464605015386737948187184593725474265759301365888309108115604893890757285756847528516149656186842159670522247918770470283422928613077502612356040939175796216241271898498917151185358961986334794124659465006135940775752318310502885210595979008997454763874780467945681198705166468101480969968712840918461854318278418831920265021944309462653062847328931350193552838950333907372274609505749121693037028961800327463038454280278338163944975546357204981108608906745119522560236816553822599426440054016380418867609483014509850724326295547631170461346124835551985154702159436925746045266800386728955436500556576553218007354107783733237538216106930192396826514988054197122787549475044265372963082427618237992981568049797521349989414177868531205168874604400191344070726022697124101296572969615341483257737269199507393280646021073837891229063258876134407725410193201834700228054703082372050451347859529023323010244355640742381287329236525284717723540400140142404856969713400720770439345252627653515928328731662498180485841926899997279784328408585286572429470062972664534332213828228199830466324386947849734567421367482138510111539538751066583828971405651085768573314589347166652797757678763992753634680389295254188630387884993078765760845877781190106476294983467974025485587906111737945083491102358342662167772953626255339463135729376066247227132970556224812393192832008568093151492545881307587873813833164232854936419034502942160580265232649960687089391601055708919447475135415470221896939285678870535007449082538059603147074325232826224843255609140056302321171350588045501145239739914024086776247121234556396044135604280320283671174211074869997994135233944235381300374663979667815995834374873523448129631233088712869624657422422288996587325247904776857179457390514038145768662599381597265156955877176435814066048228663728046819656279738463057764922772100091688773023631918741424319728092273863877418531091558069771316208519568326116706363592396318052151419516840206616200068789672324598373605558946027748110050107679736073643075434767788830761155672134664101979848528092513289543755262995615234567363599392651581188395578515121012721604158422982708071665426522886805353050443686399866884910816803139890111613428152963586615251967109081441382942417077651540464810215476815479046025878375083041725489479937389576401710696315951741732651263476307680508998803045522755956875199195093581327825979900267997875845457318935827664312671905635229955901389629223871003595751062956937568259868591055290840794267973161854676991203195463357196810585205725486480662745376856301086830020262020970867107723134973120404217620580689232956202754996064455721959757124273978982637837352855277887738177224800863151264226990803323308780590253774965022554998244452853560271141629697461246886101482034198793738340026149661489984659079216982911351524878964319794975474186131350931140291269286052193446918717640541490243293727749497274592184031318988760535189835041034898607526216532558495664977477322747281715570190481421111101187568529174731555573870876983458883624517869856132416030436252288195473767359777134362242616594567666912179827475181018444622450301756855505438085801206194917985145914406657744277093407186056594574007134473722772325029889887377318964357460866258700727795122441784831955876225334989326539706182140111242011606321210584162543669832978079826069762560905554240669486009946876921760796909718361582008306178495065497558497642806139221092183682199503546321014424119189595196641655755298354041768277422233911643096021090881648019041774334998051590014998077783588168463085770773193512897043229076332799609033634044696350616590449239847874775485977534993033756354789907477001147056627995132452812215702125534833076859343296801668694673175669645146308609605206355275361525981900370399797729688568344890283826635193333219687073127740499371235811148485558986144540355232869679784433684080062035174496047293446595907590775787219124393787270227648284478154095601601738817468317667356897176303151327046558080542603634006505054445191815716102031275033535357522424093427110251192866515561428549507454050647150565362245006634650889420133642232926308001011516712050140152141514358779318426484311724923526907187582846343862487518878018881485682109044028441220701813122746441317767456207337071032152059563174260354609341488172981052080067440390328256179828001569365211881228937680830547520645964398431724446184926275530064553213246283458613635207403204615178281342852294717520211101393631068588888658854527108786429719954842692772219971711807020506405126554286935517519497080268470927390505877921917611766334477582675111163519631063078878382572521200609383778322583371144363837726905538587154865343180711195795470340083513506971665737630738016465129273616592249173794359489382194355154095822909286219280248924513080171491456716174917690983520444792118401783695839070880643142190009072062714916044316387762626461562990204919095773284046612291453786286437723355823988287454278547620055257302243341110591367127605559906843277967173298586865553842913025058540681880806916404876731364487240934959650231222616177176045283050859685721565601892482329529378040429466734099704691446185143287808988092004251025087272384794171876007064475977784688732575859898506520573658395812657488257992275276928532121024135465735603868398823066684886705012206688297283051662563162010012364662639062643726198205191122724254514819624476884611294471754857228024272048905920532561694260240740477982656587179340731350898378112212368111453580122015026092631493814267144704797534492444020810871339277562074088321950510292861769645476119588928950485941199638414849527546648622673821839436360326114371871997995110382918210729241069611503637907756364551978770616259908209457643263929186606536516980548713048447434716482332702234057135300216462258433986118024045919317572612418592964986449080777419378614974809566589953960798913399337953977361047704387144312909161101824051703898635659454155379407059471355646610832187770574503979433705831741867466202174273108518092351195993898095125754243495467121187208814413231711256555067152746307969280621432297072210753608498442429262116505171800612742972286013031356750806273317451520485315454725098860477429300081001457177730497554221645269040874955324273423688411285371871977076031089938034226997021197008168751908684392685663175002567812989742007655682425607128897879573477538766480069951275407747531814558372121801900093408687353759981929887349296985915386623140350457974136272336726515899011512056326637513388624832979761085121377998132167918395896531260484457227184566027987524745212242338138994443447904405713213736725701395005130154812857904758346167678236457699755196413686708789766963841239198262509856706730588144614683486174769750205352521691961287959205886335209328437116647273379538513930957134353387324819613902678641503662767391350942708253517954291460467772255895104580400656014348118520443906541751966582625160718670820855010772630488635639119498338259053422444911293182577695172772094946188594207312869151863578879614746139948200536061039161929077824975398419625129377636148197224338584204768081607335271731726991462508051613330136441962308703493202380982191992989279541541637067602602326293978673786275381819740924989002897173372571271058376013761257480134785371050313700173858246306286857125472102713782619881058360570406529072489194811276533695407059425572620996249188865103182835872531586893802662406097531107963041817131730937368260045339282218786098881714607461970153022409171455087902246595260319971809194166950329925010973454404943998776760508499112151153436527754782134798180584747418006506350850805629938636877501795468182560928014917457891486835084446175664089129143328809385240240730054504564951499519919417666720770779038140811404591503875637179249338590371222055379328777833400533080387767764490953360741988413311603338563360147589374646161065417404814141986306528049012242970459790786006745027215750089261147668991366036973802636866024791235586866379374670383620457049288415672298130265405910636828234692398972172666596908510572627903073403633654929028997857741716441108268015111936652850376214587628320108557137925456430166278728899367752229725411073466116650899510586896019103974908632406473446997853129960312851145841876254694688092093079707540700642292220217868294114788395331807757211614353295111379603380477358625828031266225793414123960324108925886805902541244070660381161847635603104749741703073326807550155411695333712549841871092208667028699325909135828610644368496288017552104483440550664048580006266236768029149156713113993119956075214427957794133608089212521748130729348826695030087727274547054831546749387223343913687656592854785397163328957996568431503448592297164894780439934972477713817388162147437366422371388888381900801660288456302650446900766422290352159245105964109429222801465779064246157786419347795316342383049564532295870098674028733010246675499114147594725471614181963752687343463396747689534223719676672555595490825347654786399504649220925973423381064814074304226139248365919177930040154162517944602276062234591183243153905020066127906693528621179714469700299470230897432707792811976538027876937326799174154791821043694705600999255805320602234918046268194098021653022594482293912327580489725581375356097731337539984600486835998587279964881793330997930362287167220135984078406473645039531884438054023730135394877041104977791499363955559469622722244380424440750589061109500123086185169429798247634883471596277579725921783011127512841770786371889282922154914091595815284044490497964927718985547194781040024252312473489491151530879879200289076005214582797306943242501493052523876193331367482402457927390397051772109293090051708107574289120917939383106500027176114033327450612859606250301665808706404013001893271505155770938220533670171626242890785531383562352841090115886664695418717869590620687428982052084501216371232610057618441133957572955462833825090168351682462836733911367754689823622192283141055823475666929328960312479501836796903989787455973145098665241595695660996254680316317872151275479033533892229854268688648942000908405728887563388089911893613103042614540976513027994914351954670858021002869520989112131966154850643747896087205245245246329179686790157163998143089577405680317304737331979145325433844970691355660042704024228804104191367441668206504446638824786238404802163672377825402586220731516190318632668190391251652283923786732620230975953068985080845260026035227809322805274350360679749259689159766030031743333979527465729538873891143950341113418612390768678259259776857322372220121688682019598167847339413613130185629614372045354493418076762638948885891890820372772884894280390902292065048701419600818632515095384311838606666277232734378164405281236182601183522288341359416695227597483781016837849766832827526271059168656250466563094527888338097422596181656257204818827399672248059811697053864483681727492876483223739261956492245819470234124498662411248860369865817500643131944342370848790917358270632347059818028023357067085722199701363683820830097728236480369283690378087287401274133087475797765052571398347241282115328629458696772048345749805684975841271588836208977946979194147066163569728792755920439304665350700753569974693371735151339488318916493086250327681612279985751407305898451946327892055372332326250062514523842425660825358526021558832329966168669647442134750649036321684020321090787458873263304343209541129477180765773441784460222554898411088010330031384122468765282195383746051257794726231287224980579735851794584361196501355137778968512173264078790081466946259017549118605882998112569275602198720493909668100699643614656227022357853342782869216038096273565100186364512881952232913195132757138391727798528720455565255533753544769822971442439899351372305931284954272615602410711357630913474026308607936648506878368071199252569375171619423311665449386466043339436718357638035127358515491222185350795730725402649996567475640701551682006882498403308067362472344735505161540383204310249793395551841194889140733626551480154225603870168220932526368076620603213344058421564684149697979086718699925168690240686726232111417872508598437416371951570650521936061143680456692743412628390148278379133631305829143232894890101169169898651855488940772785930713994127413913896955180148326998165283922742767315201412804102615782622139112431977200042156311156883894941741774438427386974235702509452210698954871849367963959279568562340591222179735757688301211718050223924216499508479268378932560070646941259725814273809762532510068069026495077829675482372057131429583499448761645695807826603542999535566230893294870598947854456283726589847259600229142612433279699037604118271512691773638687663759292105136239414729746238527706391529463867785547741016860651023556222897977720623824737059896359683777346006611564944887039830565421967333615898248316825317227724795000260796401353412365802311534223462078489461401485313131067340253898180467347361539563224299644379046417487975920052679245660112070105766791571852182158494428147790483961735908580331193344408548231361978490177186597909618807779148027578700841987510044291950269821228619364496214277711397787236631423456159788712987175178860808357315562838624319513164968268630326647134246934396146587753587440258084538341417467791133245313054820589510180411827928602699362691617577732356221569438046472326554220635697956061098143467841853573239864334147163727037361192859035611730816938503112779314578017671735321790734830286993973539067057904952027772524893563690724529501642770867625199297648027389617303821487856375352145701729414335429639371975391703276379624765957019180411900739904933599861577882038448168809625159927950710493802754631561419449559125688887270067194048648144332020355316422965898200334389806029664395221213882464084885321284630233012804171236269736310378943220609797842777404277001677708868132557067619990954278691943742428233884296676806412349766465911881579999721036857797579199943017853112335396300657327882141965650498719378004022715175614975130363913917062260616554960813344932369173646913081325579176871749248836927135881925863746010141971119630136512490754447221112434030629145410119346844291976458936633882561027875442822323004635113296171020057963222965772443504881818215319579331900495505697704642833275446560160121381310811088861749855533249033293614122121377903175104419281824582942697776077761639670158428892737323230628448409705906717701241087504308749411998168119852115111475504094711548081582502776831065230316302780966030005640793754300076764357130162462177436936791124327149451985780318512464746114342683999867837801964225428470934267049782075495738312658203128749544368806385862555359602684446577155852203617631286698145446285257148161331136945621882861556539114876730523339926795837289122950760711504869229732197623632626362741671472806267807724296015410918639205782954894276724357025358177951437500991321895782276160585329377052080697163383195092904749753534955919035163597346651307134461580391798486712103699018500890836744284718387366306667663441293753778707316432255038193325164843388876736278815872245565643182130699146922525958215119999879246723942725001601835955925603105760178401870485715729878646298611857573112482008947549596617925132870855078803745796863576356205462765364917910701665823692184346136416358801392584817353042737170912304429951666946255380183212936322060370520262858631218439820653793025866168064002627815225641787809808775066461749491754728183554764343539964368874689080272335705282138542746793075269600911901337865586255671080886727810990671886441668448318398975259951530515570951172022921467253415654477575892759940541400342418097143129084766018295151085634029745627916178675529655450125044663066172776016292259427365359397964911250469885708901995086716478052610851474835562024016999961115281128272704996616548296820242730746370510489251465172179707823932084349693934894511811574662679363184635287422142043211042877351416987726262549495662302076262556307445389040514028613657995194501294483996172267317116299208235814868266625223281753349336414620211908007520275781496357420312747958469970983373725432288383855006095475125141610375649378200069581848954867158050807830476604052004350656114603179580901842021222346665243576252695023770679237960700474033754992240367980175570087568517096681342616225008625285940810438058114744226104293647215106756314042954454746729069607663475603690727516271730448764540756509728520202510889116726281643132887091751782647103215656672456055716419100204055488367742377382185868849104969067388182032069243216582574148040144873656736149514007848399699623847483324464463201538208557735283746171168022561152491069360301617101490552695297368019968885770977458214277377455158499337991319034126977196712761214877470399441055178610232584277783992851382301320200782878541810085607132327575798623388509037836982012156507279782652613737542855749819983525676469952915854476650006917953693513622583694806687781109593659412632658568534452483811096587697587574181662462725494583852400555731563267800881036795118763772618760410042016532756172228798155204506819429193715957115487190786276666723799986506706476540275725674791126004931057444563864059027277466950288286636999146527472502700670738072774396794526426184079953229345182749541224975953009511237609201627080643326472243736962137409746338486088017128706209765516712142053723302586407869740612421710476356795655680929119550121552729083016766792491411226053052563778267674140668457891179996172733652992208601901947236073712152314574438157062897598688474842355532360049043673680574502946100302409356988364959263191732347545035882035118766053753197013554446871758580188651129200377744870231201628102174513527914120219254451183660084407983168398899872642239285336836164337730754753575698178903032938235518948668456563225278834804217905588359242204084536896766895382592823974158723860530504797251823126917659164649354626624457642688414492351874000244585219429238877610253864273642648205335757135098079166196608961206968641122782194110894785353276719302421992201583401479603133999342056071232643685886907901893910878962188837828086754504661469612203169525564078388099136682557572506665743572050896576448933600184797352143799879672231413777524984290345284234876249288932560320724070621153713274470058024318025041624602883623492827725711771801309564831825874872680453880126106799425827890871767878814502894267812059492833935204247415670668294236920866817829425577792120584900039103906898908462964630190333450336375569914392042035322586549023597406425552348738954033696239178979380209476751408381945907446673670594398406068944966361958882771815702889683602219005772668633395485380080597456941378615840865838656731419692727322593925990161594237112499383332581613053828599441660419213946055836079461603955629106345120736616635920185282994365528031331732829667336467320541964647076845705588682199841653737778662788934820244229110652798379801429534304061094913517297539056645338496135751931590655872878715365545948321634542680803990293327303700866246802430753999579002308262928903015733562756103166819992402306461647542603038911360622324416298134858782660343648819613065157432615896587871639309149672761421061166593674841173148195966520487825531725224505950865906336342907525269023795989502697184762300729200421328112847612987712336201045223930463710349478844817310271548231389012183800425807567160956445623132474897769893874360330739039537114336624674825454458899529682413933593801281616312793279776182689035194983574349621539156176493810972211570924805554445530003289744024929340428842504194344362051169289492400961304149342009240653353300923619976441290457333801604961506674245670631176236410367567371453927012859567232088057531981580030723954600703874682622597248832104884330893101638439383275620391247696073086716090981273189236661796619534859701128983435215814656349784398933105722521083476650923922240712080991179428916855469370694909322560732894898693598443274917190729836909402191699184861804583124595596671695430460319969581876382893958018453837684113695246374985285417861255369044137204936225882649352458512363683994506948189907743930076430550724194958868461103756041567286568897523721075762388114099333958669629191983769420235757559341174174824893869888358292019469843360490910023143524999659475738227406970844096893012973535899456945163438514508053723327790405061577491090304087482007109719255452411695023641095725038682909280987996769185026944863745384982570674208770934028436613034226628252744843287859561770126095513528965724675474710572775828087442018202470982358261599193937142616236104904798444576870563252693248731421978793743416951264800038391727872353923006966905383547209821586439617053619647720083883219533952189120402805114823718267667864148122021622636449115565987605138427036987935304063935536589072942729237000172488914652591652447639162609400864903167008707471279595549931370971016247151252329510115089534009336560021013552046112426342570739550930202364826535336635144835775065780088220729305719897432367139374711459234136633663298990542250016406823667276579721699503638437879996144525368343966534582897347278987474259993546206237555946019600015019447022152667964073333527186218272461349029960489291504978100673565648437236207564280354950019881840699737202036971420830419105962671763849310524175298739534949727775587881819980001997711511811169997916469265958454621139185393786793295487381951980769907631685978796392982661293926148997218927692111329409847784756135154726279564606294539512162772233698415219528801039608806763159317567286726152086483196312197413442209301029919480501218508770916518811494426650220558779282870607900407540994306051179152137978176677802546884757467714476611546874742957554138842933779603127516313222771258853953821448744732352029948669998149179552391000968248036602083727711600775459146819536869154902782509862366639627957325646814575725299100705387856915267343126253331299168526358643455403622703591499928986726250917944030542962387076589892288830049692418675113545205599901817692786132402153145270393057797657250792711793109069313222670075109247829278813438133707420425674515886437780104613343664958100229122805391793392652113678842228448430780814959031663286220384083356832972016236419647592628801344499283814760583506582717793366062730892293186823057237516590693365232156987695013156493363806313651900517820956391406690283662667071454359413589355045340983602773769890098389925147301590783492876880011950095232492787271425383575421707184771646223505330264250263119134433016953204318472399865626099030348798867423215677003899104582723281154110240775672022516898200887912576307780011399413133338330519094449944257619994793290910474917345278967551254023310512873049934533075898481356199738919498844697280679221822526499540024701579153690273493406150437640644686215873529928633566232761168147506352536727304844744933321322310879982888952255475464785215288310656127769516159132682502873723461144801685373928944866569497872501782627043884530118436358263668531753318647699678703358473293619193893808092031872879064279346654414327006475703445788293834495509864718793787446786337078993624058812562119789797340995958230549900946874855895601212148631362684362556778102089310341856195373958186539155632660944273100774289867158549669343546037345802552659294831200588588322397726571989118220306280446271974029202643697504263587455228081560615033494940643627084726297253642071855944974468423760592155525543549893092062042910032061929021844002778676946182718740222896542199494993713296807983023828715168224481949117290234885759792048104527360540096607109239783928200094112522284443234252888563706004288870802296810789092372675673611240216425579066781942547210005457519665559866493991044572871328292461701438881409501746560924040485114560277554583629521794927970652798319674918587222551411000418271760327468462005838491331229563538445383960513778203190232108952307182013441336966440714482217667729454900137704478952219461508491779011550174673751465084912847638412263008737167797874839852238654855454224605764632321598242117990644964526372063996540046575156593745816313646230627210123329571320531292788212215891341482814571730569595593264856910123818671929317030034246876204679690254768949111960427793217180132870871484024903362166870987103769670959186181501327980467838920441490745130948463582093326266792074843931560191762533166859319473297155603827893771831616840540477728705104996717761899717530427826284023388354565273747272010362533193638879774850566834385762482447649471942675244002087829334390783803968108507071083343098474296066915801613575229717612142170007709682644819968280635488307556670358488794838203174850328051755271074208619153966049591424117132104149245023008697982804252563974949268919174750407283555554259458480705636175652804288807598594084978240569476124907305073353128682937255057456030808969546932727434339433130007779997191142350702656196377657314121594112871710576455710749606103668016957722463693350962382429385579993128027991395751836617998197486131750093477974819359097293104622778961114728255998866006688844153694222022897357139634147319302482090987113142307010402210192364463604193991970719264278158238667243803711709064626854148433788789439580731468997974760991012048310793416242469440274961983171628132650907180309841889747093506804159120047912752088625334881042366203285053563915708101498955303505936525673430973140514493392636496859632988059478359691860961857908447627359348128550581560754656976224322886862694006245363074368029586898118483507506380733524753113235457634042182562300575377144078058329791651649108352242984159600161522114781768759053478347758239958673886323729585852718465123404963392921983556172850550592068750485470844700355767839843844292232247901957488783343379035315484855409444052251767014904500377361627969102289172556204361597159431817032601470001115351751898380140865978733734599045151963496484096642914198470789941938587334850360843581910636765480088921028647051550307223639008871214163910704477804736952092452574528176253077291712145141659851058404480621213564825793691442557694392474527755277743053673476321517375588325392771382842613793937387373163733933650993700332138279355340587178394421877846592726860308142188502858669083392175576686017319476997509894262935255277893918500833463985657143293829095979602301154639336579235141351185461990940078946359795643160605208252248727702722578597601933836207927010978756667560475485562805108588406106129853570247544697480051873233501423081704099203725110811069173332729965687213567807775050692025943389390563161831841602216210862747252193282999092162749545096694014747962733295381248530304295064575338088645403530837724408044482960099405675053984965451194654565913008345930110138536417385701939733867980297974850453500177207298381487838991199040409968412409021395630869576008585935721660057873396128585089656304862429067136025334390830545608691927112187293990463989007567221060133965399273075294733603604058615774183882932450143280720491032801841134699017020742787522600411437876201735463665504624539649254374062551425198778065664731947982385781529310175173945532643741546287428411027314415118341943173379382868468942455320522596501031361045103266757623739261101119888069457648370378803585799396694292183002631420988443254291206720626869372705964110151348102837971866125090937396837376383141945360942756430313635010160693243999955320351931255813313663970226476725591814302132217399940462738801547935549638575135705158042697414269316573463692191445054935206029014994220062160227817414305357105540683456867996041276300010946074536822313236301532975950711363855967173766470700788216103828279341042331797892970063578073945167280931681910961262749397995061268904060716995756179860632840461296980064704408580909737057466601888959461967580513780885286880405094162597883146075563702445633463902363186714003904541754109955849462075022087317679558352366333795673774630093382422730616038127160017293515245093289208675412328436159233401432518233168253595364880602601972113352970681279663833830653624431655600783858764034907195040841574363868601353458710348800699321338536608640805544581667127848552661913893972282262299565626881708446507000573110251183223988974164281705178785235064471360947551327455664083119624051571710412867008270299701225902056320704352933473734019055765645477889680483306342029374960647163635673996311528630005237446063942877189120583260321556848535038570771842498735517953352213440983808614402669470143183065330238902631198729569748942438810097667741660808066609171158784798078612141390297673384658063959402592906001489921770472356732185971740438830389550051642204006960017038090013706932930459558836372622783896980822843776400627274302648456043243159343705895133692280306276026794399017796470705157859569438321324557426157712505004840830512886747676112911207336067835964731286174295393580834869333132218496875769123514136575677822572113161523552033800057403733966943788448442309823190218059113323099949550950018404157817027339636391216872947267583155781883177578388818237767760540437715315733900094468840075132242214363621872354453954180667635356912743079635254897631340533305710217892050967920856532643458380324248259692870790893705007229772827008494462407030120032767499674824355270298873701901428399073942995464311423457815566901547412549055130517218064367535429589561878966626775273038680241115809163925725802298350134881214281012809688888180678222728407233693387749497592483397127542762304234508408411525872400122606309323200067805715668824763956755143287995657164675216678974720064805443862957839121242957274258056097442909932928956806083844307693867306750087455828396793666457585782969535204507556083126885548672075755770239629728303560806020843562745513108129078411011869121098256792319987109528820437223926746207850228848478451548369424338908737753479879261607164212031368831262669567751284546585786485645216383134913678799236469800943527736265220701181666564434140225087435018069025692030622646874331677955863371223985519113124683405440682570489272755057985700691425298649886504218283172513622304558432329584823816575726634717977753091940546122913135676097457095901279624161820466557808761097415187675725955179111436175258802543358059102154414204823659252479877732671253406221411728658054087876579988051050101497061166724934439596022985017222902057018912939132791662550415431435120832445503461186902309092900670818086502552449644407329148545655186808523955491932390760644119965047820050757720453203310862393196073417181119796949545024136227343762884495274719162687510189309866145172943773589096759586683195824650230008580043190451227894955964803696188882753489340192220654655974850901385261324299047393234692971961809112801874007468843342231552109328683762076450869500864273873651618246803208335906029550534648114895232960446871075052527316621016130645321929634879042007646201260560538428253418166797012098984308432530120630054322782981143340825798316525521781514178878116441032900160936549682757719275331994068173020918885955899108265211122531662219633300751549558177740208291869131349775869375449510433793752635309670667806502610333213271696396813419521419441820823899154064838516254505827197472938190817154579555610823570253586377951072771747354818074830436956401173351904078499433227246717185650667713522062438722158586741264081825369648476481521605256010288892001711585609607529496304925114130135662425580206571101123788110302485107658660133296643355258801343297350450577509018606645703961852777167727682869128012152883371148003783299619446402549211626019241699466987681330657359230748085211173459209662158409217684551681328659161094523736816825423634557672449710173708916851248909840540849367237328700477763023304721732788295984644812650427975782814258580777001491294282441163043702147941031671458269567593348170887079884181235442379727994639945909507538034276656756802968546810026069815209335279772905151416100261329417345796616817822136703082894885493250194260113767073442578364160520023300274877230016331570784231173635511000391677357423751811229388827949823554040957731594295269092532287196753324666955285862533677245799198806796842274907088098758196973320451749189186842809236048165381635691679699814758323612043819570216378455477499995223903556151624819251599436226313814123998748601170511144520771118321028574008067790499778876703982150046991671284398236151638130937542029046270993649436937709011539218175233438980838954725133748204972738732686425858870797462067606693739509287540151140202469936845747269530870270446168569918260158207460752093279732042458137045848306810430797187365641236648757978804253732592216818512828731401150842848389957022356341559292301625766374255224917987347011269183999773187363426540415991205969200626433091182077706457953436005581618741086108756489986268545487733938580470398968472692470676169791352356712166158681719759784988704389040393371649145414804458063807401368411700728310081967044837439094285886150859385452301926025285245210152757591929859042456745267839472883680999093742313676578052389126006739756579209213714457508782320677988084715251876343946752399128369924966749165887139687303554648854632001394458323085390752770686456565793913690504027373720473801876329500223049735421261931463248343765778484745521063068085642778613967088211983657047355452585183877146946875843495140158437606666381978779804883093991061641808615653997417785694395119539729765325150910349038426144083441782029929600060714801637026459152982827507546589055816593327802381745942596786326742286013630839193266023708646395446665803763843957427069259627662193093265097306589260106887342232606421746380535907854807830078891523246125028445363084737819826065928712805198587374747772024685292415875175455156462821418806200388103538518512384531916282075949313300829995031920878049645538699086772512514467886145366781521476812567179191249658085375919112301922288473025580854973092546732347073178410368679928083613125122770484249672035304728589072522900538912896753419184067608836713851731346683243230998771382097814452747617929833219084146237575355954245961926843766162419387109925868129002923127613727750783955560901294211313244590599979710049719810271924595724116912297548289303109382912469867670640687195775722399629027217789727030531157869690494403905568731340130097456993003390632455094210747540521050523453778150996977930353690172383812695019788275225290926712795171427530189159994939039389529329076954012840378898222840843596794806229373714724400696463992452625517075220260906030701861477435906586126398730320224973878635759691230070299808803246542458964932767811173028800938217078112545413981187841587786613900039666257464597180309537902868950955304135564323929509339718281188114354761833268655256648435089889032056413535310010020615217767469431976094727899180604361491589733180927608500273174656582908425096205435938892336274663428856587661594031048501077631907867373707430682327515131195706739748085894173348651972798151269074097908895068605685936821927295866496895611372989099544621262862000884091742587994683929657419452300901725482952465536588645191857941364421546112748745026082846339270640693650909057449380193249092999259056538244778200526015233109312345047800757562231388435540217868542941575211736718884443689059621795857834498824120532458170228220400195933581339432555762930846638957395955524221717423565050805587209012174631697516345994336923100349240279136705245426523887486898884970848262130201134210389845061671040227692946096819663915568950500423695798904435454928648549725140706770779062634486834145861166736006915519632404036032655537581223617208760375628759707842441341614065082366201183541507454890660686504960101721835420605213354741352456578428175223998794121109975025513037788481297296164192832682965022443162392114800555341337750970763660193031549644158455079330043068425525793471546878162504556422283184197000936845434241929556405990198373926057476488660855329789062391272069791522234357812318709112667575091368488481951240699401863887214523123017160178219537696330359898550927111557572861486327849223367851756982581116403269620021599017626328103132789933257777244951684081157086091370180221912471416682029672940283744193465817920073431509385810811859340848582764352454766272260425696283126217092431424458541685308527309838421850005005007927524361064708991540392600040346597639644562920423931922122054701939535972789736333590094953294102233467459269251049211769014373002439834844851149509088760940187019685990105936862381980251534179802266891975032534009346631754452503503426170405120487249542581579869879768278558766629083397637515465495449778284153911580519521897060674559149138098556729640245081029318442768635034885143870364189706260244610936080842026717909780577239239851194991401897981393916545370216344369875708900713129889181837157751506837165106742848339318636350106649171935547107959996685499863415060042181614534042624941007722174529866252554824106133354779003506176354599936050889741255929228961045726634677022538829885669000297246054683176389757071790335132009367396478291042946066834067018433842057133868559687195028244578476158949154594509749181768082073259110369112690125288752418785437704912196382453122122960885932331952403745120759589240523528684520414953669343198810145109968643033781400826915932967733454580259963551269230343088986797034608367310521868578485219572530720641623413428874380083200465749375912740592500273044934928770600875767032043523228457277895710563173711183194950338813821543601215861249831830012071390322439407099712915327279741245026361461746035110538419117423759896281363918182465289149543983657335995201804145881466402454380163581770611337343901026192528550195629728890562370326889267873758500287434601942743703694237069275506319944969792439058251313929095507463710320888849936972713031763174900350537861854552695339442698127938127259865259615097986234984158689694819208761398546033400440628898665043416454276555412945664062640036963691403131770095209399467456990058406870327722954968634989478706528918144352305757323521128141873908893108733448828193560819314643667281227535785334382425818183562115006892567974817552268332352544451772881821238947168985013927262092315082416288463518015320275052129508063199656530845837842655768531866796707460186409444096699513330629657842978808960410977002386971113173979276506607942610631830903004221553431337515953149973708086122237721034255668329258791110272295520456793945545105126193020912403626830213012600635232298433004866435419750643041465403524045904045945021325044046375901029350716532428742407447227572560196505057377734792868507249384057045382291734627922939852653927781185982716438119442210619040403125320893192190631712551058452663519461388986545275472731914000890274603569915706810514224164456053991788453289566771810920220772755242691442890935621931232993344720343856369107587352135411641491908686389149131029500225533341951711503584588989541878056032148149621195309707274613150251654491828823908373470636171548655617673148707242415481666661945527586486063391032143519759181730003647675813834720627330159123742177196427704218163010229550271829704019957984563150450182998882895231601168725019258215333475703216781798968863289937259753964288136053066960712603994053605674458949806251904209094218201952867382378728489281669127391472188071026174816716456043066814688517139350817125202485791058308565916433202458679020973272894331357122255304644445873437442116007736919794149452276468140928280785971525832198383044605854833458286029955050565177745305088312472303408299417696389985200266186315506399529306155252439558832744814671484035110502601747408978919520190741484355815718186250121951855316396077964984597214746006154769373714675487702705888441824928931951225266021849059832360197023692335455954106782808859944193384750627196392999726190568750429785060609512191865657392310008663452859113628483295178468953426572803890294749499959537048971134408185879982995017322611468870322883731199141938161828981251950134004215667783048602644800108630071039438347277924479939975063349160957536461421115817381250590077927521333026545656068507609261308763742433658238347907685083062595574910482408781300652840126738814970942670925773835231864802219335527976429764680361857906618122943746040656199652442185464957130766542733438840727005076363223122783863718057800643911111149276642889393237042084061632392204037031631379379624863738692187174618222217698472006944594660485375891301684810604364303603854971394886887775148200230026917967475730451799305307608112856105905465896500871677423751978594911642285366168982895951279938137223039121433656717592994210312447364650129964423001478465457739198528311781059579549547533563382987191556422329636600228051208529785907392136898171380438970283836348006194779576268937808590307331157267274065694221098447864658896915347065034374260037572476960376054730400607153334043395723417364949256096083920421378249629246964168194829955140926160302117109255981929953092807164039548765275931783430186084812546018614328209736686630863342385121546442535823698998169262349737132553362047709064474658202255485276373782975600440894544953243642532910547807269024393589987655940831440920354324599362029508003213382212186335363494719337482356501525699346105398516904793766078219054429669621300321449525124209415100372753372995029928336152988786087595249679775692816174935518257396875620777951291555199570929179596262293635259052536560112140796132705327166269469247772273995089372929266099024424254956169391349100714911843029132882806797975578631778006589405021313810658245644527176350454189506790547993121817004948480851071270515146839825786691138603810402674170885044875134491315616996005277853248429476899479726863685298265099460668031723612762411094260001764616793479316262820769833594561523770002959740442446979031423481443486667040030907820614365413780910163931853970810599619043606730824408738889218958026186612738385067469340718791969351949550833699049976267538662482208966083610971315620825564714473792935253971714570581333966954319761094467906476063278621006326715931186625436858694426064697509176872378115613843957479471968700929347584524641058046355343012143045457169466596216235563466041351037084641864407984158791683373946339445554898142809553951957584577524629190522969322659953124518222428668457855706214656424636649918451522403569900785868282719250176503927923343030881015758272302799512990059431479284270988227237598097400250428344415557480500456135254505147687333154022320692319346365891569022593907957987961656555541858867345988939965591199843477623493819873205627129050752470568643683946599143935234633280070005604040067365718691083677689750592816568612936874888021800257250844227681066761823945046907005801860953084813230266379910109730968410243265396867536250878336813764408136690145838255308207410469569217329330747609797187878351924521693972866367290813534488895007157207146715715547100127027048691176974624563005893513199260052557557497754490466332808799740004811722428574721263529931906982669289408022349732184541981127377632166550695313808401017116028031837902527027092590457799532577355971948048610541081546376791556032171100213054798956171814721743557811329258887928688059075250879982405873527627195058965236648889960889656317103607484310742977732355627797376149251086044920947851079664033984861291502118576254145546693080953063204783721435406143707409270727264706062205933762241683467086831039150564547299644630070496656302049925549191447217648638190702611875213522435356929508052369465552078467561504156812422846982552131237834762349525972095934337848393691213754968289704140718303545662665725899447520398721947951982235698038579590814463597226120059531962176163163444622958420860821767023447353715347587082419960228490877915911411403842500686462646682963144554889620247420672430032687988678655942119287517848044669118868647267206962933631605695931370761609702928805638027779897371429884224400835568396431891867777374624279383675037967083101250178788207474960309693454179282892959789026946500715962350816751146484830561967792356592210622405866811057512927741930018949830272658727055130306102452534201370457524984281103046015539497087848434045798150962743592970770207427743774178139258300393421815790492656464069828171488594167469180622569558471111458418109693018238516702325270486069103282865269414326281331456563490870503572386179123415228446300257869247968644919671468035308645988143365871764831826115442650396548092348080075341274010698679671732711762963273257523518383122643745275470683387732750522092780533875839958061491335495946519101868660928890015318212301176506862154149772247689470501455955172694605717390669543170491260769868915708043100529687996175037831337413779691583086951683450240772221791322311600422066508014589010272197709732523173580337361282616759696074083647935575831594587952617858317577507750047755014207273309534453993677939268988012935053129528755498729509535929660225664200206447004925335048975017284779780147524655668013788581773137597130523348656709121899696169750542622614267897430019898699331326689315875090804343519451204632329442955919241657624695039606267495252573537817102273696986065527437855090894479414579609458660793270668688962466176608598404608590808548198392780246508158679751917139852550468385930462390210570399554551157342674736225190840574541766021556636083502494126029634972441725915724328194746186598451414492830957563385761423960748933159014580197401751158555348510888024318580462520523727010577905120182539155130374299210553958432594021674670235903826532225516468524334300955150156150645060115902222503011521294132907367177072244007728749181814999140850149758059446472909915981353348409679259153919136445253612936693716580957417963524871908501116388828087111048339565857237843206082680551663078986308308629080241762285475444030037941449581928177879464203945826775054848540571637867014423273254972022744048514774327173903607006370843177640631525297982150088534082479784415362629584676594082315599262183820978833075885166958884827852565498978301298164768200064545776283569646735756812116704956433702876114174490073869456432927930472182637813054715085226412224531213496276783325908317638254637783304423838337730131406816705868176131550648081491969088567212336328656306537587433941497763439039451745229091575966011843629556203240199035225850034695267335342298286362018290835943267840323554290803514814446366514445679014933474010804917994719628041314638861938560419133942951053889445190985466369667612621117127828646231440559951374962962373664226600971439164982784908765605090233559394905590282001227845384275684216565818509180222260787982214062249272261067504150534552538131581894925372158590740129576214420118501549712234754530828265889369321533870419870215472184075123195318676607165372481504513484863279576215585803546480612874689347853084883344663456678712367783445814104506319895305812655542109878048928044793582609092464122999906264989300625568401175217639866450372058757457859721938755303749406078338943477870794987098606895578237064728804054050480849233748104436834608917621611755875490215399548177362278828309750843833366069821002016150456189506013350405093502577044034784417288111479909568294075983269903247941906728952693323334872119523236358054654344041129622761883433562104699181964213039742538917908477278408744327425887127662092414056874969306585625565135632741966687603833237913253646978761730853259464675331590185630615119309528935308747164784785218189970339488106581388027501600295643102002868933504117885695073990982849098740793979416915670304329896201387086777859892843262096957917196221582167566486759518748293149032914140745010031053437938668784029595412648140484273845022972173086819950262542754251843262929692565013574219890455051838907807158070718238072283221665761845075271736926948200700938370069505848149215020397462096204302876698805983103545931428900429203010913366035137403572498188053966942162787696375119824667014325754181915131014691872866023570093938585896371231611851030541886274112940812400559274965082879199384709039627570750972930526760147259473782159905033766186037656485161149390253463942565287905543882732770763386701052889006819980392927512107991926573845963196399902821234107557894385320289381679563097412407001762030554027808356582824962207323617978125724500030821072096058393887178419508190897437532324247064146226414361530866375127868061848075533155627773115340355545858960463673468788545020212216827994952519711317936464203172257927187331403756814131070805507636813482533669763666766292476694229621261546823724329516646058733450712942127841720278986579910260974557173410770005285807803487217472508716468738620354173782240192073865533908330907543743006959389195852855792976945881612765467489793661525301375646937739799085076747492038155641183833419212382157267137897861548554290936843720905693225832411773345815756580935183758332149793824800013818333881225820367359125937857519386291962428711842783179681035725570242496918364137139669559607593134392417271179133617011648399619351284004367598818515932323777396485960768445252882017307345113191021387014363426830726701753879003846621558338679643574335077437626642907066939547716216066811471036878404967438170015844752476739427775126720311273421507225196388603679780226620984933356815552442448594259688222786372167915202098581982675059440354013107080857771258476804324375856569191115775265323671197474332397625232495896786361489219635306170624729243204379875881693756682752826750712449216240718606789604044086206887601315829130339391755628632706273215657099712876747747763669304470745082917152811057866284646223229276974806184678959318086684190971279736363863338560189024984218835543342057094695175841900033548425506724194985166865128993180123711236801974622194156702998107317253179082622876080696375705167803491078180698130263811539937175834354696854728936403566460756239002001173041222422869605234075502102659649627226042544260388014497880053414741361477774584757659540126552404840503675918609835645899838604746206983136694638833211194307606734942186383650875724989531619209419127840967327454503807664474621544088391167763727554961478935823461719928995603740081679548066668546076949248158210031596518542524022943093490155200846942322969242899249380114612757566153514170033208649691871547459931301678546261389367881467699985431689773054362253473811053196455291122891529548797225662219680442272062403570098683447865466681012469957844940319439981999514230562541971155081294393630780281496240313617253174718772561210059912182444011314250908158356670378754721421291022352117956405161471734570460520247816793738649769247281724886961093146305351823266442571799643227483676956695202077735611745826903682929826456843174085535327440037798502433818529018265685885373617410887999951735644709916782227263695386182809605246340493277898451290391288052076942876011427398706595829941425605576212341878702970892660604868392195204958464276151090262049081467351050974160724240600532384165626549994000288827614836553489833383828821810432168764892931271198869195554790374863626435960987895442215713205446212508788722780633295577937372742917020775478161002380992128007821493454836404879729386689394565184309746733126780364235554830960943937923912145727682459983766836940208620077799733338892571240321104561558548944918468323500552153277457094328556165237941344021614104382420161772117111625270004010345189564620544867408077498386612415180936773951753752371917629944937826838704478485711835557380718019201819852079479189017528354858669744680591263805503693812233216963322230112042745505450091027124754569701500798111646651192429453979032501343908688776406071151582252080064903915406536770710588362327155647043497063615063693982405544896588998327213207610865080539194696760491455098397045291370633003938231634367882995043232366890735834717347043145993139420179593472209024928529091300814066506357407766427150676570102465300852301026306652518684306527386308303093878871206338628379860715829514774582414298532096650765079847238723095182518397085150472300841213579326287949315595057735869442232034591138955315630404332498797001931903998408380142262489913565266552440563412439146110058095899624582691636059876215600145500026244223655189649139847179006439319240214114121446520770108407054762421294719473353636098824736387535885770204996591901191622153918711473927671705176002191544897634495934171530077574185125519670178161285045757742687852575534838938223910655683706105049547563790009166353334777208101046307416217456256642819057304843137646577077244067788379342733463239172698437209915097751688049097014124947751902140483969366456324435180246245314506672370130340030032416181455819970991696626669429793862229368457345002353729108991963432188428334139432579773272270501480656128425567521853549869477389939514563257560473950090280432863929854217675993573870259032654476284234876584179933096999084308796681292921359265858522461792636661083113814343349566826028159239798858264832782766936382764819299840744476385119616004301357440030799524297269239672996967076056763489320264279324026966390325933284346918839092043534520862613642106762493607874257754426411735372470116502429658349934159854196989939518560698635259943681256985251681678067811034367555809799151870388721975392254670327280507909855922226166808193358176111385525671981491510256507587752486325706027561378215593727701010142253581204115750888490401149407797162598485706075869391226329227081154212244044361166708924806014139106693588522635314731821513688298556473898615304819224388241705485713241658548311548850066865990246956167630372891096588476252793394563158746704738198309867231989880915323074835187604455853451253287571459276753454616579347967277094712257138503081782087590500448934547288241065762953954656661794439442284239997358807239018907119600060295854289109107581499278761381343163054310983699207489734105169514065880907328999729091207032479426593442703765783264771183646261624546349233112274002354097912889639535405700859895617580317586602650299757195344711789864346797330640648577031658815298924419454443996865654228029222632055394145454943229843440347788782510554890642750580729635337344454308511011198149735238631561153481759225770081375965388307086460537869173990483416983909592601214631502403812294449366906980673237485472793854854724645226600655663691398535299304627507029209593600331195292629194852110072024129619467313318504357260552191959089792416048607483539002218397862851966825180279962284099419017262001664982064615824192675108585606541890547966548127470791744086033254151304502564799918762245760660753533520670687386884079990597142552473921200976382481580856790824495724475106331982695182801007380572004501731270020923656398838369763335461019148328338606156183131587831615904054287967234591988547963915061761749153088060262720312791123354705048895918876384341377562788227693621957807462736456567283324082029171417206327514221735202351096460487998627763072162720872285997496709206060307676246209031902388937225503500175868973718002063568327207157349333969972950101352296712201533845852872764363821577323077717479509780458045402077591536108987920879166035041818851132458681790181132202315687046876950790755002406389409738755441814491332022503826065557765533487112675488966522730890847390407825543211904182529148170009858755572352104794231716326374711145008213208151455137473385451387068549353199516043947817191726955629562708875653301660906892287801456370561370434242644527539760116734336007518868413859340622112080374369657585842637595442693416915840460945675564882594083065940205902229201896731897382484933100272281093122130534185702090055742525496303435687196107701122084736942669074840937912827589108174746380657586576357232661883953216857033787266634765341865752923625487694214845475149554635450195797091643429162056520780623373726495462845409492833206389724372058644034528970647795524394085220130064167710559992802460585225697181514467058014241291757818887567137204173682337013947986186110289552929880925168835496659387684345583794393573722153785270183218297408048189838417606581712924228468878500310929429571114782106536113646435270979299601247825449203443345086001784054611249020630810122814250308433162815377935121130726568456967344539219217916293948033816491914591949283045778985989157807700340430054442967189500236344425385547313303041136728099592743917501524648996138553024736660935595795406581210943929727662490225946770811552082981164629672962606298108426892963633825085785218782769838138694389292610577835797154348255003171770667864149432227843496910492781374027764807467115807662655136453537794311327654780754681954583871104063554356439043264373185337253704172532847660677741954944724004708904102984127259385197900850979073785774539197559761551472243430951253538441925550134827096171594098277701469679651519855594427430089603209603969856193192982399528542269373833007421027251002897591459906006542619592001274348911185341049444691307426311433036243375310893503436763351322301790628279378487206023184285929340751634939558988903691242480148182028746553777223994427951898832238984320361046349467369457807019485600167301890047896326968287620403145472812484208467890913566234269506432699603373588356491011703899929597506037058809700253668601339420031547313731289093667880048886622351789181561801022895181648995127650332890152075425347977272638031105618944649651280583450357172026670107600361411244678991072710291268603153928496798292695362830854809110405568941771706235735560605678663510918564878352621307054064260523996782616654761641659898841942199220036163076311629170062829196135875414151512263212157873494184178627398586043284957622616675788872370756902932028795052494466665357020338007504537012853011641606010442235654970412631068329096909040419037943550824337454212714768368795132922840019175155829615547366867414965156266579781190846804236586658086053603244766409183600362902799358636702526321880362709668136222929209399639953577781950657599568615035713462151779206488238393387138821469825862967502909712651502063138217120710707943917083650259818747111545162345118338837962294345307991990218675470056725900832734839349644905623261897017651306030732514044435896615966138337282535692970616417195730428756682004760454823124473373320325998203729853844588498739553741591050351253125621412155685133447275096213534134066307721534846238142659198838170258847975680216678104254092394105537348385062738751740295892512267200140904372449813778461955211822751930670397258534546183729438653762749667923880969633182865077315833196281041379237887413308561714373208776882800257125106397036747646389014264060519275349345123481685908656477411406368867857586800720341886789697209200771822298817813911336026574578070060764154051852625263991999666675581078333153415471989472439510404551708163817250424692900914283790161444122704106048819991029989521697314992715320031325466086225887184860306550664879495952307046996941905550932541707538661613240057084173208459374005686501728550442123423481870206631624407335890009442583242526152966280376920261237507184480843088473577700059529302048594482387323875216421197574835059215420197732006874851954552087426615235801006272444130535991857280876664278336354011074168046341453789533525997410346490888972680705737409905585821691438651348613748097816958954263674588710948853977086769948832048991881682362047627598264451145420455908768526103227511160856270542427526255032702545597724786051899926904599205987811416188884825098193116463875465424830917414680694686945141791193345312796012664800742339562790589599103825504977675845528928404326314148437446917686208939379153075265020888640545071685549238602312294544675745163563787969315112411645753504307387912818106515115022761043239513058917355740580765758344499765487508997756441585643002365475881487058578311056458428889691945214397848259715006628615398509579072132023695728560368291151533144005357455691489759925526467129504311542589109561425326857118199377874281262324150338690062301240981705495595306600496842903882007662181633890897553332174239825631390580176641210168909628438872502147892690285897342190290468929198297835744320387813513904843534631591546495206331482762810271015467807575045352659060698380943486653507659915553850545139573374808813923083959420295584247997109371762157092349260206981247873476315325055967044477821057886207121720859685212328352774214646886110665292453847430832303689059543801627684094235319563611867925809908500342749610490662458090269397982242054650713763443313730711985903544783239872792331408313802759297778571025430724416002802481210686961664059935672538328344970138172799773998479138788704171504649387562051172093939666517866323626940855548825478087632431297676919883736379776169789826636928659615545215501471584846680401975179772167845913954819769485825762689336485264850071055950925314234925504242186436237017351257437027597008179036360088658544578374301556062808549221132611945701160485576446311389849544249749386194372712845479527852282734720823874135473726871396569975806947925761177302798280961075331842703043668490770982714329564913182133320226933126318710526893427197415634728725729724079115077318485411476031749303060659066039957241648394348967378763541278159338042567353954415644415482335907183569974130221017213467383401760515579279827386074116804565268834985934497526278808163684629527676570169333624339635875122343290819184749153959009205059768428118557992667631563762617402041758131573083435144687177033373905836377014511205689937863387323588465727998024350001568258130367227367142565744482988529086721163715179380542263234010964047871531064699946368175671969724359421061423405842146897289320128222213077816470568662428976822847573718675552085877626846128345713051168743791139052673991196419693290585442246132472357498054362197211785277097209408873013798469134335820352021795819631338835119224406708025810174026014192504365626228360764821407626182176920804582855499496584542075676166377478664596175056081556242860242029011414047863388690825901474914906591991340153824260340345047083559305948374677805941867029560873990626520388716354902108634111010595457099276826675174732262031111371744673836060923299192004760622786284259903334165213792330835805450569589600713918245290057812223464911983177179827592383325150961361088193497450510406313822563419705417503096547735931523739174246493501314558004523167195603288831078160358990381804083672995632598781516249421745274155775568084019707903417011994453284955202206111775466996496242209724021923702994371235643562717615320878832599400730733167563633415266430305072987595909232765820277729317181573359214583484222974309121357096961534603843490721988066486730444522615218983516096002839418724783278391385754887887843696415447206408544874504625416370006955831494725887558145617527823084270227177393761227140049457746067731714315919534711145728333770578445525103168796718063121662117420136024011565202412804271989906847962662488951992507611829737748610068697427758122021275852169566852896571920679382720594018957508103015203633758123602316959897684961960167150111348977188679666084356826687337806148148766311141629334050865920587585509156660262871610485282960105752923668126559558981424237483085898770815423651215550464122184337962839758924151740624254086464460890201425751007299291987309506525120984282536818273566630321848475958942050583268213113804422813697543434478508613805354287325769500607223198582413489107001817514157526212458686596261693802556714859907990320390355747014914760660581340303291647254855332440567484790564520953384576559283391549046194264272496745177120486282404197068825603464066254470283016302128066642866815139968120744465675640484540230813948862219585042454041552776711471255303495075508575596448600540610657936019627879836248707878613562373899473343422623450218651125947190221096672966550416283053226188846706732955326344920564327821564900010542192007027519598895882403825566958593905235704558845066262876055768888260005059541179025735524708768282617763481953931661424507166428665134607827186078070419568610210161941551055156013459966242138760769742044530231026938884174025906175900743793446592707393474671439984144113994993236125867986537456605095734183370003360117762375402320572042299447814752608258519986939580304680816467279977627478758670989324978559503294539808787469140011348583225764736914991983859806157330403269132937490278592165377448094468477087175047033715985920224196790129589421258003772348269488099243268589506139381042260989235782879985165211048962087933054196646793410625570435547693451534391997990104590994994906726708453931389405049143953048846487350823086484768397235732777424363453729614940796638209575916236339099887270875844890778589753187639478390157088771975551206629575587360749866044616485945365803469054240878070941970808682748035062496487971242661151052595191324259393074438862597299847397506777616034458408756365013417638291427491189575013562724441648038083068043770383027552332903554244921174748709349272261565505893651346611384937961574633633516762724240138915268427135419288382072379983062422619142340203381804906547491057156692972579270596714299369613231539761378187193869932505730410836690456779057565518770110850054183898906243266398419817231491625514949260062151130681244627568312788358961209593445888396969453719537977956251661116390088034677324482916626888379831795435448651588546866446649081734549988646316345284151893557947433580720811462592747285420063863543133878814913820629849683979528374743658690446567715011716724163819873207135474834754852644695098335185211063409233744361635547100906478944622959741723683892689889858429695241635528499832196111785814736142223947133548804105865893819476598576750277641202605387300670159789544011996995182825015720725634475690844833886094643792570151828975298761687100162242125794524793400955515733231343977493976553275155173672804634035581810453896910903107223758720396711253865698983019217275172472898014080072408912705574138315141281542646854446045893778641127616547422187560328748629011160799556062790505253588992911458090659174541269902240387227481912963628200078446373714162893724459090883080120451468010393758991964359300036161815703935313917853812807321226365357848200080846440901618806512978482224928122702641478208810116603607679878958676306908471278661935342485692839790713544314276685282646363872550171466277485984055696410949699521890567877488363831100119296743035346877605799076967477214702312281191820498502772451885823996657795408182227348600864567151705438592099543921688755238440712325715239833894924374354476001265727763096932846403254839755216236589320189287410700576343218981275919159967712203755645434656156572836630342493957600150942003023569955329914642721786372127317726531551237435019800530025687126721482709663036979957755524384723481555708574277484250759024398011870352093363950771757264617170516736131090708830362438547715978596136323345168106911167770901968714914031182398235479757445339685175576171907344348330454854011853456737755500491522827354494164153581089102978087096361745178777622121112186470197975973287777798974089915203502315211904831607389941022938319589219305789745466435281146766784568706328983607814867471458399946020565715951643486862720542689362758481353082365492518724008089636725147022789764715127115211882888217015510413427402149487786615247705806191050926488266964670934897932547495452958618657152194205257697177351982267193191342252860468240022347546500001435060158382399413918491404848571339612761884805693716345463832339524751196496898853087761093725833263450490219606505608408040500852400258371973305354952290254206607483984618731723601417703578154795306976205551064957221269330757458729351920331942944475573471053838197112155746141395741844813958143297997818154496489475658476698887390754453801251424246246157595260752138899488583797468958845165365647783902353987676402356583808498667476390678443946546605615400604479975381409444458772359189513734114047122171163794496533608340716514022271590498772924357221475063098125483553093391660587294477589957988686404289127365192794568818498073801710850896508246559304416220315897971931936376174040420894326858256628504340958380084491979105926546895156048939333123021966921857314699247628627241366910220613336951861645311278182464702381042895798059951752485605489467105402758889865631433752772902963313700238628092536032226176934808511369602220245394910776289704416841674419997549039158918645119950106367192722497682043321737949039769424805348273207064176814457259916233215046445584414523370633130308164237543889351095452713322543666317759536820869880333686499932707222210886718597064613049396240833732031592053150317079271323363392771049827665275062463204475972659617527184207348345682275545722447173886905400012853878460272189282411624141730382348963856668068227397747377270810647194763350775487525191608984477605893384688951914900327469247781192253861774204073392678848503376135978246975284806783334468208082969050970310255911965635968609844089479574939860160873641353569722517054117322526423316135901793920801439194467672605971656296086980163755764743419642372722297981649374604996697748197551183489524871369136895173443797072847343794553184698041001761002846970235565695580032917420104762674913372377801587055716972293048538344468155297345573124698467739939896652420814392092959873117794083580699056008778880136567174560230301828492491921549004810667259802367936498433926225708135471357582199514495766155263745067479984531456459463831423629917780709165791002979030203401711483425139113735185518961853783312209620791396390072025992876841433383353746354546856295820815819714440653532607091679007463300679087061657942930000628839925417328864817918557764519745546875231577676854398250979760826526217469491900247651751203696942934139833572099727105073355295825656882719234851438685379665419671537661839031052125071648690969556228469792372906234923517620992366860304373877123620103168491827968181779904782207082816372319073555918501244100050695314330261347254054748230680886791369552689088903580140960007184850652158426755697631486525365998744094843881350119245634747615010329153503270471774138010255842743077914331696764194495730102850938682724154186463563077527959114655182144368661873328496960137029684641596220973532847151823359521982786830813416700433205033142373321681402816639562547363596132717351758871640166830709128250355018059774572822973953268915504872326614928626911658782619963354589721638135778614369205675864910166643853712309029719973372490597063343522658795228902173489324947417488546589593922525399398127817995177508065364926314568809110819919293530007805465546653770547889517068285554123800316300138007099170967601632423656521995428859352601881345958390444720260887205319367304259570656062431282779718020220825496332759993993007845878889816355447882953940984172717294156488083397528588763498715714644018700795868110017756393211436091981552303556246878713637302454251522470340762555669965368578223711235726035098286909763644066215952852287346801031100538339834054606797929251128080552180914781970944483793117525689711506829239737372364157675806919934536756659691561183256395965534776483228731851115851849548402839221343231238955166881767536580252256442521224741572644457835131729003915070742376821823800576949689244185959252762920872906464478413203591181759394487148928631577866472306246832113178758739060746797529200087530413242629927801682144175955099648328802966094352186967170572232396636550550892734899929383069713878954451118158046416450351331310166256784253153912716100814798626674276227828355360791809356525774820881998259226182878387131987806709985113726858686366104780560238470711368329395559839462013368686514316479931323177334483280767448898085178893951356769783584023010651646544921461043759558139795829985375143304134797827318261698610237940835472717960883266334524565669560034831097914909762963842549950685942253989863341410379213197261331961897690510921572424580775546666777157353188772581300285729183866851887217905408229171108748267200107296858239543817803968661916676236095663364295135956097401652927879590888552584817694073784134359807234254121548012736680955897262395943066094691869993140139467722899443128375158231656271875560928802315020633087277732091285919891341680991086650158458261144916994560375257116836157748353443569662791682636742892801497384739123636776314697982719279225656718523106738411880496101862844050747156174411693200026813272051877643614412016410028613369509253206995888628886676285901857300926478353737453340322895977580506022699858561088702532694864930563758108095095660492095174201034831675068547011675048106888806156989550036185244704881032828055799334352409413698092375347229146781730861693889626793301583455935676008926333936433484984535528087234886949991700419194323767620534394665978332142017286974778210968014699587511268101398151606982982838727709325389487519311860578716059063581296324869179164441435266649170076679834133188855533073478556039039767087525664467492610550468575409049890007631092187154478182309277665814703559363992606149583981856385714862572685697091855266656289188360930747033093956619427981985116851993959430543447802223118780787110361135834069024475155983924888553402853070465493304597735139007125186129170933035150458330152016917511222077347631008856610389524585289696686841161971120778642737640032332130706813261377115129944100688077005649746221209334732003511399623121456883382520903748322311482254340793053026533679721267182832234816538653045089627720004251136786436326360361360910853802848988482490436791977756789072470667052259025189886981135455252318146872379305777269805027999225494687006377781006483341614505408783761007468611540442219759902483766373016474472160955798772450083033814496412508037980473500973818161510395856690433176862182442285181400988289703377636436454038199685991086736437301820598608514925738685948295817306319696915624169948656127617697247692602660898069437712475038736771910568600833135834858180194386107086461228259604264760832736140013239656479581821062794216069230978911765452404643634643097276413462098520659387043462616042458313146968309792003415176466678307712655299325435355703863632721533163749680951448561129568317351193174686869728548122277432038891716113767490464908609768266350144271624086018849447193756541566494769084755744190523589329778200287256129833672281235323714041321710981229856067606675270922032144403776300911725087873190584185409990301691036562664215205060088601242991720013659755681117171111416841937461562367416989678943989677476408103582183291505667464691254137024673691614701099019032833146162902848403932528993002866392102379197181821182266234522046826848778760699488448900726711168808337146171556111740679288737434951925503579942552079517089727333338029230083355862578119636602159339443627894884099823084759536338437981357741663509548369619618856889298551470255779885858917922254178152289886628338295786215156447952378824101212386556154754939429173086754914950751449585388439127897301979378630081332468474121189912728640596854578044646820401129774493770506932755924573431509302054196119234768569985778494033259814327204542862109782722579921263957179369028624825752764996656025063781628857178086499163492875033517732285719505142591690282655294166832190607409684138733598731020645896369312246547413662900618620133173134600129072625064786882177499510970403220788523352686682694704518040675740529420453384083427923849956232081325687081718097760540994543455975349389369891042517404796251191563741024724163805681785277915990636180155239827881097511424548090895099284802253892164788756232405062334776426389273726402048453170649306310031028003249276830290496571789962630893993551748501349330513826829612810561114333762562704177228606490654559474295517054887614053756510492768803850688439465792200168121645159930449194410546252176076943139651941275907976030671942562108488201341186215155801433658593469102165098315083571705892854990817133573075599913385278315132344283931165501214035951123923387501419289054214765068674083946419983959550436997918621129243243483466299519890957506333305490754760514586378978744243043095763701825567740141864845691138583657353997139022446506739290381076174447493589111784548250672843317090691589659186758768900187501354599217375194702145654728160929366265738120239709798170384740866700725531967724266541469522961168812653957527550064188472914783849009501107629070504348193144188332029088719902281961956828103042877960137061486446217337033236619131824556083074997712583421384348585249397546256941235837833016383167717753679687450098247466394148926969730883351028985244314697960795177727487820696180864084281531863591350164973586261326511195946513252739076986093185423325689171294783540088188022174864492531454746103455236863672486570124465218116025712953622577428992997608626215097162025737628991395189898296919688668296349613399945910493642956949274708951714725724100939498270860387125383452772647610788084648891778948370689060663584278327911962947572518423132554571812714947479377853323127007639055334318335557841648980893324585392016009894265227566868812532766153464784311572384325935204559349629630903390737415730815125673053260105074205806565889763489903241366940919747611181825771058519157479200658732686682939517793440498492325408560002620589571718333418329696857567529348140861799244023395572613643210506588764290941357294434531829051288148765213511758754031110082063683873287862356360886948397765099191305280300551355782496845522584051403126038240555597086700063659120070825559428370051122444393328210839415964564662018759904473803155425577452596101275743874295388587415550222747321206187894570809171574843506822997219423158094490737671623299314326478865801582797531557422687463952348208956578549449610419859884971941576687429836860314397567436733058464229345476711847448469351186262786719488459809510577820814180806346037099980255447405884746896712102125419554460161186373373554895613189799997031873666488675282337560477111981140757484661233982577808192889704025064958690930135080651560861451123809950675267040793204316391025590947073857771396917072493486083943568630877291779183074046602205490883126350319767202117714919326185724604621020576700025830323915378406133937972606851262005093107546542208100574112422938285475643056038832032463553050695621538682468410319874529189049773314647409997623096139768721660522789153648912105047196066048138457403099983417764202795912874181577647170213394736598085687523818858759641849838124166520306626260843306671804081717617435882088645757668256195877855498167407908998529681336921106941257126992336337173217313642803014157914304678389554967021539274674971935105171354614287378951992967159987861276670769596750755239943032807599461037848676474650204306478279520872773245202228522180885972464126902194676214464842187781542941483530634056855933143445278442879788066551037578963326243898157447643755699974926194933951497828860201271486899194723729271196763857521711780464344586027215022847094936869450532299947775087132571707743468476603426489524029795073010029431461859790643879548990193568423552172275785963059192034465739069717703699631642932068718052051858016922008441795941944836130054785983721388177061746331823614126136928356395735041087367237597690463413656671548722567336688455787965999589755037582866684602834200910702500957745243923518559002081990205553075199003584216677703596639783135051523058909999547618584216644659561657627532346504004438350663835870988796093289891318623464938241742934852266895877553289893197302999550820068226491026737920128944208943778191570822034964558559131355192503722223681451711541556873780433569761789751008482336536273122321797027245104310981505116393098792792072688682117718411400284861790123819230028124553359475098049250942446061800201365412163740986680006102557987764246966014418719787965126693894909092799046185222366235413508502798568129642568709187570705705169959383206043808311567868259290057045317707605009504693936075419226634587830172392591504344059995980245243721199150607933451565140336310800104832785713385628499691921505003359906372253191012905113019100519371094480838141691147018541932376150376779858432682173049976150550180539697573378480471065959284867843633248534943681061157490911969630101347902537710291337710725827334171874603012675991941890591540724934100689588559834592913783831476331054323981821238901478557457686344719871485642264558970627660289897777133821110839433759606285390021866212335272246830012477454999743574841948126516843984032275347277175730928424793204775141889007672913355642635914072982090175587921525972126865687290241156278684816654496060801347399366736685710852078108992323864319602447571688620313904491647624554695907867085499660775729887413129303913185627417066746294845575588632410396952602291542333788087831235754965936986728889579703283220595686236642622331174484600427757313377519185645611391500548269597416325639363467210605299770279314069135864309847586028582074424285780864088862473774019962427255573358696513054268712272816785943470078786974344731259768701916709311942972281871821862458665229244248341376585470954342431746243230304742544738156405557933863360241060575308406696566667466281695778089845493921067357101083620331610639067200062873225841061939133981267017062928948509669828569647758389806533206380493428815207560273201741195037631811272933980693179832656794875949211225758466450769986765740183876546818823107856273515049192326787312919688143727042213119524152463114417095796681283261658467691189106558121221623762343730805284600709831085380844448046208978982093544391792087170722785567318165740758562795255596085424933876837205235528981604786922539591004978660192933924350738239179500828543873256455600390945957541707933086373119718311254236227419783321718532950390644750327349376218935780244954243559896903436238147971827624387892817878104054743772085181807140635790755150749511690428978311129248682851030574792501342983839100334670700315095740426692059008116601599434646667364348397941574888194977573696473689113428223488712696072331439675914588925331437659505941740227414092140959049138864300832304179744754722202765168681656448203746548064700542412635562524183538959880376162324443289010407695962527479121711037886001349874128803451052099812350962761318063329845401744991073819139078783834404393126253364388883687474093578264648380588483815035847359863677518274529997311125532186198863990282134323323280420745625315125449120658907843308378412661188443403739586400590805013641306321026161889044370713663914127477837623222460428057287466448643554378804714328618972869511315900639622002073150549023954091119029381867768251180313526098450917232410952247908125899474488544165195967219309952301900935839790505926348193663437995857640762031074627325965276718955492792124832360843096249894777016311295759094556007889498708500987472700395788792229480232163147757477008276416666486698819101658120117538566024559864344698630803534868688538436133716446679291067042699821152929558000856561829395302282561388008270219820950964749862520623309259802561533811439477203040369490005736788394630957801310845967985997302916706814356197676365901930136246384079620424051699583567242864043734108022074573954318929082018081120364725871103093871267955046830004662023048130027351670368241064827181786692298161446207019758269012133085129326515725766922090662615151980153302937331318669788909083549185193119352275790595964371310393510512967997136807458794744702882675586888933508355279076799447676569683543775610158648634565861072264254895266810324121670280512733179403463634811458256254112766086045485732544849780214981792341701015975258450117299825150802440710327360372411957740349739856845444611544305047321097599299807339653027209306740170169928631831825723054522526692718953309116894588611138418414538005172962180914884225798920238931158962573651292201554110811801347277776798434981863712387181662266472079477010251252290850950236378608288818135155510049733598038799864233923443830859013217239567852509785579010411315810880790104003039717584546078983097186997446479338867658822358542955329420803609719790987414387836354979312651766362206805808048306884113818933689406015452083116930993490902472847028102737006033808116912157204669534501533032691118690311935562834104180599453730792787124196683085740567170833725496643131388077614759726533665619058780097889888215207190499365926251104019730124760543835253841217976780561366957477921349435679150095159453165224729863201463522244185578933128292983313524035043620797040910888108471132319831586028275258133109402445946651787031559358603302725130348115449317426572345778565089709778913082115620307121788981082395526872475977130226303010170454655511637991926385149639980116318711083648555717967273572396290708736174558068132000711574834898597133937875046342457504004560007697649067270364263230626930027675497618049802064086198130480105437135334216076917300266864324107654274968631310997125961572154175697779639426836270509796223013366903171523072605529087105007742797562101065015141142717002444067609570055138249223146364939389171154817077685844104182774274688500366011340370498900190546338134827965823553646577659029932554400585253387049843103091280733167442734293692026422200518369707297749455388027784056387208379418172342229454167682653319618383053995480045389593510905443547068131404126796720754250630550537977665998553524640416923586684791308340708447745565966789548222040735864146996648907249717582659830006350740511126382219000080438971070725300538068607606857594640035303911018772472341134408265844184175924845541643579077720206008342999974775145335701016277357458440528566620859258873937601008677869805167690036891744486964019364363286334170108163142222253733041965221110435149515192893259126585885918698302022253036873492412013287779183052374726510635632716814007756344967787464424817882023435858757223017213738236514950858709679361619153086186077486097350581445042494873198107667459314623093554911454201947525617056245648286720932140788920557630870747308472705456375263182644839632096296245928978708643281476922924160418534403207193829493559552111314433955706258094827976287301441613964367881669547788336851571717379261270755911157171360690112110955644786343035058729257567558750572813119750782186387656486040514326536765895778056522465289600016894330135122743542951684383420626572683650070957731115443485943934924846913963244692164169541620791552400035394722199419940873298452722441214317112063070590182861540417219716155484851058250351153300401817302602542321608732982932792004426879023984656684582625899048892661646223509786320276440035780664319241666454315435493208573989927419521333191429951407516650558049830227514774120493388868759224841123114402175156733677316119305918853477337493417564914004831652987854767684626143249314092392320902393120021955325282541334370718701812020521665584153210992247431779640703169708653980768810821830604957901880979158053137944023373886134303495368790149948924409007884617411090751443926756729515512148328240004642922822017767718038340522783267882576654791673650704052520789302172651202436927816633795531015159299328743331643657078944946609231329590326314874012943882480380984098700165151595747449381834618971597968961154760054446046573431619110958096776426650089710022328327757695070623974522172671212142100465535692431655919850140226618406795927265654040213160493481792976619225385245780909344371282580464850532869596202049434911119843786675546163161114349763787159643161310351247368467930487022744561524628097815950536119307543176700892494185485691224019914299584336368987676986341798393898950269849687573923453092590609985206239624049028823987634352935128115848842050982758979385869387372999296490016915449523545928564392528067526262054583853314509665421140185833329448195538309901859652863459152156027657898890256299909922369713007905875169394147447122733023792102033572648856335217208161096160882551021586068515222575214627145838330556038864175836526924713550258703667432243101828769301637161347995092448614586307506180817988691173346455118118239639456295167037740704863353462783655334432517172420346242778001873310338037110778086268523633845643572463990804521788132342485995321858839298658063182518028080755632379784182821434057114089323032891164786674659758402946975074380208404677355638063527028661207727184377765662743096229016364277930985028056770179741875831363763231927434333727524155695579641845643963460500380913701491277322957588553926089079856524567158308113026335999241995887750149333740561927972359929943669193073528863068823205308683719741729047521228235437648407630646762443823130296289571100772693114336524772875918686735366586506069796966638734616407264659306512383470670614807092802854588220284524644436425654910691222314389301468309446072609750750444235177314699191015099883172377122062368986116422601798619649498118586883057676834766226062759188085819547445135077313527911017638653260496261228567248776249734104070359422727100444651767983543308523328183371933119023796121004643718726376277065455312618709667341706054148887932629426097377925317398824992720103192313354035842116579256260809331387528784748484882019609463826872036674177527304262913294437585360704944806964044951519017232276606877788413945212706262498365617052978303698008776171583671045181366041626766713632073454945170235827067477225105299276836418879651715561446602798995280924488226183364800071040479157888068240114492499637479437393791776445791079485755234488196596030990370175801615238914187325188692133962513139940627881075432712387331862670517793608355957476154074759021679631242764158719319309857581500379789694088359244683237495050601651205369198431069980045639132264592050846008595829366520387835734740899295972664248408745786776546360575492585484791418123242398464625377506272168358075951041745597698836239550204373662046996683834063938040162546040992921633970286717954854490520391560274993206006499406247285002404088603969540738695121198853123928081645191111224076708983851382506906634717638378471093698535223787026940011598847012571923090118532674922312485018844756110232229085135788562918221650480335393822692066640766813423362070931532195306268476330790052307874620630592939405692090526774256362166091406158517604858231263049655599926928487812062428282549988434795776623259823715078382863982215874912600549836491273828411195543619637999069372685381375530598541525521142189858054504151148395302687052742346980909801965849898807906192219273844705903647367851612696162773007409845234316668940823028475568884890544743432940803349227496426726711200348282723655596375519229839009303282968435682695973521149375646239479553474223387616839961558234117730578389689679580416681511880117896388622837302276854917124785353592486866956683772045879721997441565238785600662388008851553660739608375686934614176374470097520611736470235804149777176504479892226937883612931306919152627528658863851983312556433606479515597078126961708601745735192576266365852067954133523937228555366257972282673433147519072059768315597163480729809797992051453126144876015966141874856674604201322048010885327169387307916784178399608295335675430477414522739155670180456161707137259976631312218076326571596463192892108319024712638940288490213448014259363904562263550961291258000579420712634690736442627929036948879121906929302218332043593030321278781002840712014216325991743149071707136823614621821819368118736438495417608732191797487237232229795558477239113023508474965654547910151573863344399655116063781535804037808158358278791307696868669497719074298194851574169332202345938380124917902109471508111754254680400050996632961230207871758398909621239492211797999315825128803197892723548571951270305578441969744255609963148692802107988318789275872516332608769344337548716267002343504470624896099218624520740337547413439905952972819400901209166502974752796424062808757244653164887790680331341258622264804031916513186945992588276389778081263580482321442174502116807465243028005065457047309059459404904703720655942914650872450637964409547466344285939599091400636374369809698811057962839206649345367834252989893547682821325780933909918326373287671120867062361762697141192424168459960951953456831805212343336663908750541934627839089281696023824004495399484654514653392595945138122698485377014121086134072075630128777228575025012256065323056864427442050759862499990320039805673664801408031861500371855262092123663014418080772327692142363723072048804744894571068739579422656204593793699931101392481870911606833527990683524887967773826428963453852989717595694468171454746071040889421229936494098375930152731189762792667355259928100475396388130446831899797424523192141364587010569142295576582669395583705682523699636269817419421315476369283889157142479475712152102902097740288879181115205612510037571472483682186681358925377439362252149560724183331077794616784824772557809887669539414461740487161896831253446845744999291845310209262982181881267519147014729271868610171664430300564052698729331586139645285362999558085590560142405476918042359197043877361971558622183632589921822527789878366784217275492038565513627785837926446787123286014595864353091744867307625888651455391292317514530879122319762701314140878728924806199737586126687663564386963777727553067354347477353377555827497098802943356288417912952564448970397946369514207741171659878865025337478582362542757927281069972277627960227374138405949326031604302239632101810886517178004711168964933296682087754183705454630274653067703448147547766107270346859777641353898485211118775583595529598332115834599501115895141756246365086575962112217044684368260856318614944881918103188713297167064487444358589347470657263081394402114389830761721583171498841306884773693778018476714337546658762190671216448426530228396485823360702337836006855505895078084503089722477875659408224475475434149399551683348515567212591893673274943395278479517331193423746260029860833863616083031652484477244835001520869431200517124517928702267795613438072733882053498286190505964311248892007998098069290575168877948337011073154715461350631047669852901666159074263684444110743664595275568867852237453731663109092640229851848238323914636869463261536967675808907251746809183510976379317196769512006155277619822285314215798438585039016635504723985186570552297515519111467820213880383171501966609459185512733338204297565755167946276099765963095098003764775934529384427175920784730228243761308373065015444074464112271931124331055208726129265555422591495551837175677989424619199588285742184695157535089664580896781913095133116872394692004912867485542357389483138119601414986664454101926402816373773554591740555399841267085549317245518072937170732988829086568701368919651881921156956574899972152455618979639986459193560420018964367020870136715743951356947950096440798132677270149951743970848890184708368002416360313791502182341380327562254760340310383286033037011540710268283232657679621800549850668436887468668397037733318144778511571333563589916972883448686096076131323249761565634795611289410141977139260092828986260803609210132113625756848859968077628133990983705011209642508532646314433602394785976351946590814194003186092880211430680894464013861599728782490741173746758517059881654463971767080800082624427450146859394011009027671498978774938393168440420361478846513471686039798764099991508990895522779249598485197493925372854251843279088576650895656301398011341449838706229496661763505449882319187234968259650985002979544749823919309419130547953253928882652259094291372081535471418646727099703883849792677795975727860022040047059387476767533488629934251063031151060469518130442304163086337591027750755166271882166876165864428999783506602982943423055298997506140427108975964958804174490339433738928405425989881448081904014757471061595690128758460443176693342378312053610268155844261696388310599743443410534279846643118007152640813654524278749546137948690168629340003416422191921797126016998955696803280525521749444061937125164267683484598961541199315242816647489627628214122998020232006770389403314339064642297190676502497499496407564638462915258620918302820236693233614323340247981857563153950142910686864048366648473466081219467868475189206001656811813748594984669575559331857840111352692481793704259217309074139086194778711351358567997237929625335908087167140706744665946077425865817854929407060238299623488539603908865396896595127272987912553395360017704760197574488216894105287271564848346753903173911274389270905517107836255661838765955062187045082240548476687145943526032672697633719082030229286262158350386449622781443754919446348986115535900603928960489317258649369898664590993181910607848929695856669302607805124589279751757120333684678303843630072370916636596060390823991376712325835590119809617772387018181985621436137770330083935972418960356781222573573279973525598564640099853678333526669972823645384075737489573871012091745519084856316421558286184190269872007135390087083764538234692062414955632286603358329973153463584001291337696662983510399439999052589811594161061417071849064108511386476793751081315757252287243309764628272197395385115884774341324109511283672192720875346605816279220392687568465180806510546273911420492624162519019082815768007875039628336016756955932519944552412492300429797345645255135738606759336325285769931845313488107690070990905486077787503858259043850116097724253865843630493462743908203335757282007996795048069939914157143391119744802152654573061657813522905532167280375005113678748455042768907633548667143927844126938134362349262043417393802614605723999303370023095571540079306855985191998054132710084282393054502893439260926764690007085000168548206277285445533861157818242787523905399375109796123973427548553796560526703242943276578202759935146783767407236862547757937379603174497710532710918006489173230521611898336114528705795985067447612108515436181809071855895284345577435743814463259870335663936426300744186232269841548058997969555945806521382718922081359389268458515484775003755496205765448536390354112655959121854172676293989328658790793330724008425372932599311839769018216019162212950050350236872238188152689038003208883071765994505525435588228961194537074001603144630685498436718282547633372639700150079246356942620949742437057681561166940744441644010575988198987788785324734087699460211160264895683579159789577308363742792474867487200026214993294861600358861149942425962777154919414879774291215595184967579364987046217179216565488953969131822681836340892966330363381921704868034687904381579605344312586061990608126269656105025126023753018237253774812585821852683988105913448748731247905915022759919602809999955457483814683277307564741448306738262496171148516466502195472995792150875090926877906561556857429894792646847501071930461442815847183421480898874149780546373697438188591853918513323983373350920677158735617949576498497470490962234673464945938225031407719739661502858803416636919598466518033552883340827964009743992778502361550929504558986020403273433617413772149880322172404767684861297750932284239691092619232896585543679878714355535975731026246477108198672779117165930531786213022132950831757219548575319404701423740116763469760319032813410752609111388918992745997733652402883467399429836746719092103432032917749032533406813060243391320877816842850432446017775886756802496660990655605653519959177917722195955198415307963283457345832099371903666053521965965317299112107232779368318387668440634650609999453578779487402305971619492122285813918750391278623931153882871258331703546780532405062537930457691154987420848818204071795156153494023864967250376501292506082428820738430233403799443071382298113324059531488984474392793891913263103974946404287799052445876086821711348779257340171427257597712342716764832185495806097309956782559715441240034916440354361771923916886881493321612126664873749450280905609288642440677695194683758209541859090392874406001563294527144061466728723205504989397380952302631463985015381275711690808557149183961343874636412670880459546339359476513036946777355236377636714145144916792745520877114791651774232903886807298673317303755906245569940941610394885909358506319014851486969958667991425274905043651419666723319704264306221655925226920507098861936795605322737611973456140866445513758546292755627777281431829417586272455879215956698109074555612950733457359949687998324803363876402444482391081252449401319383249261533912374169359219453616386879493291675044734608078172391553658214193477411752268186688628765818267556950457942143425219554093316616870248120305870332809332154443558827743051244145664292797470341610513201713779461531882364988551453105031631944420505261155829598209904210639858382057008555306106465637215447140502614078683711697188534291786116597543387932586565688501367119160913221811601834487869625168920951721944074681099008693878534781896376416219487743875132878855284441344369473650072029487137473517241694516012613393963351767029118424435806762191761125242528169577657132079500457779110756307533994232151236380320211925820793710487333907788723879999738514623083911303458377895931962824616416712961948997190695753722635715722819013868258413996659987669658507095262869537342724832295197303156762860059180759486055585616665161042470173703537290574838890111754917261893455880018085916254332118845375841903255848608328559226374152673326118114159840297973086222201108461374961922265612334564238460653903983796287031100676134264856703525928804879568386346403900505980393165937495019060547192824317285788372106710214182609326738838817239096062061266384953074537625992539684858445544857957798259217242752942726413107869779677825646714062121019537432905596112554930840046270143701422255078538408770179867852668025322764067654788997816645225460247979183530494384624302151526318253189655374995456370462397350678286508692951671741603205744840766421036722361776618796499146874188011734366570601246767996692463531362799000008881363356193782367181361588273395601751498308494289533189996701101937341479515226781798333421522035128375184732339030101158201930619877674135518508548952190821672823565572144894796500661636714261421076715847512824546111328571347419625372279252223766839016113981657885773244372344710571459247221629746281787323807588975537581916938261333769340952714745893641364165910934781716624862509362033557994749053771906602419288493941242575048801329106654817176167746634729564879003495704752014538099673196799118553537003437094880233019513577174884208049501383637396216585205162885192174685276064523722312449530251355105938999961436042318914295124967945908944304392471154705338480795071248026184861466147332862703858466254089999329988783954668304132551930016411976081123045106701273749243457717881276246520780717913078128162245277452175480817383286421119760754576886244034344147213114640552443854162267491943783975306184208197641820171299755739566200676346075463807752348010705941280415163282175233165187579516971638210121350788685047577336842463535886965939024326416715551952851623886032660883921664805490134703803979440979535473446512007849032787826623323274953148347339088868206506229142594448825297830901438363373666517502517335210364948522358693186177805141961449835790774336601118517026318322522676276062622090302873441495514710399540607381395634578407493427061596068330108568282487796503009725392866965494672583610214080906962224388923708500047563609684135564058044236569935661799972212304401258291597754745724121813353029571159684542377181285555775263019917698796731414014822778889192046935908440026627791623798327139488936856065462415819031196257734611644444359192774879620764493384522044597104273952995977816117532217236737433848666217175729798462662870732537417992078480196878151197593865752316373322341682312859021962030591900699718861187896115566245702379976299303795090571665112820310829872329287766528515793871811490279836262817089873183854297359851901170727598544341028227729596135872409738370489504358055235881774541762579918320090323060697501251239917004081630851341303260934795689565870605389865244865337756060103595388716489673646495390717692183476289765539485591298241599036522550922092652172527747504535609087892136501632693535676399570853504983956035545635263100385734227678175309722731181294378701534499299845783503296342841449372484352373769953323932412214659774334461667337457211218671422614657656481235414011060290222004389746035867274480051597588913549461801365986361073883080086192885179729812788265061471521809030741694893144430826552988428260652456817939558559648993092776532600336336161143345042002281740918494780852099225463618982422496886139314689381574819313536302750080452859587326011300722228833440954107612584002823222768544002298394159228850925189224141321897598800597619178586283827906512483633494419476549903093278899084729353019146825251945766477404775937315295351314504344384860736278621405764873801355479003778149753093678217483337132950217555553074811190877041783188690196594058252828356050239748028245920400516576025863293606692904698379363604599644191584423479456093021231032618053124558128620144116376339690214203237208369468366178218081510129957972538009378816766127974896431071337575743228383232615071834107943517808673790906426309186712050042443086472284810860088375937591598772284447006838386108428248496961620612375955392649956922384137985198680019074988328587573452988931328508990587648128498184647295435715734282311103348195309559546751855367664986860629338792196863081853325979333550868737253473332391034104864418019031203958905869879962306709044467539939170484856860495152546880829326921623310078779209795298269504458442736276909818481535599662115523498013208856154219370005764394179669327538048536704291913134293140419298414862794405880121022415173839971283448356366592423477706927766547591424976911554807930907428499676649537065589360816172824705476240917585075149945669132221962470451667202156976285005447504157832979812038985639943397822202108293505964246335465969315861231195045810374286758691427624496957683200830211663360930609588329065558696932560501332451309691367571008971411218929695255823333498330145091749042747854752968118167552574328844103240392586720340440862389336312272735261524939672208425458481471522871736485591705660701566783557643596724379159203182870134039905253760027332211515004126311239599075781081700621621858581605446486450461334012738949985869952157863454069073333925185249546589348683583355313105246303226180083508126786665046181007126168286362701402202764277738987250271727720943070100374710300988844844469482055059477867055105674244004864083292320912164754466944266590254541344925604997699562946424738378259993466474114587901961545271591536820509484978735442511593290623232472255112442856008498531418954912104137858439217691431459190135550710220262243939728016902519640294353635589922363448832791846640190893549564673143564395127939934801800490374900319356789066482387372588631966362433849657809928051468658318203171838660323298692037265208641701997364773375078940349794875743444834546246367971190888714687734865909800727694388892338571203182546234863906432370498286383652814887501624419102230137082388006386484719693675248639207786925078868554612577004816766295016053225375816543710417110033250315447517080595756669663111320842231469642179606537998577726510514987756683123358724872479176794416301192057340685226790514710201687073585060663847134750762480223832862573150792228216213152206350360751557195456704691180907180696436051285526389286579557342984134950336070873226919924068772467260044942400821797478651489922942132810120021631818717132425263517815384514735176242616782077176397534067296506718901732872564634427924397627841015086481004807187560221952806586520034008482591325570929588833356933334003245319736499225796198000457653139289698733569884618791012088874874994272097470917353486142890088578295447242165227633075947979810773870982052302867023859123924084444175923316341134018145011913073391699812160422525298019749003086770147048639018702234816945692012874026695183169326253361224020399198464462410864976058738092677936234411987675081877278064053863590894085705712288743332622468378351086003786339140084293507381586467134545208354152399459436929100061932789861144708883500405713245324196196864612990048670275715770553602202269046013126019097861851557931423661533360260142161319178693764874306317196793963644614539874934495958200295972527117871805328192312738193366832167068825405978900186700962575215586642151166910751521097769352823333051326858409547969629786921543741637679783518488680517146966818864629905006703959436554593280541696518854236258203986929326787251635215427323191956813522393880778206785457302059592877152516158332705087988164009461782908248662362996402129332590450350885015519777150105059044657473474931937795899307796036479899951111288121021766080579280034527920978063587325785927565121625622887783150409464377291676853688536731783987163653276999429316024960459293690054671045111137293641851869794509852488019546916832609010231602868200378848997871300077010542036241975777232193196965748403262542587183489382465303316531288750327373416538494158687124128975197672552343403191747846437143858242720888891168886304002402368861337098503701306039984634650547187047784457408114400357367516053862346871660667687218833385461290602548812274861458993377001931535450491586089982060776573825778389283824602597954145456969510642038411193777816638732070783076912671807801809231926910911392688713804492249855974421531041022905059361676842088968099336390106330114642070017935319572962737635963349955234614560445785570241664145035938602385792011460381082100109603084871172805956133941488666471476850744740111229965249869693776116717215471295972093445203336695054290794134070189617000177301853591667672006236182014196518582313656134528197136992160902353685068149460277973438829837192275221264063283709614838600291976606857955551369490891151680986112688729538611243969681193269903087891588859313818316550059618285233120375776231769109389168377407986576222617856059441557757380938366916738009526747183524021866758944359904292604450534531322049064748920202137210061046389153654371288134412173400865732771135389815982159177834399879987416509724200320288500373853622498422385945033339390002591185182605714628542979395273989770623418312850413886662655049418515114713295388807414990187859099958188026845893102602583345360282490336465284472084891587057084120450283778052050130244723210441900490458302024196271400620342696536001080028639261051868866291712906453985229181046145551967455282621451021715279030896787100880778613014482319696083413114566867432013760603303252250405480608433594535035134570299418142162423617454451403457968513831364256874064365272241334733481421611087285315846326813506425979520511748807525069648857988171034628044486338620698658459133743310366847062545759786362725662726794721244398499420770419870444747284245555664550244635144749129005616196207348806500167808598446180973167034039806227165264814318561280163685546514054884055185526638233356079949729863560795077887209050533056250365923688162693766700321590038736006594936504430690249393695141517635703363218530961039078363500897178577683015548155087192266145886165837127755585051782857799182671468733155472248846364116150276485162727496855453183236990242891440361020003535669535778261849566274589134973928050871230582705310302861931002788793292051286502422343242401620584294579360251017037073692179742235645407930551413935783818055845353474532581309660649728801230574354286977178576186078366753266406741497063911835258533867275118225861376835629829942962438229559303696205531439404112647410629418322944562535922283026371155266664939807947709391544006042076204994814297391005013386012840620862910904728665196679555766212978226751389169621529178139502324472904294923265962599720074178535695325431565883667267713727066785826936329431627164190865557694515575963428573771730308966126137506521664538029656218890901016767817026572497628273771992356605506403169301339936324402118726382507790252322349372795884537785610945191591876146083090268229301789847842905471205337596202723818024566622970349547742141034833332824622267030937561316406256666718200710744501247955775881938516888973844293966141642066077650329929934457607504624280495498239593171423594216720204419244535765291024316531786692644100644285639251466207583441018914874983693414358443884480869771132462176975054881347884917268342413728331736947921647516830438860596289886981414247510334415740893927375955750180575150468250825330347583580398555711739838209951716691450011961182534213031566213881435240651273259633373651804780618941706928274927896557909824639523741878876367677689867372257850918139824244092119455967200858195691846956963414874937256947962372610787417665707449437608911940973176452447643437091563954209831618173467662298866506409165531954056483058199566833272720758409638122483705564224110684264270426281450778223974754088899010975725287923201136737886275256027437834920776544053293228865826653812999453537856558784715898648875026151032431267097038032633024761391823915360012944371146154525359546252769890287401020293060404373042683899224346238805348684504436042542911460125955929777793092922954669946833646648932727700336072940285876224464383873208930473771703363093469848417873146423232538258372960783917135164114021754952726606302225936017328356675482876641387231738581134940103922655371412342950822288814986158612406011413194960151797790817057350830977987016708463744617793670984448300340386196261348104160058737850485863705261057347706714822716661673450150233507998630805434835803930571399986528843487834022401351842312702129915690141136827528185141360461763575513185180068015398079206688621151734157430301364685897805453985712365264506324554317595155219024558447303845877137660454587958967967547526282251317714092951906899526151175587289957545720525622694779871888539562393240578702878306191213570731022539729357357391279345262134861347465723159094469767199620776442453277023001217129774026441205554208922542065321521729256170799084709604378582213344496840436247930058963127644466731467001925653481934931959655330633311074986559183617874871304124997549834839675504274770075369055381676818093673515357634560111113815334724290038809102609156147667017131222862445010336300625923523278271660185755494198733449321927594987955510781774343228805977455933844000830341857497952431605648352938214742453757774997917106035649211534328713208784855063781731863621454478421923598962005409560750992732668239991913130641777472154778498680561290727134226138476847580658109300802329291499746874047076023960039522616191153142470614919316941244988854799253570110690407674588646329181614714017381686553881664604179738218663872079478799753119229229634358086379611477641556547303677329487179387426859693188693125061037214737764129526788960704067291702289421297345661863278814013745741676652232948729960226505440875646441244950704185054892630391930422129959407876427089021579464935752719140779544117540594884740483650740840407890392497417018531285278944040979022470066561994560484534945297024987749862898904844050552909460166146084488982169008362694163718096266421299843960529530847399561089366197553840331469444447220212798574994949232306699500392462167426726624177876872746262140953650521727789938224488879405374221966147100808211774414272836638331422152560852309910272312610208934584283265518626475161510948608318037593125526519999892600331234192810810220828566855136806173328070238035079951641733444189974761045097079538172043633035741918426483348455401003593607031097755241827901205206308357824472502460257609511989056271952150691306160570209088896947915831260580960694591229555918761206556351013468889438959331999889115585424413710671770224947218411758576538177596042438948602736897335886393213157914751591908771439446293238643446083474708201390552729752635756059607106001607617657906166769732955835069998621115106019470553190698021831748710567688630671086653008168549504162635662903140221524980243743060980602989726382932652417050405524298356750251420500980077438392681943300214792136464694093589358211766975948537259331769234927403360376708596529202354886341758963698160274471418375488657471888374807348638961024115602543767477909822443639412428006031354392059513081052901350302446734504920131421077862305321884070956966111155059104856680122659881040809078479642702400386268617114223687546787892218500498849996681969237257642245377817769650035158946455114092496017349671106610676507831834975882289028401520155230493582415406077808446892203719021830190737525223207993455472477802269881407443375013917631954214260813518402703891432958860702499678459256560216047022621336554682604197456613219931020931745229402651778933373659973384955547553887407617715719471621626452689762446130890684496719209515956943131753792549354237837677761785224053869915203283735708269209344794012747211433906871881960342976034546233155755548574515644860648663343300952316067555653532079539738405724050831972261404269889940847053265541350348509829764608769420374408254012633703804345776885217768238485657492601454808202492340860760521568915240037010456264290322599727493208924863721151651992307947159695317071247964266020153913721190259300703947806454500798857498212962119517279671319420039109815526606027520411041819844155873158152429835932501947983208383339574851783944887391017778336507814808133829129776082103937285089685648206897346344048567159699996883801989569956798785935683439106058111068591353458869143039687972901754377340224485287325035137591894865039851870309314401655357030552327200465075620675096483815907378887479014565642350755716455377279691740735705079398305113172744027895382680916458687892610376233531540877371450334781012104148854370828590845558777815892662561099544938244846699178323740022244722168732861672211968004325714162719911092614663675808306387281053484375554263273347775168262414204985462121394489247518308601487020962353263857379231326112349308156418808184255040472821310447341729430349750234878385591730509368842244076652774244086316535612683121937738049114063214910644948286963277258405471680821656457904283571269566975972237964217225356288680539637915285934126892626596689615926836300086024091901666199229400606709601469961735845332073885945769225056989996640732532074504424871453217280966313989213524231515303142854679300329833784830543209050732158376527535478513293329316826276193365880296576214171925730065507565902633205683699944378764718114998169648557020544461135135473063463839083969703759099310868812631397759092574819573036645907554707673191791683477640086961047846433468837763860497272426629992663594832778441469479165069095980948044933977699085335793954370442062190888805655463265396894325055476686879630934483531589098124210621607922128633826587393399069322978343320669197478416789579207692137766977804898461420156843607382782417900430896077575077275540031653973134246942666832489607145142865790140950938144787859266748714801852839932502257013825020180288350849878832758643676669786758969713896246794160348214577325096072605611793913251969452872483457191366587038300180576949301286092314047757134675353615738454952911477330801793298255586937768231608901425473808819698642257191034122365833142096565242540765129195343867451947382331639891794667670174273016661497190173479518232398502658872648090264489892048608916542169215436032020516034916505557684206879199505869639665133612141690517896344839875194690834060207296822063796243623162626357539913677116981618751975781721199377707822705741576685934301908635975281941635945154310941053973657998056148484426397844237991638176455560780066598747175218396191946062088666564985887003841275970476177613539590737267820072015598296046107944618683472118073754087326684679320857436081092862232465099248548958169844398394584084396406458878488505383512724692042608124313839332859334752774299092961478414713620899000628430266911635050614937935665992336879158497548024956290034965354048724322099602904257608943282734313488947472209716505131673748303349449351702983152824146822366073275705749460481092083060452687162697318533986646915447749106898982262507974892812914746458240266425528481944842176962396624799398947020137637612917690080528496912753806464839135561187747630856802119667794636478292883654389262060909919916371332229089716380687167362596975804495607060433830514524097846227239614888214195229027645777178705273337810065774402775428631100931032010680214397856708354557479499154287285321815833431909864284661839172577834518911195504081270193849948092041548055936675280413239870860820213578680103750096806093621847258626615894193366371467618087758684452137866591266996174626938968266412275202558599061779763197796110548935563798574943162427364693686337582581017857103808166254914513928158519035901308071450861743722321408778995622253146771857369050351455497607791267851897805964015141205777675753483393442687684210117930677790206655004495225884753735540175900742761196952514481777822724200133877033896934456309410830030819603825861142827605712777386468754524578169248053565184489815439582353128298312981422555882155709391466608308551275776181653232953641753211037161321149116035631042202115622041949087247217803475216753691030533518343860065854891058789013464780562374282538079032489109437772717470197827367315653689251234183358413744829938278771539553696276292513034943110313865740961642909141800935859084032821824195990899922855802593467057378236583987385751843726645665234162481129387830307280144993724019225363015888065451404283499905914547511271970770106496920597465169035640292542031813248685772249457484427676274885524625369905105355089413515359796045117804588893249892917670595017077214028047522762577184513974606574161078741451150683414169076057034754528851489173897428991728985865057414622582170893076577173983821316799757166264202552829376913101672221803310773181102526520433525863169180345813967024044621789550452002451404378412482546247399264870748481262180423442409290123056507235272733755598937313644657156983408902886096328947099526593358254948200547159207109261317170142780676265661537659523468295563992770674467235010410418633333862156456944507485285232758940753824997550961153036674633770937819009835638609442057825349866304670048597206834301813683564101429465119188281798673813351852092396715675727393458400584192597980986280436415024867749557336071004867827404029832111056641109049208172314311612846953865331316347126115644383417451867301018933594048291453346751275069582911937166147424983164529469817612909879819359157958516635874777860630457437246187631570028164623809367529891395022779973248494599668324481489065514069767987022207019351238315959169776309951259355297008245522813514263307192460432581743092094464955652548017551801448345891925235735428770133902764126728108464210964896665329844678062086648430011837416001926847292912420399975603574558767175343873371785324734108836237587378118149800348979451251886611030192984642208189341831021845463746489667089255303973096227120206895889185648170358229017715825234739035209160449206382245654822820435274116957458739030049827924411616674958296335034357347645732777384928173641372926433167422206328957832637737487435304949995358172438496167011258874396841707978624575810630642162251113708331555926222321230623399367249045131838622830482122443260217007373557781593536594616471634185432886855005788220118408490333425246856835161824970643879942630896435604045785544000203838010767345065367735836215955534667072966728449651526972964772739562434785596762790149618629409202086783934092552646256785805966500846153628750705448803366672934953935367149270868082816567562339260407870001776781413224562302598692800216915574414691988932775179223746569332851459141682384330432814534419155822840920068142102852353874164070495193955754942758096070764455616249300917209826894118668335416394199676770949660913594581862343525603170401837225410107262812844531774761480533944555278282561321072806313160150514942086765041146814146585463322719461583860804872442846872063101674777206277808080467142537261137447994647831535190375667306852505038056777832046416445751059165721257339428367215456836748475912090974870869439482112231962265192940275137705027599869989871802854286742368380725160314105514269102065536652317957366149674201075020325555983722321616196808000257218761599382135467954239210673065838299478178897287026367971357221350794974052929335984906611032885015013905834888852957376125849310147199475426507241713509429019139590386654675801749087840148999352751748343446711665172066425521963416774699492787105985797758607832295837508685457769961272261369640054324975019654527549715209952980790734325235399908226923241634277775123897544294981420030028883162873839528705199907059574706360831278205462967440668782181533892784674769551020563005800358396621061026865578251551280090436127951715851653486326443015419229806151825983203840707556504594921988717619597420676429435239054245089775796694886642442802779337429329211715167374299176445329626903414923362780296702039640897438625511940726110805359581842783859646186724138901116466415041092721202114589980599642257441260754724981066432439756496943474623571346566885040200329227517058001696714697578465819996718045192418619775307606204664410105062902308834953764213968672443593112795465216424498457052383253321193162168926463422265421016422408329669096055150494957542629839672671832197483334327942978609550567033440812468930929562990123564325049031548713121715412949393393462765628103870117183601272834729974463748392512813136475601926990225456951513786179603039988451710320140625044920335945725939690603759845457124548742143333946275417899180120148340538662200269575136703120955233026963742336624254766629859561313951305464889367053661911923233205032625954379069949517164066161420388975081569908570170338387550576187184289592748944285647432602861850719802659049639333616127610912463186498161625838397277385506328075737165958342263295953357564231798219048646544566225298574701608954117999693951074979138777012515713413995780338551042855962945290366210912784909386688131691725295709110237442018967544745963909016401742006311731536118200124800427658766408873926661295020163106624940982352257723954078620476781311167180771137625620954808737187743663105442499433390415743233411477641267259242078470433908099056389303401175272313143319543695311310190598394334114822795772859658243860519144988473855213062588860318349398058141911789839796308557287116964532277431980515960479581797345718120368725966529815349845114958286949493936334554979183188108515736538507320874765721607661989719227080562504644380572143715772112658329479620127519252773268263843867047903399449956007631529256402525497049092213287321062795928762954510841300655178023652160918422987100931994195971533303857574730263138261063518157271949597309129655898071595288179016540177087408048806544852141962191750560187088816789597940897196134450058643326034905966633594521959541363580464207568081892570788832211574107764083877582547604437329092589251767439393544550725868947758048024053962228096144932354840888008548015747360106799056605466450061453013373410763177262224838341622604716780168356387298833497265110647876682084365834939260353587373892117743372196101185279081209670754249164933095569924373055565543369015391675643270170917399143189299470451606475703350863052683672095495735875070947667550475274489539351470321377684519626297982631837917582139818870426742911563843308468475899489233109587136048029858676991619473736007652716477775234950840114652232622365222910529976297887919416596867795081684194885768006771325859378577969909731605274133868613306756743503023040101785777673258149523246617664085594112345486221920835725450980690539038529568075316796240031040175100495481888923829009862888229644606958384885890801228599664721814753274462179253821319833423946176134810091431773910049513862873891923868487714689900128698062449591460145880002899944430550204337991955551915967592144982418981933319113999213645460210444667174388909777891753287823277049595357831845788632503086069412236172262584477914030573619587734977937556016756690733279697194834047613741312401237400744196798321135249788505586782198798727897244257451154356802534610837850632244568306628536415864585256489463727225686178430368621993245996725173392180616681622962491924794630295268475941802226452574326517890064243976484930814392934225504249467647815355693686953291066083311099611558973963194656430262445925970622012106942041356116077620313595741487715171716315687639778995092877118911354931688389014000036541040209945211001981100260739676009649480717293995069126596372359946752145192875702354911733551546128199213968949591732441751234810802987160626971332900927014515895545318017072841644977907949225107670780900558221972443698244504634188466500147482947247604083416660837737583301350728475569066416438613270684924499444187145263050656557367324990337537055770546865251544507625851023453045307190944060303365581935177678997321343314134946597940914820876176101694146887431071147457637109747495498685331880759709015061446693501458181583564089701836611350194848397775000390236774284798235886537588012644999756704369355061016049413452343349947687944710679238463735470733722954742552365491751787177413200374970073816016270026917339384099605971475647543537135151347527038037870308198221125444019914407636328305942361937199728513954259560817942758717611732655618373184220548740724839044607219160524596098487608761370555408402616748951811830936536383854395603532722866470248607202877942035824647655952895688707747157383281671517894876021859496469377944531451586181732075863870449765019497488316325548878991796695337338182997868069063843598647896366662409216272724965592826465156676433081569171782182102320203103075356125685317244435471700492562435537572121077993009511046416164178607632091702765182626035215757716285769056812356081299539636706399617807159080187794974333457601125808474698675830841954367087888403268549806046196955309547740428560521279745051324770146440220923505422033141627562841520981950974962701422961848012518467961956936865842470812166280922756068193423758459843356836598679670246095838235202637515629797107297405382019126304292515052671296047791362790860428219942457796410250334640786364120342478718642434030691793098849180806502553156042590009693782613228248292709247332334854992407020992388829580582881773345800203535986682905874354513132865991433744677704219039278185899845213395825972862085500177360625366943878335084405276908595736595737775464754562729433582939479925201634861144629369765876608725525315677313854008018502545819383196421348571785884950306359374573409263171194279619815813057389706187741821051804201645965587744388167969498618295012186408694135241875221777376866319389079106637461276295346759881822627978157358195614301565927344401595513484964150579244680660376715863169716814344890769118618221619913740067217936189063011146203374052327800070301886062220863445673927641125990268034238065152924383221696113457630854901174524834341750730314250016025898828214375220269723986898598378388467860883618884587377997131153070111774285528051582441883544844213789555305892468888438122550218925194121754970218975557630963172707267905440892343580739433862921937438512343143790358915903202739335925849614595273650095129522547543942884823723872975417901070708407282641869933971511506420093829761030896589900775898466463809127820426211258515184961763747849010016928832856153412710009893396786627939936991607638547451934454895354510772732991353257941713440816260861214373852954616161926951219680287633588143233059356248669558021866449441403730638799569923338966001298394053363439235106589026501531128817356888169552871639348655596293893754873861043195552786715674310784201378022120536216743376690113383951624644251879163062533124234522967696604380604808396920171617695579099170341920751771320216127210159754064239338444439789216389021183433962197832213196958901544201350230507975594221822684151262087835661077430231014198595127530268033547417350426854070623129128966484785234469379109939114027884858494442492551964565735187768997681709194333683202287197395110541921448274960751360855583208908504825954478488841079112467309613502285171544959967078095362454591263358112276843517870418652917816163556199699816319808600872164569982722189129046131292553052038633678453051573557168214949966576225047132213306336596534550859132412447833996853614817255835886394409062175012870327549986666074172621547625555896153075001175545079785918309124166338103195669511241399764405582044972195389675211653529392042572553196906837044721473626121490424922904080781909595573179772229900692307180001110443830226831726422631465956306628856276830290427519970882176036929762362347769774754952146819215596645100769913179125508427027117357520446010707266481101986976074120201498031847533946403813109829208749348645200158880760922303907628552705220639410791596915024626323012974163648606504980781202042324488883163291827422241993163884479875658938322766746502163462318538354662841195906750132694389237780194519028469337139298038574705351281311293958030726308096816286697549008115755909690429262682323633957607498313490190065271731249091237421129694960287279509817673921180424987547302218804570976383976130761558413184508475446458091106305842868723079407576977963701281002169512018442230599569683717932563960001695701524852642335632290936516260831251091859592966063600548738831765065500147020505176241769913235273749662522152901834908458639549166361413132713227140059981640059986016837741286242454776435536344960179815060838055464695532729112949932053378744372947114780961241617596578346512699196671511990281036480902328749120504159406162240112931368749519414701306932191649757068880664057708755472906158976687892467288635405896599175305491797988738562189909567872798463067665300575403195306094790976543604267398691375530622466219427398443455495557221407331503245080065438403060505492894389300561192909707736262673869965455142108256152162369150646365210634727865896107479463617863510576258456533790136803507164485681188457845303027182995035019204747024982051787696816520652997782803540663863908916271018573589418274872636372800395561836371143168080695612018204162718332926244250314989129255619821673025975419212817091516446283546348251400637172141033391733045973387626524648238281557458921301789982929478003244671500061103782006705410503568583648965121531319473437039491616178834338445526590001363488804195503773206995215787976440928572647781437357801156567038101371792209248614176353811258325907633949624761775186800896173899684670045300558264251304960900392756407896918529630664673659998047726941207238084382610080022519427396031766194861214785343212503049966706989963423841163460694836878353331124107058626753915579137776295537332845157901830212354190623116182927767971693680077535815978616691722789387824330435189342163110852210126932692477694038735985204668887286588084764399495882354836883167212097622136724585372287305843533822877964300768860126531339012194259315838110658550996763459896572271414485449810760621034826436090498845208125277412475858076269069061859461043426520662461813034554654187129629130371053145168024410664514276561463448853687633415175583528408292903200402565783353284400083149585528691874053126380315360446871322234966089067470044877796354908922967013760895115657707672469219163395931166232363193790151629002508410155317033368776031160339636701362765051426713353733153852137573356710159738693000264117824498646173647211820896910525169863614704516900219275095283775118358406287648417259124562124913599293557818722491734922612206122990999990186052950646369709755728910111131475960701884868631278915104173896430143134124391036301408872900481603686644388759121573497011843850478022885467333454972236982446507110698388793476903970669392640212264862139238715341261354836252214502840366673910455650974387316216755669477550744588003236270769057218053334442459286143078389573217449764431231125255042843448773320705483906928366155826649969230096568864999491774414650701639428982522338087469236533805291895480683010702950414413438292425455439422306364481499687628763182638966688669372870593718681002374835882432041481901703301739742167422050182320649400939804127159268207347578400958087649371247467238634603642409414452056093866783483185266911915158426889999131879176347078999272786529225423361583284640535342572691473304596457707619150104774585573120018010089890220668543875153176642583136722297137718656418593129354050918430881993573046522593986998679357330126044274675131521936249694279878219796263844714163774111711451327828127027246258372524846519491077641403331279160467758615290353443329084873594761224297622574169783373058609989286303568092885251715270228185618633422641358057052424349503333230044089958674074705132287415073517845583871842938094423339746772006494298120359617432712858842855917636536019046729419957110656717531089309557791309404637741359216474807001161422606799697182479600832679422167502983415651216202430756081556214232584594594926244023367154367453480534536729283645263216423351417460286075965054809589607965214885031439191622739971505339718811371962400070097752224095430544700756041567147841750867817821724288535310351610637978255243507035034279801623884020962451715141778588745039815253309549728811194489125436344920622984818612687339487968658019071829157155398660908717915734134403552750484207807839419088695168360841640682028723912679174718388939737773281755349361652902732668819361430504335771640926743788589915462795612265356578736452408872544843991575376793847869556966187362302256292371573157121754059998412960284488156751952718924015290781331379501883639189663615604728547502972970347453694178685264817496852728350181701223112953666785328768148574510971798752331765599625988733390857057944869839358974789656016490878143152273048621019859926416289613685576055013045622725699157223427055269637925582998898993440206911985525232882903261431105599746283312763228104237050063763305692421368329822754698877966752208136519205598129034347971010129544848089112815089171667359466099314666837511266854168986751744246217411913635838662915512079244873121050073205685836385277463483610566457271764218212532002394941591081154669637568345532553661988840973634116001183250460376297147037779909006951228667949551045456738578095468758575762796563790275694775034974263286052283550117078786109253752288283359547494083185271073697642257337902784709938274957334931789418899855122510382545102065940998386049226852025630798185621884956082047749309582961388628963361633026040769889068865300990836497048443518528494530472913842760937069106357377413842798766239467175143450686812856160932240593300960888456510395634804807479350820822894394417078682057373438104049258494337561429610701379325852565709647601695011079386559084938366428048269323202133285592627079320333442727152993968993752093071663007217140029680603087772552483705152107099325642369648699724406462241437455853566711988120263239768436552334008378846663827552903372556971075347703114316597658448470305776965697857552787376221680297677238491839606361004968266025705971144726689508643495246012322712753545855679172854596989510752330733793970658930577754566646093125201145069271309494349959242324607891078366976827795180807126454072710627998161158441618193029145253986369300776258282335535838179570822186242343674666522489532389214931405678270073023729888076258950849296885977122229048605806174690534575643306699265636966314570842998584048078481791559306438846848871242400089370247861265175622810777797235247847254238950131472445711297975957341454449423369215424226263447337674363767948710651418598597999893627903993152324027733208546727035585348593709550232245830951897877221877080348255199447855652433116150639907246169913553485300585333416967011890063108349438045465493728495838261083918823977093457638400236136916123471543010018378218551147337713702073086880286192408827309551487820531964628430501651909114329953139495555030220210420093829014426365964763258263490739010515859228418523189457302987948532103263964218925865813728591274461668218852144295854749372770776678589786039914877122742931579197396388946819070896718330254667429127116943753562310976896438237652807237864935417656462906402076488215393102256385037626855711157586331917777654819512103874318815666298920825627660651062901912504774647989438900346650202095943162974714503794095453712993665722682004493741381324213087366689429738566094327959814685651158325834699108188267701575376943782881394224968944017036004281493816347047955307149501927679886730070636015224453378948797840820105315254970658254738507790501413399761088936315916758078265599505604099490133351424373441516128770333711392658734016455845819763324793853188680546491953346056539717037176677016227518476073391176963597594252935423677639985060813972395328417005937791217536614433296002701079756528337816684627312450441999230502060489923430426205808388393685619135402982770149169921262885804454059063398996970927206177395838605908110947831896804488626701164527534265175119812662358054629677073389788930425078836953695940505935497959584320003574994811214923009706963955016279958498851620797705710829713450008006303038853716530375388548684132380581914266976914390313093135396599957437989471910514553033667890813417893268261958204522864963674104231660555430858797807846896058981975671564972787051797159217582470313706139802711711780933869931561682585928646471664958758742811224672524539234178020674093286477628253057773877083806104371749174746341311697076427283865954297990210668219270667218136048817205816809617408389715664302189111560767859122747252739498789418259665126617544395530573774532112346725398999560037462738682833245344118743211551906749490000017906016706292853064431082122373821020012468310915663648089369952427607477173283165572954259515469134185573374930414381815808292993666666058978624484499685544426530448618163063804176822314045428872240962801245885177816107320260372989447724021173090456976889387874632194974888176438347328821054718900794103882052046772778882385330876229090876780701928809467636714907982841062019075089142797983736889423077549494036351354289260269653255245945575910418531453037191328894008720532158440723362926132354775925696884510285955597302927813578102015432814543789436208510259521595266539410338358041274989115181878133232662951024836115301809878115819766259515522297394521365872625536069928449513484022127406231876906374108614997017880398528310866281955613934845284575452854091499828027268837482698849191727215051692483488553372987870397585079617458820270510277405995238554409387932618145019538656717347543151885344864108206635272258486201180885058667392343736019173072410537556757594150284883117509484656916570417979238236489665776335033592300785731782779961888490698812630439592454597845987551523009075310143590200654975239187861754724562688136094064145651471755150718203461546632148552949181387985029054829931719191427724118949736568695910652493021664250296152271089201112380407853549323691007204829580706376103006999288431977105757734886682435997752311113038535846635287416651228568264596520571678032109687827154215885298549675157113837505801512950506376212532803527523040293813001890051215478331536853360374363036462499468003443647138456105919936730067284139261619140586539823300737599709011834857797178550704601161323684171385688776773957732862732423846849205929592878387275108365330237124970898552039887677078716733712996239237684589589870154974445466009921070325492611068912426696362867149593244796606764736422115351466797609729828479021624100756584948150594460488125430320815734774658752775647364286452689662222320784774005503687964967660542122090327114771103335711043406976294968376778787605618302755820773466201555212033619547649256548065551172921567301962366681736814062846398577689917871888610349196637522439617473379503573961043830885587805839329661125420173190114737790508618553701684105378088174733050273655932871795537216870500785029190022900326357764878761768032473980328557366425450459654143190940708676243523206750512266723815900582671548289316406406796792437240845220101579453838695908510465819574801047529908751721209242749344023520688413771502050522685406017676065459940292658893743517223526268071635921150547641167904176306498125646092221965312715219899502314989338588685676377215236543924942286531237961201039211090437225661891487790140036799255296027746061417146618602068524490730861636483862110411902730247642731064745581471133915256746218543618907229283862884868184505927828053227756184800816666316524877682168320423183113497907880901086990802482305076861176372108111799199211706831361619260009747647835623258013266585459911783953028260348509315946516708721201114778605537965559730031310234880013810820627874492740884324844173792497364264096409588295401328385532666822210515751959334064861476021395974098562357273127174018904110233854031480171349993616845099790989116777732277308581076587024398731439071201204923420504100781313632721651104335539309637184294314814194763067132943893450005162458470174697308705772264004550336483774592600986305630016030464821082419463627550500876767385325833012182921391613894517299682997951729021448170980595088000044888743528558804521272039638854127989289091533281622937614319436428199904804585003158933283240751950680145372393690142283609814831144038811089993972568981724822918927113480074627470461914243841568767505607487745957388550923084577255228201609514390885935383803080510055065918278013107331386145650068695003407335861909470433534608431235493773039494895098428622388227856829501892797840218100375229509135373635278020118012641190864192052911730937112894911612479977939149896159736941846684211208639767392769863273897314910063188083321130111778504090538129421485668942417424801137669746089467008639131148913524127722335653863973415771322097804059644897624390885933189604405790341013472121065132364561751859753985810065974247989173708748517204769843479211061703270773858408061713209756057431887350603512853194841055544639586790577290153773878361687271434298821778722147617622745528877860270332517034389168096023273781620335873571188893677932078435066256533922596361209167111360391652650987429392124664054262232148349189779435014320887838707918116396123297858430651140098394542235733077252074122889043144409349859082616920734888648631864743789169541634827867014356711322143761035534211553572143242128324774769236704195353004883505905586260973934639438184835209430400395514093071134450125610948460111979792674556206696655467933902203135105924190744993065632378431308288263410649759677531627020168741290026798536627781963001468567999184191950290046321027458246657863572658377739322169536930468751866402351890698674206321801174543516044452946991324111925850892786191357951889159568641489637188532280694827087243679082210770569870215230690576274433150679481474056799375084822918799511202241646815132433124112105822654503708301718189680873176678097693528839069950203554792236991543568633912528661070900753683710365947458722283457549629886172102436374356931822167936076267848806331289726772876179298125059540397005213786601925030072085005008884205390434116604161719715910628242818413597074542205659798065493580205177681757178051044287256348359105101037581347617397433043517934987046568144868235542607807815141011256104928767194978805588856816721626337924446636107727070639938251792760265766841240288554932648700035826246773754712419293289385910398597644036520358873547079551492724563934346649692478080719254352697517151172164456887340381358163646125894066249494006076629240314333489704367745107447351648626443537679697191445981066309930408820805148972703900492414948263022723082884851601105950155578997026719997842567123571150510033436210616082903976768029471232805191091477733411728924187481382330001720317395329268211608296492939234912749837066947659475832752657394596561572767061327671786821728010610520273177557213224938952979362938699695371109750678736045936995039185257145444208155314520492622019809162810870346245266052421862433765927115862655436930882110299262703593142861242393646505552793396438944136846669716181642333439365894640545307742022324300348957684116668733430926081231357111323356697013662617588596867566152969902613095987510410136146771113937783827208991176772930292545153568524352329749152587321359766202891866564755202130532593929662603243705134637904795405890676613305520155385955730356148712231122563044749554689582410450889029482268454207455085958274000195038299784811328059992019143842582483432996907161139080776291325941286322913866669269776445544782304667947807638283714922623251130987725667079771294732068945782632500540655562852543198686502254885976851339570169786599264772313440370940834533400166795236930385267650922821099938072208290472418117981759525670611909655224601763892359821736802108092089008229997390495244722073562146547991646484073667592660131291636878351862174592312481989339968353108003568612024354094415974973982302233666418851608592835041028380595745148441801111839708750523986667544703396294147313325584535091587376995370384994783391124516143135991370590014553866502707076840184620293084317264740568664965626731600579094285589542576626634574551815837632946625532101937312603759519045234497656792503599961609359923191156100119831841603235677223290922598966470481314814110998763621505454210444570008136354816490963023848980811080235682457487025223065353054579210791372711360016403765905014673608305814086058026408548788148710523560956493796747045396051946009537156192083019649623075681206082368067942542264292405606626364087055667205148563125904078176374441012987120688277736178733225531600911022429466448015952847467940125982494898234584303995737267263490728930964011610014293784924741404769763369475851049119123119215667067460629467764937161852696556785258477563813638940757544049865812635536012211062787786410447773427744054844856851690876465919235707323656737204736018158408390993165334544021217987751953687318521228742639994310822665518423932487075662549960328699864165518455866734078698193259878203217375558080002887055386826964134716746534501283582525837348520610289209115254530976889247096674543897423242448163651951987846554572178499084038035840152044036514355540679664419301555465141974916484931593797154150860098934970489680911660849219343678184806527758289457238630795208158091323358462295432750561844898248884429168287869405832371170095100642702338677765470158051053374751811785146665060915068148257428688523211101370465174203866145673117892589818905794836915110518493486056102717692180586551653904334718979595875348915584498824912179665928122590091820223305442833546674955482878373962390887587492149110441151207084507803312628003519452931833341936889204988579710715193976114534857485232005433884426171072780710539552415834232540352820761586413893408262667876039038326273286024742282845125191690752025036439671116883532492803416215783335853949078150903509854226804437668746059656776163426515945483885141398626009322462838014207510313563771961227313127172759834712226850272144154620638469280780550608479971831324047197142772462862386041400305193352075637571281598805502180639597620134774708477297859494846829429165568764227932193273376396168107891846638543608371790410943902377750517826983034278214830627677548304652616786125608725670649215976101602193932765549343970465892006704639543578550387415867193203712165044055619459723434738998377471866817569262062870661395785261705816326956868958058885155971006254222682277470652081958587827027790163278552987234131978823991362348538273345848202828985590457872687324677682067162238734788470514909169846559972098383743907450525163862176391727712658848586810652381523237963643628382680184130921856274138558778771332783281163885761379643440962313781136162676773984771878428444743498272477496537202728849476764676597362687212697211884715906298659154589605341064170840477244371457975434792806005556008985578197343651721135726536497761697057308730517929263611746740453874868915018300695086098275062125414493512996199485209387185970288231528310833841251175340108520095443109834093641676185785464424851033570889671194139453503971290274167975220459363339737654443733711799361973995887286113208334513227281795287492438793077132849210852385593230546504767836811203060136593164190260058889529379497747338171737875909734189584208603612472985724501012386754108489015972573203161394296308575210618927502579750713779551248962800307297749373789463202815880826123194856810682678638148254314349618672195894728735098682518480089269609998439165562939311680639245820858605258726295712718297158588440353515685655258863689925995194500350466806498557408421098737891624184612772558448551221969661227591681428955384250530487538738679499933834428084609090750209508249456294578039666373530943228218046565434053506249893096519912608071383124104406899579932145037301094481527761377081179899688660342393396781642350411693341551664983261074077633766163725628671462379705965708281168070323084614405902588121910574086999657056920688274933074652678992246279614149868895328607969674887956535724083947714603577344205526008968154501063851876194533477267283183512513961538966012827552661401920857538527795132171248008635279565006940263616312242326500965967788468234446297627406532606536409257487347909352552608226870016106763884450064804621283879298138685292110444440571621641712616342014616285117677251997474389112255012179662104189276879284036142112025745112132104605031548308444342500660960992897208813272199879210551806776447713842641479354038090390894511267341154922662962113794496117553538017334714623622798986961107707673412705955224131075194178850720857253174071156961921758306842842346399078959036203830313133690496032987028556523100237695053951899341208288371649870913704362452628813588282159730187207991886151138905252065313381200980685851613738794815557096157959735712488809557592082365557779458076074750091976337365906956981525244586601649307151856639029643802760427870716392472566462749168140925375870466161276199066168783799515532453518758357640204234296295348440618721810597260664059065364151652721399866798898445875398077671980668578049461197866397228687267476027430987140947645855724594267497147981447920137805077626574074048622295800481654186150616334256621624094485556016211841482499933919992883881323038553981839141217297425208269096087843525808086988601310135555077058266952918557913582236517405476652322800077819895110597635408942102445026383327869221135313744492716536644713001960429926891310032108312710058472252750118244132993875783262790963948337843214271249807910624051269099266678525502428012625184273904507209364128241849744591839842444414380468279833079399434646629499398741891518991455169535718845953271072945915789745097060335667944985328713047265489942404741715001378483611452477185334930259038432999922553418301928399479007299597190820431424281283270668323414830933336279561897376928551107047081484651770387035950210368396652068765654262804306248916901840561177197773898707138033660090351535369555552204279838915139127756047236474268535460743898868907618755236606028205348786773950240953522260498715004940644986911108674481625297042048332946214714492603516264305163039269100770272994240913468571038184624741243567653741684686632520712409583423126562729520353845322881731136726384941223386806571142350983614714574860546558633181733222092260160083838444979082862919510047996277532646425623859387765798401094308196909797912551560674739292449142108706300678828565592216792985249455619889050796304072659764441025576741496043716309047760918686763508415837822053935125396110350738736437580238432731195810138110831137738315917226150058383033294760733175574747116913160701578114057756993704332276534606421982514770001658239084558371436724781388998837143710189541172387869615394205864946120775866390062845886952017316019796337888729695909303311656744857410079126734726315881989023114156902460002743116678371863550019465015294730013396293006093591370560549856466315943331161631602456568223626179438860397986471143054350172789277066028998900561752481937624442354296578333435663373024171267032858531865256684720854486095878332603033422269991830783796734657721404003365708827849698021078895829393598958992082802225897151466251769789619946205937357388938514368168984333507160316285622095306232775069748897523572832579734784841195302929201887142498351782195523496761842619365528395114564901405514072531926191077469387144445693888185819480503981974361516413849795831593105673844822178136030548126886373896554317203305849162846186479255267683454845621803069554331713539055052738388592320804427413362008401764653220911501133953673230813765147523817989267003068491404938415883234801368025489282478012785901277011895265960237600508483730851929174817661671448447515422177516064719888328713815691759276429621515190529758753741084921410509016706608257200768916091157492628776653734420081031317224133294365424435757657827837239841887597852539999796988467550046629778860085928092750772024897933190310212035669508039917569735981297241164989374368001580181262164244007343792582697263256968769160683139817779689165883446405864029825541022714037669470748055038073225429556769412827448255754034299625751514985964276686952913379233423312029312400236007045888322942574236747433071314753525707392260052327400874349959405479777243947757514366513418564844189999731576084231026141512555948023963764921295959720349342632709744549224021466280293084388403010290135930235423421720650199418011402200299917416629501166220546705337380502409536807994596567567011389583264696832729166051307986837282016143321102300628896856754710626137173499659356525920527199102286938095563966666249396181474060059386138010681785368499465039773726993849808048819281910236691751215078312525505789432081094930768650225303882693845959403252255960600235274696821285067655063222907434323152609673908887811210026602463212662614702940182218096047802666892574079999621517784754402144216385768320643200147546236388803198823567281707433310906852364332769105007344135967083945996438664745095186209564246769142687668295501136093162649412481266711934186818095874381382745790828996223376577081987088742147560271743700558512938006518961481649613054317118713204616668295149778367457063621225519544572763516212174019842304382739920227396435303220762618405298073659864419247672119848962145269292483791959201509501491977858700159992808342391097851294941366195618245828173816577840769746600829248903144981748896952962007139867316398006842712598940995184805941681901908505503935470029183072559378559036027054100040833099600760458360181272455307361538762782163510030545243186120534427979867789289159672419166819793874716946329470931338464687072384269258252369727494966662622169916807381199371695360655140793852096829502311948796931683814118413675546756824102130543000789779024127617552956674524062302467895928835668709447233674039087866747765818783899893515765049581685426425548833119845638846342966910564921326658990782242815327144729738212378920018260433947635278267556204629852645369757587006995982555675782567207145714729827211827169212744904235840934356638322397031659804184607139125805984056562109090995106822846315378623009941201624882241368897307193612153403070211368524617338893395182364088174687009253794596055959682432650910016216379047948447608967548640655613072344367630769804859082886764169208707768426322196317712278276758453323814231728614959526756869900204045682753165959136081690544708594558382136969262255818808540572435850195673175405364969343172547937636212023240991366040369443418461891894923598145816453775341003975762571185216777508552217641943686000230698807675033096914877542400564271366396367079441957114310529686097799814738158810005347129770751917516435802223224860776429305819539950571711901398826121735828768931203763573626673507634184887587343821736660901410763537528089874037113285861911054766169171451061817055555774794379599147958720745344008771209555751312482967963023796011943154549438806147153984762732616914125505505286740415968187537643684263761361820065786562496958885494681474321752746603279045528439763358028589084551313487454649213904016340263816212067824174649887948779270198636079533744992083089102242534703717879648235269366043640949579496255488526312384294925708290706043476593576916813642296003540959928114527187866270168707067972723304437386491153270206942514403511597547501713106608173415419528526992999530181081043986824863357602679776800707200505497882874693747114805363221723258107106111069275700864596416285478856186920461676644087880080741390645293138924627098067688971040689020972094474298281294503637319947518566375549123082822384771270386191099817066813661746092531162401282013335533123627284227580294243792479485738747366724934736058706825878869860471442300471117944572255903745714997408713711696142571141166088058692625227799816655744949604103974335971899136015839605529714034407866634772307836656279488889470441510146115822814929350039812637108654217760041718944282327337946105409298427989610046097679590634858772020471612854260208933182686203896630222772417953868199371812623276796314303305663671894378012536941373844429800502333012182069776852346579267177750545801237209796892951189499837956747175110448125857777175743017641136756921145825968085780616128205347074580722402951061323745688969448523340607253188587330835706476841050506620626209359924121939971886620253921592072624029613037158050845729462352989711641737085177676194615437191776196876374613544405248820872049395682814963932255147333304236762129075373783104686179537212198288253042919769202241580778566477091137981898061836601641038493164719009139356349927912259934145592256677648971521540807199237832056571750670851026276207053449088885938621008955887931941860196921350078640256881498394610815929406579420734715527168804639835754853561453133707664189902144774880773012101831033076042974892840583387672774343501244196315071172747265873113896097506729012416818269431190232496216032121445697869197086843334080417843052006108574219523849921739987518542550612085769655380441018067950410285223622006772523848074796294176673611446330510271378741257524441660235718213861574775077710339492795353017036948041372106521869368067125888902645187289069267849920588189057940220990166233515171898709923086558924444409792791222189442042907051232206638950153130512259296755588678620295683357883507994368664576334123034120639857428917052703545460681770630920604192617030012754301873529587508344218433635551073126265443305224793812090422338781219244804426793822465490768117619350806793699392163855899331825591007988475418764942830304912488064495679595319382555982103037854255884160439639829534325460835476333065531694733207021127057278287604325528006459370878999647446763815732888531349311206086595826445749281476883899273849388945006773288152405451152742674832015597315312434180630701374994644924781114324161285119487158901328783221700351095097028213773933784416268378371334766832157083862983044827238374151088918290362962020735660408399682612895114285389073873384822938445785559745278057958139852825686044237332112550578176105153953737246027268032312187418877920453712758327247002413875968687834834145347938711675583038615702041635600147852714023176823829965806275422344822059249052917937133506633429409839203213518658692283378401237014009576476017667670900668020388815227087344573189291662422095905533384433222958282915568646344268083849843276868959576490363484025233114163976825071809150706392747821127743042075679229289504586127509156050509806868964619978810252001170359914393219404538954482234868243343760701608588823506020200219602134246920842653391192870499379308377750368905587106621762112806124804765332303615931898025757991252868228494416161261997015519090245649775762232362584096207308109872168839264176723233839956885677745823851358506673293866515083702317111013831962150193601003908511538749638003406236749558718194177101153670027726094553551343927361104471934417676844389862124093523279522559067810066343190218177305910395677210518397788343521444124357110736940316888551263247162147484246130453612983951184137590659665615767172548995466959995163056451276358706942032570748268959044056580101447772325954120108699328920949770096959897986203139324936688263031959275767430029263926428035424568957658657742168469766924069974694097838961613448876548051259350692769604726904738334754781634311175468511664628740655279262838207436990091579416328842545409536933269464300393646685289011918422528355496185229070062408759121483842346876553141756697230091107549448475770850231244965727369930671584870118477035753851656568687679099686371388936372198692609093353153206207791742803759765430004743919534750477328656554622728434209937092948053525225974694690930543279409258623465794989164555181456386852040833158610679588428601592340132645076727628434037246641722749665540737263542052479753759780079497252668186242048782141772683571284755890003000990845379003838091283767840029063984787992206675204350338057283697139581247427779190109367060246810387763569016845907226902434549173503246804217124459676833683000819585261472759472393559400225039166922144401361662596618231450078488505884002022008404884132020541574651273734698998924950218624436908451967883321548905329607074275071695879512589446950319262348132533144618290383791968972660192281154777502308180483176846649347218145613507101668197135156271138473652372535191909146150319823162632152029163257186282334399802286918744801626791667723591528389184654745898029765564290550519376335873703781786838034035806376280127374630509564426031026807179199273943610162201083089284774630709981109641411565439036344272835588535174785859246483956103979602074727310704920769476327115328347208571834451875375373336293060692615840751904074621410614817622968444418426639198289280611852128877045164001612022686297437861159325806275849081119422836050946912659283148124438899652153183492932305455631585649452995008883424065597639889385263403568771107274754316461866633468853558520697287745492948659455389612914916798675738081394384065963127804364580558000667600295071529289479299004096542353032920848858556823138021957962703706296076372116748055343832836545812458517283866954489454715726906253248366873422647667459424276834168142765886738792559872177756964995356620536787164722975945938752577249552490392740154595411274675363109201497563512441227662692985398853704941186995503776601957281882198735775424351540451737819339828169814887811568217828482211960556078818814584694134330403705311431096330726374998783620659235727402810102318688567213710290587170559116466971381739274928355075837211513588586019467636923402430235543979091183729404882610502291679949133700858309368642940652245337553847019899383481939846596205214243907859703460176872202712158213242480763569589642607323664227936349073076381329134992017892208618198058273065383243508609128129234891655494383122821306690604084737647119144893990050238509255300464391845499907449704772155012330976793961540204531777688087169506682301167374001704053536189473869880771880156353150406288801086965614271969170262254281473902081584984198199086381610442830992550252036698356931990460553888196774181295278213811437275006151288561693760806332709833500557282619200083974168273886461035190618036633681843550744923464514230506774744660378345240727971423338440974979864984978228153298853741272261836002099866424485113196234853079508210321379034466479493976643451179781827998963263012725664106890182730140024372570603518243133645654890722207768744193804520843456733281953423721427237742121242651562050726140827789614929878835519938795085298239570670956863772358056861789201495955250384574498578686544380246361920031039151029248849114696323428348595387360105118688707291259885578752353389523655472193082696015103299361682827095030905663000084010517511304548852161976705136550371935540357479060036488453159362539651845505617807424902344197291659698509038669367377250272945425387532535231657427825757435818364077653669985303050440845414183860113410701127045615310628006187284363963649546427056770070133845059348523085328827283353289355245887478928164600547194872224507627739725166415519210190600288987722809235496768169724708325185563817320033107233706439514651906462255742837168906465723951547423139677683837206819989083933287250292667375487966721055597047571969768879441945456803704711972366283339136136615069181418445673584823521820591868020288343901594868925286955016937117100245813796548549218626768087112709512775652938258406171940285241874472850005580168638885164961943694016778652784040706200178529523544885083165107113230067972108770833444561491897534427232667665530432571416292920683164862973160309281544483616315591413172913742652397020218537999131043277082040475976694685597161443320769148175928122310676513492335920530802580703981948364090873615055732808348944377621855573922968308970815857001257705279678238519923043755618868180681732145968198576082819007418094151510357171531438220482782222701221236558963354349464658604366249347015462104345835755398953966990922614798317264350173204442378795661750526598726298756914209095445542122291560085596731339996666519233529748038073654565708324137699356295829893544358042163677918779858689226137354106924988726258894049065459674280553918139916247332234950640539440686217884925406116794836845323722782075986822131172646460934179655797165126548430451705074835974311863171129624165323756231055078781076442271722656435269137702761598105267476762652756093254589962606967240793799266177250780763005888932424386007116207284174249361696023756598647906566105813519458628200963926549003974849512977194067801166894020735444387481652447765035673822997894539493948653723089386433426609266730746303056834046603896813236204082738836790035252175410699792034492112465458988472321561630165745763331290513507391649145229040957960496724258205310242784062316916338817889240562523698445908158494225124132727262395421188968934877913883780969499125770870628394724389319307251888054232038115222520812122901871970649615570924385893034261159673749574653551245502542595426416023482619909445436471786039134464556963859165907395957544335730094625103981022669768713210863100994597644692384273522066511188175500446440313769672834768104458955492767237407528252324961309718904603464247608028353599339019730042589873120214874156278557866047830376951104785318086051758327550107925374560064826180351161762744224888053617432115503493931673527928656341420583496168173318247858165489758871192556119300953119185037272408119482748833313749678237316688427049036244302050224279204725773342815315353300776157202811045207365953823972192681373362611639993442079386668552608523762557011912612448444534735941972883984308268132068887471349155671242070578479516272629181414200610540460933969557906052173149868041812350557518757191465332817539058345573005819467434621444380085044226922971383019223893131924990442434656489855999769072069819930935636604761891652637067185078865954815408378101402805625826592260845745068953424864195436160851613386363592297082816470158727922166307396207235165341321618054141175607603025981445437570406182240506863197810384421847298053592015712046305447056880966314924109003636866275917825685412072709134938996227282577827981118692176691341625516383721975922258821056172024528952156503235816963603436674440970938273441164528914147037144412191378801067093068648418765475681926278672766857047411754162974320663367472184888282589553071983699683116923863918389553760528128861780320270178348470458279865636670407726095006584936168105950372445960930920405281813203369270134565502050484939623785048335155793967023330922253375206298240613829191703621260106606048267544467793341241385004798523893278092869325211201546592115020338732826045999472978069571097861767966311804524133452443728070453994205040598845933871814020558232220486882977283767682150625836964794334533942294074370990020831181987884968257367403141525584445478892273508122040830418075395100510839954242860848614515046921489313179872294504313613127675387156775885878883202687220915027983415087889025256479767548646856380026025029700468967715045067957488703165440496355053185524320655062987069748268511368316259031382642007662463853487884185974593951500848075605305161455881126686824429078901052181348569586571611335449722757540338918452834814453461406513427672155636897924411488652634618804779762911441083041372635438223547199874813753995167578838172815320293872391274068986680813853737667259203157786138549277819757239934110820727350364684631464410488545917889951952375596800636454346514058441961590799915198456015213810397741156444391382290251669819668187100666302028204630487612598954359975981923524033949543704274295446238235867805648210516729046163207609525869208423821025354326840722726826208334359302234907250686608680271952892133953801457703978668523784930774415295886192065261015584404881692804595282527762064487696270859010512777864979243175403932573575241973588918586045411716241235444780644960352205293338356448434108740114951047147694352802327732198693286500330153547441453125622638952591810511013649307024173315417678010560065599000574440081368007307560138740845373022302433520347869050520215123323918202244608146023693034868157012121047002396505328886244584538646749868225442296942101570613073416064345261205929343538306916002445254634042542134878669119033463977179120091073746684539926299634101343932332514641264860894337955562790817742223841923130513133988112005350838297567218815744974298558867651572357653999369235605115018880568821756173926944187664339561056344886304175996764980443126885065239735278536034524388970220989747802456827738404870680052328658308342341132151940007618006556956182220534893586723933387936999803106978537937986414600026893624007060113949691070902033863102949151634724534050182806227819688501729745501881692734248528296313261496163062455405518103895317142056079370403975288223061947812534366957390649211155117431457265040281035080073943574707892740537011870915020235754123891293676195247065527734012141701173420015800606736012910067096114740423260361993799943237873730531264521876330321368941910522975619248087629059458090530173452633340124009691647568219995439066409202773074052760666678852716004709410146269360134828375095739194654991803554791236070753727279091522093203036285907285397440383205495171404353574787241287343442668400903691588853883834674937410794928223306029572249690229913422903468455426008140278318729546374404992084579447058598518300485132969831847020134868873094839447737158938304621674797168780667202542156152928544216246056354045189000319940297193901054163114059738404192876763001631226650460002382912137362408806208138096692006071569341560024542356410582617998741884785017459044910283095677673715809905358850887639707182317192578569775889108253007363519837517534650558070157741891113980116997802410564087006700337173575567190828778062892795258543583369606661497980468154798728268415162929324634478297013473051716145901873003476553726492900040084003821577216173781503300887577307224146084727649108508623068471032903569030368010257043263898364605601477776366528908661990563856027545063782791182067122429628271815910379130026699401347690384755024463874472222442505113407437139367741583281636063258483286987688668737051687581446239635293237043719080904556244976161051768114103349705737752498199141546705564636001100379480358280308087664067419822583183910634338664582303267118322645508334189986156518472275782754580109856198312019409897249009781555222866262349176837188375006118804746619603232937960698745977493084037102545467523656281771528966044850909839679516706459463637455643919753254150673736542350247672565452229294930893194089088296596585338584167860951649349193801789663218509335835995260766878155971911264734658608854597025510664070228878236122941398489250437487396742670815102852834034442433308076613065989693834135905154801705305158793991059526350779087869357520262083907444014343687188797312850563863226880216217956632606832631199122762307319127345340660514932017896264044927640596166606217215378532107248805269636225491528216300816414866263183654447592166823522532169727656054619757821292498710014798973894096991409727219721662605287822070755365820764674499380936245375554008469914350530386964315692723428878547617833198000072096001409584847977668710634065013879859028934904524656486901347099709169171499321803850532025036443834997105323958602994839793277178096929594304305370277793832017740295904916201054755423602831419891918889427540915751897644857901573930981981954382678099844863595207660216739153205162483780217785109285119897214317138390651029204601799093222655367077671105715316736125038081457141347070921827499259287052404423804224965841142016965610738155411332482148327062929368671026705116652748022294797622232410028905281598531944770279172428058553346963392419242370642822333348014958307821960911148501653868137134753980727731214726528539954998029392019177390952799161433660659472508591890238622195529251612451936003372939850079793550459656539298909052309197658164215376520340926511690731263691443368428566806537513689965507497746968309649930339510075035618989872896415864936243448711554313835516456759136419537433543727966322122859024309979992454794278844775866727112237671568695220030082925621786674748581598489986514952511313443439860786524465135196803929996890387265671430439300448400412407312968349497513741099034115730669262759632801830839076354653587892463231137238939535441604907259937207667991012805245306814316613110488748899099747192902767410834814883516075265673081750812873325426869635367982213221059692035117066747236614348989254155594046341930922333263828508414765212151922389368907540350946451646952052259377068476996628754495503897369690415067280180931611200359804751319495634323931960324944363154224576827992500121221379142640469264430226444508137586303083187374902758707007823457257624416005369142712570301809731117636822826198963671341537609005916271254879992922675442378761319731236416532317119520348968664626377484837092445537072564761266549393464709005020555813342078324620128487662693566318502161047851289227867354868550070056729778197549167620157467195871470640658227558578205460304556743730018636313278852752322054245998368020106552956814818318015634606074781489926468052019808736830696069353406697715991547972648310944740865535100459018336868187229770581709986954471405925338945312710088836451969419678386835326959999538129479727360614317284261775799986784330374564996790245492630941244826430607654845134764015535661329267387504299829822458985953286742280730179226201564325898533839865084786400285916383179778903454510757441142444144251189871911753983050334209439402543537515439907245291554434650544558730697508712692109646270354933114763814882277868276359191741925214653553363026861645787552719160999329076103784919157943277703328644032864745193672114236814542388500925661211333135197113826665551224011516546507958744481096541490611767234805978638467162159944488549122691959299155167751353977595565780531543381394604257302928684602160133461355631428056743991227956178083830505845079465143044915459850185426625646235059194698413536383588559707561753136676232874933040549639331555642179198038441029439240130798346672473469987943206528510351537300989548339776488395322326412942328471872335030317887782427406835862430929006053726769842190008360375759242112546473622789356906581008602428823177468477235843755513653055633275618124688301963075114451842443310673317990459974330740740232764463766235766370940118421679412639144235372378997934706690605567553766727663950020157243571688669842425249785574712253720425790251789438163737094155824809599119860056726986677818019443224764733429389695488760997333156077897137328013594741591117059467979162575084640903156488473842922193819841935705366172194977765978667964017271053716513974667386165014258040321672625273546965757771383704310193308781615406841740255301767844633173626552823835525491421256834150974111233293514638501664246759923809136547948229486932199464707603360625374448670234764236024591149379781792544630645008287266742433721430758676746030548664645280889654365998575147120516361924588911925799023515825072092669321262050431241652395719355467487643281537718799389122142788833765783175598008830306149453722370440069649696025320288931421339061951822448497031542667996236059215483178973480775604413599461100625843126988417761533727416572789939187144413593138545605329474523594526599496919869082981328335722793438312570144599866185245425799850346349558363678661843473796645914959616887910739172369667547777056652071917078865487652261547299851990187392254503750288720879313768650638828896513609649900822867267481084968957631933718628011183391335265448841496243844311904378144817812561894382095900243036118549575439492024892254468919711958974075358296355276301107795103647922068130216318913734917845359714457148467117835137908248906048169663797331021180952799243304235108206500693130278905446432872223889979577633812776275890668531464052621243807439099590442178721511914596960875887704808998139830846343492549199394516175102464965994820573546328680826941777498422681669606462051440180516180077773631724752228880640841294402123785634891148326287829860924835626238651659791316040425863940951821499082713338867007472160408395422969119289848163585146548387342180153224095276490097032816299428511372263161998892057342670081785109693122451859146389109456163400257825038886188084233715921513494037374864337794737146911088982943542905267528268706509058339099649591845222714311516686248218141096799090682585543602366532297124187100838982267224568324147427732159324904564686148950799028954128615497786145998680622986660920937812455414780744470755299474740648093504117889284002824584626221791072562070126416005009354528638918674467357558257245361742093781254554855807773811398279552318259207175805901221758186919527244220215001715019604300231507452620939577493636516470602257756513690761421733598387485079405801752620735450705245595790080621257912203262143710673071432219323538263892847747494536452587468528447204274435126921331356952414595440258943227859597948091545066654446114765036753802909379708888540476593597823628389313114022187145865481623577734731549684611982677893044044165119360400963072938067726701109826861711922628246050544376324468282491241747078499110277762793185985444492669940029328158779867926749021851497839341139004071535911090592441147514618310745375049651088363007416474315603679767001578659219559535394126696491209737724296892728882983393148581906963128130227539676475393023387204497315622408835497408544978556902078865092866389753639291429134538121111527190078727795770641675665912518788928817932200540024358418498013649151076202306837699685209243870827732567264924850592266776906983369480442573045619169457507923091565644691188074785169053346355448906295975346726148819900418621356855178661619453556016745134228411152907331583102545434109614785274164370671114053417380042194961088882733586126505527676742120041267811033932462968314840147382307020845433353674243270984751102936631299070989879698230188557294120807608141413212111966390906196084380079867266639471928854452542296646954255366052149957570062584068460785562069444203031926910119929633230326068481494572483290111250237454992240484806945593294767930971125381337189324414251925625001109295956967519438475590964499912159010946590597773754453918001416580984848901019949060215897221816634174053639081756914951705880207041044349133964094940576880245927015767929182030351441185897058023216967642797365235720780174361368032158736039077282192227410021208482938260563406880045252618724435065014082466307478638851500667531369264683616840767005515452903619106848650638513145577327106927173980171174148498348700437746443371528299679240336893837861967358126088404152087453944171226445797310640032193920054418047794304405398708737012401760790984685371191048855361012601629050647370845816266788752719620811388203401833795834894467712526555189613722391941417506861670610228817574623968644611489841776236096664089440678047804412957934101646925814196385271494666415238471413711234544117139264882882577304065201210791113997893226227809715414383450418938666047295196648952872617239728789794248678685320504721254818330535863278865447764193481000645841064344848297682795289117588064516311170501973241328964242856410603832455999591906878071884093506408699284885031607757314179624270785242565961307831463297447821420271845281190688105132964093598605051050930486587681290017717748856096329923796709378972291379495855713233565279967757327305439044738070413866128565010880230417550601876262490245084636316376531696681007611573249034259783382206867388422273650030477765297186892051749985090664802058037183060760815530536558952076713897750660826213765061394594521172623118155693886623818944524869785224177155083185231980934581241726424744355997780294980359150805368863300946799310864172706635788115935529277862975013540317000068714816527707419082848740941289044816733690939895692311331244700947977601655610988780856664125134450294865080784692720746189303432154940489338167819993216775752809363996480899008725445104870023748814095340421401538319546636383375088041514778506183939623822135084224450998216625407752378835498588021753665095863612930441893921781872448085427683955374444959787561487737830019322619620309498555421031345328011266213978446634912475736113993931375239574769367353336953777582559009233237391563141171848940439809891264430473197715819188249947526547326288696351565184898267569716877933061068153879662656718193459725927082677187476112276692275221428719605690195700745638430388541317054306416602099936315463150478689956878992927541925910221824585193356839330541852572205033535691508478034219478113537780912072139848743445021542016159813531045608488539669296542688482935988250817086572963962151458752066865693035208100582101248105584078166764718153164941236945399105299518989322595929425487256717478314750197001750232968266140448292216549599166347036459073787344579485707013114757477974961336770962884788573440523459964143436573164201066013873163747864264581273776757269286947376412413969500863150576165040293304142745307944159303535077416051207848370045377674407545069845397220990338995811303611063313491191488695805234616162076701155258411010013753186168584157840126583806972529565121569326413193338286266397293442799988160780919460440149783200208459054498740745164874359355074238864365920313645628991502113763001804651765998476956326680032217569677325288981484096205405839140622781562966830840251849476711590986826958331374984351378702456540456530053243335036751550589328868909642294171265027445561938371322775684609500222671263712953112798757643946491939150348311071514388770076766559859329288771972150662054500768214931899321780640910959545710364742831656045858550130211068748898295861810207503746947485327145246193472386426092584880490657031591604100521236203047205076459641343352590734979029610123732865025034349320542048295389888065240865222582652460641032479643530564649314787652433881991061001837293149165654299594284954083869601975908976982680004287310438204768736960224964377709944672459730178210114033219641150300712143388265292808165444201190359499603485614293857023977148631572917339109034633303307837384984231315137315459326753353441192672813463824466674192555180697713305653380829377864045470627165000979741151550016411905223200329098004027222333675934431116135353032557240669756870939476815289861507030118689406881460615010957245859570286720965674743265280461755277399927627788798586816737100817271082459260492587268222760825418101172027747077774195220983702801298193969970979509368032802414297197729263140430190939858273316783229670373532931591520046650698684384961530626559440829284058203332172973808896856805198767432851158236515274820155851133570995918710726128890236614111238108165670652932015587035875412656980758413917669442837789825733195175629966520621446971760733708171258874521469636256860702847985705185806656187414471824704570708498898514846390065815974603688895592805547497761704069770438420907239076405615131545561151898586724847733450906964877374160497698764890966243164354770336570167065372203103051170376399977842300295988688209015923314370324012839071548505474068780909314171356994271435812794220376208428655709950899058967836752319903817185625100455445033793161550722156613427776394707092432290535504019684048285240777519321182840898096853294382418367315239939466603240429029982620495901957209746966981939276002935803883548604390932340665819094516558001326746346815973136176543123199066074302035364375534079572419724852003647919479502596820414413923582345405214831116464402654917725730579358555150605815503825663374249722710637122777677902829315028239165576584352548747990257435856010520682950506389984049370903267324099085567847747497482751110582010156056851901908288216338321423121185327329819771693382035673390657056997537447070333465793205930822007159610398751420197476057034829013098521201783471957867375935785828698354667231894484571981990343149093326956822468533276240183628989900777184588340395392178330228795219983512392668428238433645381146636949136405638799266626129785979400946670736384546586433593322300938462470748395778693835022722502729295878076674225779774695497621554284826387744078258611036043730885405723760133320121604348945789285951241035725038384377062752626958585941407604967330468441153906893957659825983703440703682351607664715902808277501902439237372411122415015845186629641400478447344464500076961024239484122649589923781480500537163399455984397339521930286468287691531207699154500659267208946381847499643519796880976600698855577844787256667200213429679139957435372045104745285035054155078365871493328208256194228204881522429635127752361244102210746758175479554479651504437165389801723611123213321254173190603477675021021443682786314340179212188030321699599822314953404067523461573148329734428021420413526193358903552916076646633738656257012604384978372185587693682167865635587665999199732588456343626076779614666022504109673175569885505979072506751835416460281324961902717967668891262567257807458803834353083504669394124179938635934575654015187131089656628903782633129452634379656369187164274333492989306395324275657091345842090016236542440544894980922958220014363300402266598960586562065608870456088950810723692010492270698390592811563709494044007687765365193000778590055944753587426820109541125625755353200681934989233924243112539503715415568598671635570621205766747481801382346324313813275848963105637592100561973464667766090721146311086968508140866112008923331165024935240948042542242904936308063129714652214048759775629662419297971338772297734060088527966106073194802579098774835563722353261393589199725458979445079959273318277730088238034301321533634174214425162995097638402812228904370436729590478358992837536617806006561638843701146450840639384171065428071051278137002882377237476323079237415573231652869668756085115379353362567092923321639618482229440293828612383193312551486817370053695227977202134889212861400473253868464327975801245847217561937730709767561248886080610231935690893441786792111875516770165042447867144459096941241252996816116004392261919439935313044366311470516502758684208195713457391232778627156791727765026602355976429738455236337480536643691966477809845687006161578326172261977480057052590770547960833431488891664756761074032919433453467023233395491186486567968171277349895805980163962874845431919263894473414431469808335703151516275066112007191688357153425732589942885266743003927298265552019953456283935978091964772622147671156817861041374221011268361184454515725679061644612369982753096568024731577150524822932731687881173392661588685547896411909977123397372773327457806203830765861310069825758701045885591192373922747939034216116533405979452548903939311550610863539016730877825569652333209172952171581730279167609300375750433645280500769572909161347423804704107764958297300500308586418019909420509287752290815949449292614341330071453027107881136441759752043799424968171496469884003463841356667959522543558767525615002450332957171011257228163245556888414152083388792403002238633423723114019183034290617732271038030013997217505952379283386943784574614722949884862923344433795646884368764476414627524040336899730415229140076996282529494673255225910664273608882413771805931322728630952072970240828970853356547420275593884099239339294281542644984658615760755322720574225330026074956597040894251291117792876964946869619643885775713934498374854691339357705031758186915646657219652700681189821972307579476670246010587156669234451173097689289203382980339915795269671889276641326839021860257601706530228539580179701260079459868491597768850495985345216307596978561283248027239169010430803533082591186022105751080175984531299388608425381832094393316569680478485894219368382880992684807637121255093151371708156050557066093601219801137947693180006613906560427365603555659490385302652594675484120176512782712130534789071383574574987652623444697743009523727666883945340281025683821982931455733702462803308001297046310132007092157488854381161203045685167959971622865063335535692072607375306789077847757997643775301046782342104059944748598712185920887463044931738414740808610224381995231731892893415771805254869638282498345973515493891022474852959451382330057356227510098376544648477073317255681110518695121434687829282099943998591657376969320177437877926205434206219837401012482716097656847667818239399853189162753313003899029822557466943122802489621623661422068610875988660713803735221448782196505959364076309868336308071333184483377494674995780103690843067800352460760679057542346010252213294755311108546919124005857965944137968263831245925469305632245121809449621713680894436018971249659756198138068658239782188161677692310662786433072849551673469933944853448388990843967841085527645755953094965939030771268403925952176050902095835739390500037889935308741272960747502734638851506025866465963408914194886399771187072496471336906496691904472825183960762884070601822165404724862943975531628751372287128454753666014735462043224619907233258235661230490091415360681376111816045747200194769469396060485720086425043482271361994887654611064052526445600964722115321620635397408386110427197018795644945042743709347140857828863539848143849907173429070834446347557738607663401899266519929107812104768094657499149923472637914383031252088348213797168196878694665546004285579258657648283078990886449867036283832034236679615455754598029128702223906880310928400351212355736731984217639215518441294117725733214001434327348696582853376653851393522881534490160190642671382367025273953047154956662851618580459456159171842163194012448537161268692857815748009489729851036634395986805611858089290354671754431330987596203040427563779241976360266456191454912679688477262520343971147981421198559151597062708725806324078582855875891172227479141926000499866581139219467282699290629548373895393621962089182515145846759647143245780307790764474342902719716659324135147609763733922175232850822125580379287758718427041556677574439632266922818016350326551413202205166145480477716456089959648398934475701888367006047778928780756358892974924821261430753489852856012650205042234855947232913978704194862163013571600148534266611495053628817564160800480182201963863188268590939761773230016396512808499809235393619592084100812270686869198906283769130842646610136166303083044161639753259724097044550056169603286820489961025626055763372015793170025464974490383616778902693271822808941498592154007541269207881677084042634803920955627887550897933636668895951720667605232434631319430557545968086107741273262881454034171323749313698151632677629040928039580918856184005551792225855501498863572236856863727586567534632165597147008648960380830632432198584919062071556554838944221499013555426518031217911446677109424123408673313112469071744584058367666541184657951765514734910856209645311767614622352624463267411082464107564196884170253862433168657754688456359616117412773740766257722641805934633366746154452823597527294040918340169761821996154695375524716674535618225765215135740946731108368449331852441960715985988999526810400006979520073160095428915430141222792646485782681676174349551332343166863595795770500670676220064195601783199248197041769668167809014414918146748804564004454251995385059783555351923565773639930424765293198645998635575832141760251323963763115650197159119326091400132006997542440373791893736876278665888041465267790070886358629903726153004098115806601215421307594491882146151727564777474949447229825610666999186770820241704061763723909626053652161009287014426586981837919943730960187558455326547846105627921825747010332980183960765648315983113193370605076208036111812059797064928753645087884148119129204593449355700959456667382561120268740112300240785937700952694051539369319374834791645615207364494268735916132706575088589533727307349204128305664090390546362674544314817800852962995593890950482538727781428582821299034919627195935773456952065833418192442322659828174332793489484084632116314343009049300477895170446642627184203844503310572063961022295566878923420286551683488500605689506377040049685309366021441699087010471207416068263581021299481775143738132778298940413525516270993913438758218771879965553948877756334198319618303138211436964123335215608699537461998257091423058032359217705860854569725174843949372336311355997076387086128556585175177425551383459916159483268557381978577685839665385217433667121736970356692238730969679817916670622005875163278452229947188303205661499629597861082416348822675590677047727511113186919820142696945585912606472649012817176029642870600794563841234785109983632305821891907232068855941042597740470936056128562326993184774195434448947678333221953054122086842982927846002982331285448451788950816965409931825963067526565537974122602479780312964168264914097658664531677825699218635222150525367908309393225895140149253143415000908589766243764819367864761078642760077164194111173447599138470423716846931285970385827958869350429168779717303951124073965305362707611981445394426364600122190648941064498108081157857132834307958824045109125650676909469848314124597838979912152396156757338433198281638775924973354460977392005508499822408708591077445013551063009488383978299910710295431511903590233451574242297959007074485007434977532486975939276919374803971787692138197287668391527924446903038082331913934864682659797571829003288637341700924739766715915236397209648621952562095034779647406217016751367124408241737360359830422986660711040832373623065727883569735152709371306478172582453107702236953777594857299202306029008809516165295051598216507120597905189337782179861868063732809514603079493757056211169021031994109635262081877012241343297424090090838280752216535078635638740162713302009540792404856122714296861448899066971714922173970451845266177563996194833740716785989723691297962558828789080076696969715504157529977290431406768270297493596768045705336240384356130425967340483795479590409690949822871243902324482299485087543973411889802424093154835629166871575481597221284898289324063613804940254363512521422508001312506955184986608544966289799386723040038145191075745138589299079692999374851527315524168415625164537901827946670784320768682921033774749014402238177003607617631322123017881101448416550681075666824466776739893545760445936188425268275012801768505895293477723766854308019916750726183578859739158617860166055945635719147526413851518643886415138312345171706184959854109079761466862367602632500974025321900371380508621620036255862535437946294904747831069102530047939965066029535181375506413873562194599177123949791096923228380134456536389575178175933917195642330860607261100845998718532216672760137164511733840838781625826931258360182743580607132243672721391801658004184914749847786753005362460350191843645499452998163955725701996422424206054842625220104940326512314452908744028344195654949935255870967781862526514201898596198765603309361462285347466085612130643222086340319511148828389713662216405650499853509763385329276929053588045337149733847920645609466320083285227027889523835233311971949273970056495837228256429219851525774628938384427506788969400271567014908144878511704197604878831484107654667816863035385510743846339120352800088037160177122729542568726347154941099210384478929783180296669287656864706290981510443811809740478969909918625153683699473012065082790978907400196663691751466132836057865989678161537728988928589592450831498116714632287346750349403509104175646943078293551382885173968502388083718142685113416243220143523903810504460644004046235095535521875253818708883673754950475201585588597913531713354600183316812342080929196708900347008935387393045188604142911681141659876047909456196757994116008227213613471379981021284720906919607191095864408055245399088219996280539488638572854575939404331595690331299497283816429516317510760397231241020398927966748358767548585101674802700539205126447624119088614521418303212308670081465422563634911093287454234772629884416358923224251618441539197204111731189786758968409193492606547619449586578755910161950053093461196956721944322442421751274673766988996694996577008597876355177987620635732936990996622939862440331798123989915082396862394863102764195607332022932612005232711168631667705066808441083782803192039758891597591240165646095882578028948894724466747048940021124715035697409238716469666623295439455114061081006029118190608736684526688627993919048816558255261055558362901018463603670035271735788576279389594484688446407243760366388574379934556659574178930582977096726380089311254658859851719046481983540802816497282259881572864534549147823694441599271404907670847624844055118284689250251089564983152200794062402783901717330642271928151937755489605058938742836397755284326907221929419450635216598815972096335958762011714525890034827748124150268430892345676405119108808476881348370755858778025611515520725863205710395630572814047932436838718436254348874033212213686880417767403782960639256683312616894004046234515660656681899827710052468728913941297194694140861998259122253717837166227437463530973638107012476459168397488275378678649567194943468733516470685729097354476268303836848678897293245763849575099738793765880307893520369980960402636155126002994000370766982550340469600290709813522705964697897679911662147830411300451973092260306472146049001612220677690660491988375329363020376505361052348243312826700811637078849136680424640676333021491569277284588877125604341509342940526923002365681246089153098765807682373715721815228616168060978016063658895739234771591407023257436251395249404954519578726686211909953565787634171763276614950379616548497757993787994670437996195984356701397667969725106986441623165822774556971691345200279631437595661471402462508920807181711101143628950214075230929811539681988884745968803171152478886501567825302111938507498971462793320135727529764293708801504432578969518053459074252940405572077717438229646252755808037160529812992771021775619929085405402504746070737791302055766327911672834101494318336582872956730666077836179345663109715372490850915162139413564104313484429242340888333698670306453608383507123290093697002591402898889878489185387103677409369428914968410211675462479891812388718786239654877319828626871691810442650735395273528068767321963845089472691265013930831660030501512073277377902722417844456427940349001853199805907215808159721950890605086033456207439708691877077280937601191392402202045756153386938813539589436819046007159469023465180352979108723332295743250320957964316539401855700285440121873498192808031097217070431969091844722525761237642994996800161649126296235711956716113649179789721228909431435903851598003702999449495679908348269723957648325933826045486852485400977853234275694393053565956267000195129715067692588052610962936645948788871045368319608547035200544088444414554909975909565710357079670138607613505941312948812143495903922589935655468652791614727786398384503716893086365471248544414002982779682567586491821453263759262183567823494925469538103647911375729760524063463966549728140016322481738375423927987924789200356093630555171119276927514007314800741300771730870393452225428519284630838622839035905749852107558425754130376519452067966996397398751981715559713692256235696538886838692619277523021206905184065998112103763177626032485135635431748007440196320938998722219006233831152618882989507870344131860778393126421337451493307119072373775482381502602994685219112839227525732146559192411344168897718736668046683981527015716283520491136201000218099300179506182328528992327987059746690415427765293246624237430597466532310767729572526690976694117637418753111043542163275298647307295902804378905382448584985550184458431458471127457613848229251569077650248552114168392986296905703096133982143032561097725522678366233200155755865896279105036255664605747114431089763172341727326615387385905535138246670509787650305805718929286685092995985595698709654123661760175419581190781670531932235580337084872326120259663001970313084261128200871453428120258594227459825373947717277403846220074812496084911362070680202312167916764290118080332376651984079605604241666174933698476045032216665491020831887779134348239786641609836545486749356314260777163326367878324174412871597915013391406328847076677811122882992926206420393910121184457418540270276907995513181066403527472573801106400019801181816725567314417011405602680776331683755094438789492442726157438310546229840800425701543833224439299297660135244501580137830644094257961390510571755902496386181240774426409139677721434384785426877335014205362122239250304334906800845652503309720818734836381214334185307799145695820315494141616372168628662761407198806935467106770863063568917127771565146259836211344781582649128986265048437848308284363026834532770860998437926517341465109594567545354319901156953118560200146703840103792285099147134799087158775923682655834479366975520273136140077195967622188292557866804939717722017721207757584237170178813906720085057504544431169150026885932644323457627391494995901145033011276345566141104860142766900108155412119935353641025439560752723300071041896813770992807468838390037567586982786522229566789874210681256254113867184876450199194326749033945255752475573170826199040886534666101729664047761566798254966122436757961600349008522975018509319804500611131182824083065462856067134867186714645358298253648017466446854126247050158875660589734566248915130302908021530609698768755776625406241690986494861998899099782107122339670747602504785974474177984089840566775368813559263583530958587398656243786290234961316811438396722378773253892692641470577236510639260642495928855419362281578806168965223952454145016867508650854575196770191885335849415779940469756809320121949809959257239557940293395685748280131426483334580206556503261791064880556528962483180670178901754512227613472089462551418553254576245342003933985052162023335879665145866231308045597537340742610466608574602261135687265421699455776642114080292701372020851978875945101451098872419906593966999237548853172390789156458676717608349605353671657670637783996259412872834903296153623248864719779421498247380976933235516029878976836536865456589820451759676117660410137674300546393411583367184408096843904653219223946870736495587175167645764893842062542791840729207369461100078194507546011195515568173222355653856205259492791897626250402372404716209964310435492922470781743026841288391360752672654183937046385517800931413251099029528752738774135214025731412523337339589925797888